{"version":3,"sources":["../../node_modules/swup/dist/swup.js","../../node_modules/waypoints/lib/noframework.waypoints.js","../../source/js/_helpers.js","../../source/js/_global.js","../../source/js/_nav.js","../../source/js/_roadtrip.js","../../source/js/_transition.js","../../source/js/_imagefold.js","../../source/js/_gallery.js","../../source/js/_events.js","../../source/js/_quarterly.js","../../source/js/index.js"],"names":["webpackUniversalModuleDefinition","root","factory","exports","_typeof","module","define","amd","window","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","query","selector","context","arguments","length","undefined","document","querySelector","queryAll","Array","slice","querySelectorAll","_createClass","defineProperties","target","props","descriptor","configurable","writable","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","Link","this","link","createElement","setPath","href","getPath","path","pathname","getAddress","search","getHash","hash","default","_index","_index2","_interopRequireDefault","obj","_extends","assign","source","_delegate","_delegate2","_Cache","_Cache2","_Link","_Link2","_transitionEnd","_transitionEnd2","_request","_request2","_getDataFromHtml","_getDataFromHtml2","_loadPage","_loadPage2","_renderPage","_renderPage2","_createState","_createState2","_triggerEvent","_triggerEvent2","_getUrl","_getUrl2","_scrollTo","_scrollTo2","_classify","_classify2","_doScrolling","_doScrolling2","_markSwupElements","_markSwupElements2","_on","_on2","_off","_off2","_updateTransition","_updateTransition2","_preloadPage","_preloadPage2","_preloadPages","_preloadPages2","_usePlugin","_usePlugin2","_log","_log2","_utils","Swup","setOptions","defaults","cache","animationSelector","elements","pageClassPrefix","debugMode","scroll","doScrollingRightAway","animateScroll","scrollFriction","scrollAcceleration","preload","support","plugins","skipPopStateHandling","event","state","animateHistoryBrowsing","LINK_SELECTOR","location","origin","FORM_SELECTOR","transition","options","_handlers","animationInDone","animationInStart","animationOutDone","animationOutStart","animationSkipped","clickLink","contentReplaced","disabled","enabled","hoverLink","openPageInNewTab","pageLoaded","pagePreloaded","pageRetrievedFromCache","pageView","popState","samePage","samePageWithHash","scrollDone","scrollStart","serverError","submitForm","willReplaceContent","scrollToElement","preloadPromise","getUrl","transitionEndEvent","getDataFromHtml","getPage","scrollTo","loadPage","renderPage","createState","triggerEvent","classify","doScrolling","markSwupElements","on","off","updateTransition","preloadPage","preloadPages","usePlugin","log","enable","destroy","swup","_this","history","console","warn","Promise","toString","indexOf","delegatedListeners","click","linkClickHandler","mouseover","body","linkMouseoverHandler","formSubmit","formSubmitHandler","addEventListener","popStateHandler","page","documentElement","outerHTML","url","currentUrl","cacheUrl","forEach","item","replaceState","random","Math","title","scrollRestoration","classList","add","removeEventListener","empty","element","dataset","remove","metaKey","button","preventDefault","delegateTarget","top","getBoundingClientRect","pageYOffset","customTransition","swupTransition","_this2","exists","resolve","reject","response","request","status","route","form","formData","FormData","action","method","toLowerCase","data","inputs","input","type","checked","encodeURIComponent","closest","delegate","callback","useCapture","listenerFn","listener","apply","e","DOCUMENT_NODE_TYPE","Element","matches","proto","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","nodeType","parentNode","Cache","pages","count","last","displayCache","groupCollapsed","keys","groupEnd","showLog","transitionEnd","el","transEndEventNames","WebkitTransition","MozTransition","OTransition","style","XMLHttpRequest","onreadystatechange","readyState","responseText","open","setRequestHeader","send","html","content","replace","fakeDom","json","innerHTML","blocks","index","push","innerText","pageClass","className","originalContent","responseURL","popstate","animationPromises","animatedElements","promise","all","then","pop","xhrPromise","concat","catch","errorUrl","go","split","includes","setTimeout","promises","classItem","RegExp","test","pushState","hostname","getElementsByTagName","eventName","originalEvent","handler","error","CustomEvent","detail","dispatchEvent","to","animatedScroll","friction","acceleration","positionY","velocityY","targetPositionY","targetPositionYWithOffset","direction","raf","getScrollTop","scrollTop","animate","distance","update","render","requestAnimationFrame","attraction","applyForce","force","cancelAnimationFrame","passive","offset","text","output","splice","filter","savedHandler","toRemove","from","custom","plugin","getCurrentPageHtml","exec","str","keyCounter","allWaypoints","Waypoint","Error","Adapter","extend","adapter","axis","horizontal","triggerPoint","group","Group","findOrCreate","Context","findOrCreateByElement","offsetAliases","queueTrigger","trigger","args","disable","refresh","next","previous","invokeAll","allWaypointsArray","waypointKey","end","destroyAll","disableAll","enableAll","refreshAll","viewportHeight","innerHeight","clientHeight","viewportWidth","clientWidth","adapters","continuous","bottom-in-view","bottomInView","outerHeight","right-in-view","rightInView","innerWidth","outerWidth","requestAnimationFrameShim","contexts","oldWindowLoad","onload","didScroll","didResize","oldScroll","x","scrollLeft","y","waypoints","vertical","waypointContextKey","windowContext","createThrottledScrollHandler","createThrottledResizeHandler","waypoint","checkEmpty","horizontalEmpty","isEmptyObject","verticalEmpty","isWindow","self","resizeHandler","handleResize","scrollHandler","handleScroll","isTouch","triggeredGroups","axes","newScroll","forward","backward","axisKey","isForward","wasBeforeTriggerPoint","nowAfterTriggerPoint","crossedForward","crossedBackward","id","groupKey","flushTriggers","contextOffset","left","contextScroll","contextDimension","offsetProp","adjustment","oldTriggerPoint","elementOffset","freshWaypoint","contextModifier","wasBeforeScroll","nowAfterScroll","triggeredBackward","triggeredForward","parseFloat","ceil","floor","findByElement","contextId","requestFn","mozRequestAnimationFrame","webkitRequestAnimationFrame","byTriggerPoint","a","b","byReverseTriggerPoint","groups","clearTriggerQueues","triggerQueues","up","down","right","reverse","sort","inArray","isLast","first","getWindow","defaultView","NoFrameworkAdapter","handlers","isWin","removeListeners","listeners","eventParts","eventType","namespace","ownerDocument","win","rect","clientTop","pageXOffset","clientLeft","nsHandlers","nsTypeList","includeMargin","height","computedStyle","getComputedStyle","parseInt","marginTop","marginBottom","width","marginLeft","marginRight","merge","array","parentElement","NodeList","String","startsWith","pos","substring","endsWith","this_len","params","bubbles","cancelable","evt","createEvent","initCustomEvent","Event","isIE11","MSInputMethodContext","documentMode","debounced","delay","fn","timerId","_len","_key","clearTimeout","throttled","lastCall","now","Date","getTime","childIndex","children","mq","xxs","xs","small","medium","large","xl","xxl","mqMatches","size","matchMedia","sendPageView","_ref","_ref$title","_ref$path","_ref$location","gtag","page_title","page_path","page_location","wrapper","getSiteOrigin","lastSlash","lastIndexOf","siteOrigin","navContainers","getElementById","headerNav","toggleMenu","parent","btn","nav","pageContent","brandLinks","shift","transform","removeAttribute","once","menuBtn","contains","dotRadius","dotPosition","offsetTop","positionNavMarker","marker","items","dotOffset","linkHeight","lineLength","line","animateNavMarker","currentPos","targetPos","scaleLength","mainNavInit","container","currentPage","menuLinks","nextPageLink","currentNavLink","navMarker","lastHover","mouseMoveHandler","tMouseMove","mouseOutHandler","mainNavLoad","roadTripImages","lightBox","travelDot","headerDot","footerDot","lightBoxInit","firstChild","removeChild","photos","randomPhoto","Image","src","appendChild","showLightBox","transtionHandler","hideLightbox","hDot","currentTarget","travelDotTransitionEnd","fDot","compStyles","getPropertyValue","tDot","foldingImageHandler","foldingImages","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_loop","img","_step","insidePanel","outsidePanel","time","start","total","unfold","elapsed","progress","min","rotation","toFixed","wp","_iterator","iterator","done","err","return","foldDuration","paperfoldImageHandler","paperfoldImages","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","div","numberFolds","$","attr","paperfold","duration","maxFoldHeight","folds","perspective","topShadow","bottomShadow","isOpen","onProgress","foldProgress","stayInPlace","percentage","toggle","benchCarvingSwiper","swiper","Swiper","pagination","navigation","nextEl","prevEl","activateSwiper","init","lazyLoadOnScroll","slide","lazy","loadInSlide","roadTripSwiper","slidesPerView","freeMode","grabCursor","preloadImages","watchSlidesVisibility","allowTouchMove","loadPrevNext","loadOnTransitionStart","loadPrevNextAmount","scrollbar","breakpointsInverse","breakpoints","720","slidesPerGroup","image","load","swiperInit","roadTripPhotos","artPortfolio","loadArtPhotos","lazyImages","lazyImage","artDocVideo","populateLabelText","dropdown","menuLocator","currentOption","handleDropdownClick","menuLabel","quarterlyMenu","menu","getFileNameFromUrl","urlArray","artDocVideoPlay","event_label","event_category","getAbsolutePath","relativePath","absoluteSrcImg","images","getAttribute","absoluteSrcVid","videos","vid","srcElement","posterImg","poster","play","swupReplace","swupLinks","pageTransition","pageLoad","fixUrl","pageName","headerNavTransition","pageSwap","footerNavTransition","getLinkFromUrl"],"mappings":"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","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Swup\"] = factory();\n\telse\n\t\troot[\"Swup\"] = factory();\n})(window, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 2);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.query = query;\nexports.queryAll = queryAll;\nfunction query(selector) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n\n if (typeof selector !== 'string') {\n return selector;\n }\n\n return context.querySelector(selector);\n}\n\nfunction queryAll(selector) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document;\n\n if (typeof selector !== 'string') {\n return selector;\n }\n\n return Array.prototype.slice.call(context.querySelectorAll(selector));\n}\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Link = function () {\n function Link() {\n _classCallCheck(this, Link);\n\n this.link = document.createElement(\"a\");\n }\n\n _createClass(Link, [{\n key: 'setPath',\n value: function setPath(href) {\n this.link.href = href;\n }\n }, {\n key: 'getPath',\n value: function getPath() {\n var path = this.link.pathname;\n if (path[0] != '/') {\n path = '/' + path;\n }\n return path;\n }\n }, {\n key: 'getAddress',\n value: function getAddress() {\n var path = this.link.pathname + this.link.search;\n if (path[0] != '/') {\n path = '/' + path;\n }\n return path;\n }\n }, {\n key: 'getHash',\n value: function getHash() {\n return this.link.hash;\n }\n }]);\n\n return Link;\n}();\n\nexports.default = Link;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _index = __webpack_require__(3);\n\nvar _index2 = _interopRequireDefault(_index);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = _index2.default; // this is here for webpack to expose Swup as window.Swup\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n// helpers\n\n\n// modules\n\n\nvar _delegate = __webpack_require__(4);\n\nvar _delegate2 = _interopRequireDefault(_delegate);\n\nvar _Cache = __webpack_require__(6);\n\nvar _Cache2 = _interopRequireDefault(_Cache);\n\nvar _Link = __webpack_require__(1);\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nvar _transitionEnd = __webpack_require__(7);\n\nvar _transitionEnd2 = _interopRequireDefault(_transitionEnd);\n\nvar _request = __webpack_require__(8);\n\nvar _request2 = _interopRequireDefault(_request);\n\nvar _getDataFromHtml = __webpack_require__(9);\n\nvar _getDataFromHtml2 = _interopRequireDefault(_getDataFromHtml);\n\nvar _loadPage = __webpack_require__(10);\n\nvar _loadPage2 = _interopRequireDefault(_loadPage);\n\nvar _renderPage = __webpack_require__(11);\n\nvar _renderPage2 = _interopRequireDefault(_renderPage);\n\nvar _createState = __webpack_require__(12);\n\nvar _createState2 = _interopRequireDefault(_createState);\n\nvar _triggerEvent = __webpack_require__(13);\n\nvar _triggerEvent2 = _interopRequireDefault(_triggerEvent);\n\nvar _getUrl = __webpack_require__(14);\n\nvar _getUrl2 = _interopRequireDefault(_getUrl);\n\nvar _scrollTo = __webpack_require__(15);\n\nvar _scrollTo2 = _interopRequireDefault(_scrollTo);\n\nvar _classify = __webpack_require__(16);\n\nvar _classify2 = _interopRequireDefault(_classify);\n\nvar _doScrolling = __webpack_require__(17);\n\nvar _doScrolling2 = _interopRequireDefault(_doScrolling);\n\nvar _markSwupElements = __webpack_require__(18);\n\nvar _markSwupElements2 = _interopRequireDefault(_markSwupElements);\n\nvar _on = __webpack_require__(19);\n\nvar _on2 = _interopRequireDefault(_on);\n\nvar _off = __webpack_require__(20);\n\nvar _off2 = _interopRequireDefault(_off);\n\nvar _updateTransition = __webpack_require__(21);\n\nvar _updateTransition2 = _interopRequireDefault(_updateTransition);\n\nvar _preloadPage = __webpack_require__(22);\n\nvar _preloadPage2 = _interopRequireDefault(_preloadPage);\n\nvar _preloadPages = __webpack_require__(23);\n\nvar _preloadPages2 = _interopRequireDefault(_preloadPages);\n\nvar _usePlugin = __webpack_require__(24);\n\nvar _usePlugin2 = _interopRequireDefault(_usePlugin);\n\nvar _log = __webpack_require__(25);\n\nvar _log2 = _interopRequireDefault(_log);\n\nvar _utils = __webpack_require__(0);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Swup = function () {\n function Swup(setOptions) {\n _classCallCheck(this, Swup);\n\n // default options\n var defaults = {\n cache: true,\n animationSelector: '[class*=\"transition-\"]',\n elements: ['#swup'],\n pageClassPrefix: '',\n debugMode: false,\n scroll: true,\n\n doScrollingRightAway: false,\n animateScroll: true,\n scrollFriction: .3,\n scrollAcceleration: .04,\n\n preload: true,\n support: true,\n plugins: [],\n\n skipPopStateHandling: function skipPopStateHandling(event) {\n if (event.state && event.state.source == \"swup\") {\n return false;\n }\n return true;\n },\n animateHistoryBrowsing: false,\n\n LINK_SELECTOR: 'a[href^=\"' + window.location.origin + '\"]:not([data-no-swup]), a[href^=\"/\"]:not([data-no-swup]), a[href^=\"#\"]:not([data-no-swup])',\n FORM_SELECTOR: 'form[data-swup-form]'\n\n /**\n * current transition object\n */\n };this.transition = {};\n\n var options = _extends({}, defaults, setOptions);\n\n /**\n * handler arrays\n */\n this._handlers = {\n animationInDone: [],\n animationInStart: [],\n animationOutDone: [],\n animationOutStart: [],\n animationSkipped: [],\n clickLink: [],\n contentReplaced: [],\n disabled: [],\n enabled: [],\n hoverLink: [],\n openPageInNewTab: [],\n pageLoaded: [],\n pagePreloaded: [],\n pageRetrievedFromCache: [],\n pageView: [],\n popState: [],\n samePage: [],\n samePageWithHash: [],\n scrollDone: [],\n scrollStart: [],\n serverError: [],\n submitForm: [],\n willReplaceContent: []\n };\n\n /**\n * helper variables\n */\n // id of element to scroll to after render\n this.scrollToElement = null;\n // promise used for preload, so no new loading of the same page starts while page is loading\n this.preloadPromise = null;\n // save options\n this.options = options;\n // plugins array\n this.plugins = [];\n\n /**\n * make modules accessible in instance\n */\n this.getUrl = _getUrl2.default;\n this.cache = new _Cache2.default();\n this.link = new _Link2.default();\n this.transitionEndEvent = (0, _transitionEnd2.default)();\n this.getDataFromHtml = _getDataFromHtml2.default;\n this.getPage = _request2.default;\n this.scrollTo = _scrollTo2.default;\n this.loadPage = _loadPage2.default;\n this.renderPage = _renderPage2.default;\n this.createState = _createState2.default;\n this.triggerEvent = _triggerEvent2.default;\n this.classify = _classify2.default;\n this.doScrolling = _doScrolling2.default;\n this.markSwupElements = _markSwupElements2.default;\n this.on = _on2.default;\n this.off = _off2.default;\n this.updateTransition = _updateTransition2.default;\n this.preloadPage = _preloadPage2.default;\n this.preloadPages = _preloadPages2.default;\n this.usePlugin = _usePlugin2.default;\n this.log = _log2.default;\n this.enable = this.enable;\n this.destroy = this.destroy;\n\n // attach instance to window in debug mode\n if (this.options.debugMode) {\n window.swup = this;\n }\n\n this.getUrl();\n this.enable();\n }\n\n _createClass(Swup, [{\n key: 'enable',\n value: function enable() {\n var _this = this;\n\n /**\n * support check\n */\n if (this.options.support) {\n // check pushState support\n if (!('pushState' in window.history)) {\n console.warn('pushState is not supported');\n return;\n }\n // check transitionEnd support\n if ((0, _transitionEnd2.default)()) {\n this.transitionEndEvent = (0, _transitionEnd2.default)();\n } else {\n console.warn('transitionEnd detection is not supported');\n return;\n }\n // check Promise support\n if (typeof Promise === \"undefined\" || Promise.toString().indexOf(\"[native code]\") === -1) {\n console.warn('Promise is not supported');\n return;\n }\n }\n\n // variable to keep event listeners from \"delegate\"\n this.delegatedListeners = {};\n\n /**\n * link click handler\n */\n this.delegatedListeners.click = (0, _delegate2.default)(document, this.options.LINK_SELECTOR, 'click', this.linkClickHandler.bind(this));\n\n /**\n * link mouseover handler (preload)\n */\n this.delegatedListeners.mouseover = (0, _delegate2.default)(document.body, this.options.LINK_SELECTOR, 'mouseover', this.linkMouseoverHandler.bind(this));\n\n /**\n * form submit handler\n */\n this.delegatedListeners.formSubmit = (0, _delegate2.default)(document, this.options.FORM_SELECTOR, 'submit', this.formSubmitHandler.bind(this));\n\n /**\n * popstate handler\n */\n window.addEventListener('popstate', this.popStateHandler.bind(this));\n\n /**\n * initial save to cache\n */\n var page = this.getDataFromHtml(document.documentElement.outerHTML);\n page.url = this.currentUrl;\n if (this.options.cache) {\n this.cache.cacheUrl(page, this.options.debugMode);\n }\n\n /**\n * mark swup blocks in html\n */\n this.markSwupElements(document.documentElement);\n\n /**\n * enable plugins from options\n */\n this.options.plugins.forEach(function (item) {\n return _this.usePlugin(item);\n });\n\n /**\n * modify initial history record\n */\n window.history.replaceState(Object.assign({}, window.history.state, {\n url: window.location.href,\n random: Math.random(),\n source: \"swup\"\n }), document.title, window.location.href);\n\n /**\n * Disable browser scroll control on popstates when animateHistoryBrowsing option is enabled\n */\n if (this.options.animateHistoryBrowsing) {\n window.history.scrollRestoration = \"manual\";\n }\n\n /**\n * trigger enabled event\n */\n this.triggerEvent('enabled');\n document.documentElement.classList.add('swup-enabled');\n\n /**\n * trigger page view event\n */\n this.triggerEvent('pageView');\n\n /**\n * preload pages if possible\n */\n this.preloadPages();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n // remove delegated listeners\n this.delegatedListeners.click.destroy();\n this.delegatedListeners.mouseover.destroy();\n\n // remove popstate listener\n window.removeEventListener('popstate', this.popStateHandler.bind(this));\n\n // empty cache\n this.cache.empty();\n\n // remove swup data atributes from blocks\n (0, _utils.queryAll)('[data-swup]').forEach(function (element) {\n delete element.dataset.swup;\n });\n\n // remove handlers\n this.off();\n\n this.triggerEvent('disabled');\n document.documentElement.classList.remove('swup-enabled');\n }\n }, {\n key: 'linkClickHandler',\n value: function linkClickHandler(event) {\n // no control key pressed\n if (!event.metaKey) {\n // index of pressed button needs to be checked because Firefox triggers click on all mouse buttons\n if (event.button === 0) {\n this.triggerEvent('clickLink', event);\n var link = new _Link2.default();\n event.preventDefault();\n link.setPath(event.delegateTarget.href);\n\n if (link.getAddress() == this.currentUrl || link.getAddress() == '') {\n // link to the same URL\n if (link.getHash() != '') {\n // link to the same URL with hash\n this.triggerEvent('samePageWithHash', event);\n var element = document.querySelector(link.getHash());\n if (element != null) {\n // referenced element found\n if (this.options.scroll) {\n var top = element.getBoundingClientRect().top + window.pageYOffset;\n this.scrollTo(document.body, top);\n }\n history.replaceState({\n url: link.getAddress() + link.getHash(),\n random: Math.random(),\n source: \"swup\"\n }, document.title, link.getAddress() + link.getHash());\n } else {\n // referenced element not found\n console.warn('Element for offset not found (' + link.getHash() + ')');\n }\n } else {\n // link to the same URL without hash\n this.triggerEvent('samePage', event);\n if (this.options.scroll) {\n this.scrollTo(document.body, 0, 1);\n }\n }\n } else {\n // link to different url\n if (link.getHash() != '') {\n this.scrollToElement = link.getHash();\n }\n\n // get custom transition from data\n var customTransition = event.delegateTarget.dataset.swupTransition;\n\n // load page\n this.loadPage({ url: link.getAddress(), customTransition: customTransition }, false);\n }\n }\n } else {\n // open in new tab (do nothing)\n this.triggerEvent('openPageInNewTab', event);\n }\n }\n }, {\n key: 'linkMouseoverHandler',\n value: function linkMouseoverHandler(event) {\n var _this2 = this;\n\n this.triggerEvent('hoverLink', event);\n if (this.options.preload) {\n var link = new _Link2.default();\n link.setPath(event.delegateTarget.href);\n if (link.getAddress() != this.currentUrl && !this.cache.exists(link.getAddress()) && this.preloadPromise == null) {\n this.preloadPromise = new Promise(function (resolve, reject) {\n _this2.getPage({ url: link.getAddress() }, function (response, request) {\n if (request.status === 500) {\n _this2.triggerEvent('serverError', event);\n reject(link.getAddress());\n return;\n } else {\n // get json data\n var page = _this2.getDataFromHtml(response, request);\n if (page != null) {\n page.url = link.getAddress();\n _this2.cache.cacheUrl(page, _this2.options.debugMode);\n _this2.triggerEvent('pagePreloaded', event);\n } else {\n reject(link.getAddress());\n return;\n }\n }\n resolve();\n _this2.preloadPromise = null;\n });\n });\n this.preloadPromise.route = link.getAddress();\n }\n }\n }\n }, {\n key: 'formSubmitHandler',\n value: function formSubmitHandler(event) {\n // no control key pressed\n if (!event.metaKey) {\n this.triggerEvent('submitForm', event);\n event.preventDefault();\n var form = event.target;\n var formData = new FormData(form);\n\n var link = new _Link2.default();\n link.setPath(form.action);\n\n if (link.getHash() != '') {\n this.scrollToElement = link.getHash();\n }\n\n if (form.method.toLowerCase() != \"get\") {\n // remove page from cache\n this.cache.remove(link.getAddress());\n\n // send data\n this.loadPage({\n url: link.getAddress(),\n method: form.method,\n data: formData\n });\n } else {\n // create base url\n var url = link.getAddress() || window.location.href;\n var inputs = (0, _utils.queryAll)('input, select', form);\n if (url.indexOf('?') == -1) {\n url += \"?\";\n } else {\n url += \"&\";\n }\n\n // add form data to url\n inputs.forEach(function (input) {\n if (input.type == \"checkbox\" || input.type == \"radio\") {\n if (input.checked) {\n url += encodeURIComponent(input.name) + \"=\" + encodeURIComponent(input.value) + \"&\";\n }\n } else {\n url += encodeURIComponent(input.name) + \"=\" + encodeURIComponent(input.value) + \"&\";\n }\n });\n\n // remove last \"&\"\n url = url.slice(0, -1);\n\n // remove page from cache\n this.cache.remove(url);\n\n // send data\n this.loadPage({\n url: url\n });\n }\n } else {\n this.triggerEvent('openFormSubmitInNewTab', event);\n }\n }\n }, {\n key: 'popStateHandler',\n value: function popStateHandler(event) {\n var link = new _Link2.default();\n if (this.options.skipPopStateHandling(event)) return;\n link.setPath(event.state ? event.state.url : window.location.pathname);\n if (link.getHash() != '') {\n this.scrollToElement = link.getHash();\n } else {\n event.preventDefault();\n }\n this.triggerEvent('popState', event);\n this.loadPage({ url: link.getAddress() }, event);\n }\n }]);\n\n return Swup;\n}();\n\nexports.default = Swup;\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar closest = __webpack_require__(5);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Cache = function () {\n function Cache() {\n _classCallCheck(this, Cache);\n\n this.pages = {};\n this.count = 0;\n this.last = null;\n }\n\n _createClass(Cache, [{\n key: 'cacheUrl',\n value: function cacheUrl(page, displayCache) {\n this.count++;\n if (page.url in this.pages === false) {\n this.pages[page.url] = page;\n }\n this.last = this.pages[page.url];\n if (displayCache) {\n this.displayCache();\n }\n }\n }, {\n key: 'getPage',\n value: function getPage(url) {\n return this.pages[url];\n }\n }, {\n key: 'displayCache',\n value: function displayCache() {\n console.groupCollapsed('Cache (' + Object.keys(this.pages).length + ')');\n for (var key in this.pages) {\n console.log(this.pages[key]);\n }\n console.groupEnd();\n }\n }, {\n key: 'exists',\n value: function exists(url) {\n if (url in this.pages) return true;\n return false;\n }\n }, {\n key: 'empty',\n value: function empty(showLog) {\n this.pages = {};\n this.count = 0;\n this.last = null;\n if (showLog) {\n console.log('Cache cleared');\n }\n }\n }, {\n key: 'remove',\n value: function remove(url) {\n delete this.pages[url];\n }\n }]);\n\n return Cache;\n}();\n\nexports.default = Cache;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function transitionEnd() {\n var el = document.createElement('div');\n\n var transEndEventNames = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return transEndEventNames[name];\n }\n }\n\n return false;\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nmodule.exports = function (options) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var defaults = {\n url: window.location.pathname + window.location.search,\n method: \"GET\",\n data: null\n };\n\n var data = _extends({}, defaults, options);\n\n var request = new XMLHttpRequest();\n\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n if (request.status !== 500) {\n callback(request.responseText, request);\n } else {\n callback(null, request);\n }\n }\n };\n\n request.open(data.method, data.url, true);\n request.setRequestHeader(\"X-Requested-With\", \"swup\");\n request.send(data.data);\n return request;\n};\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nmodule.exports = function (html, request) {\n var _this = this;\n\n var content = html.replace('', '');\n var fakeDom = document.createElement('div');\n fakeDom.innerHTML = content;\n var blocks = [];\n\n for (var i = 0; i < this.options.elements.length; i++) {\n if (fakeDom.querySelector(this.options.elements[i]) == null) {\n console.warn('Element ' + this.options.elements[i] + ' is not found in cached page.');\n return null;\n } else {\n (0, _utils.queryAll)(this.options.elements[i]).forEach(function (item, index) {\n (0, _utils.queryAll)(_this.options.elements[i], fakeDom)[index].dataset.swup = blocks.length;\n blocks.push((0, _utils.queryAll)(_this.options.elements[i], fakeDom)[index].outerHTML);\n });\n }\n }\n\n var json = {\n title: fakeDom.querySelector('title').innerText,\n pageClass: fakeDom.querySelector('#swupBody').className,\n originalContent: html,\n blocks: blocks,\n responseURL: request != null ? request.responseURL : window.location.href\n };\n return json;\n};\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nvar forEach = Array.prototype.forEach;\n\n\nmodule.exports = function (data, popstate) {\n var _this = this;\n\n // scrolling\n if (this.options.doScrollingRightAway && !this.scrollToElement) {\n this.doScrolling(popstate);\n }\n\n // create array for storing animation promises\n var animationPromises = [];\n\n // set transition object\n if (data.customTransition != null) {\n this.updateTransition(window.location.pathname, data.url, data.customTransition);\n document.documentElement.classList.add('to-' + this.classify(data.customTransition));\n } else {\n this.updateTransition(window.location.pathname, data.url);\n }\n\n if (!popstate || this.options.animateHistoryBrowsing) {\n // start animation\n this.triggerEvent('animationOutStart');\n document.documentElement.classList.add('is-changing');\n document.documentElement.classList.add('is-leaving');\n document.documentElement.classList.add('is-animating');\n if (popstate) {\n document.documentElement.classList.add('is-popstate');\n }\n document.documentElement.classList.add('to-' + this.classify(data.url));\n\n // detect animation end\n var animatedElements = (0, _utils.queryAll)(this.options.animationSelector);\n forEach.call(animatedElements, function (element) {\n var promise = new Promise(function (resolve) {\n element.addEventListener(_this.transitionEndEvent, function (event) {\n if (element == event.target) {\n resolve();\n }\n });\n });\n animationPromises.push(promise);\n });\n\n Promise.all(animationPromises).then(function () {\n _this.triggerEvent('animationOutDone');\n });\n\n // create pop element with or without anchor\n if (this.scrollToElement != null) {\n var pop = data.url + this.scrollToElement;\n } else {\n var pop = data.url;\n }\n if (!popstate) this.createState(pop);\n } else {\n // proceed without animating\n this.triggerEvent('animationSkipped');\n }\n\n if (this.cache.exists(data.url)) {\n var xhrPromise = new Promise(function (resolve) {\n resolve();\n });\n this.triggerEvent('pageRetrievedFromCache');\n } else {\n if (!this.preloadPromise || this.preloadPromise.route != data.url) {\n var xhrPromise = new Promise(function (resolve, reject) {\n _this.getPage(data, function (response, request) {\n if (request.status === 500) {\n _this.triggerEvent('serverError');\n reject(data.url);\n return;\n } else {\n // get json data\n var page = _this.getDataFromHtml(response, request);\n if (page != null) {\n page.url = data.url;\n } else {\n reject(data.url);\n return;\n }\n // render page\n _this.cache.cacheUrl(page, _this.options.debugMode);\n _this.triggerEvent('pageLoaded');\n }\n resolve();\n });\n });\n } else {\n var xhrPromise = this.preloadPromise;\n }\n }\n\n Promise.all(animationPromises.concat([xhrPromise])).then(function () {\n // render page\n _this.renderPage(_this.cache.getPage(data.url), popstate);\n _this.preloadPromise = null;\n }).catch(function (errorUrl) {\n // rewrite the skipPopStateHandling function to redirect manually when the history.go is processed\n _this.options.skipPopStateHandling = function () {\n window.location = errorUrl;\n return true;\n };\n\n // go back to the actual page were still at\n window.history.go(-1);\n });\n};\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nvar _Link = __webpack_require__(1);\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar forEach = Array.prototype.forEach;\n\n\nmodule.exports = function (page, popstate) {\n var _this = this;\n\n document.documentElement.classList.remove('is-leaving');\n\n // replace state in case the url was redirected\n var link = new _Link2.default();\n link.setPath(page.responseURL);\n\n if (window.location.pathname !== link.getPath()) {\n window.history.replaceState({\n url: link.getPath(),\n random: Math.random(),\n source: \"swup\"\n }, document.title, link.getPath());\n }\n\n // only add for non-popstate transitions\n if (!popstate || this.options.animateHistoryBrowsing) {\n document.documentElement.classList.add('is-rendering');\n }\n\n this.triggerEvent('willReplaceContent');\n\n // replace blocks\n for (var i = 0; i < page.blocks.length; i++) {\n document.body.querySelector('[data-swup=\"' + i + '\"]').outerHTML = page.blocks[i];\n }\n\n // set title\n document.title = page.title;\n\n // handle classes after render\n // remove\n if (this.options.pageClassPrefix !== false) {\n document.body.className.split(' ').forEach(function (className) {\n // empty string for page class\n if (className != \"\" && className.includes(_this.options.pageClassPrefix)) {\n document.body.classList.remove(className);\n }\n });\n }\n // add\n if (page.pageClass != \"\") {\n page.pageClass.split(' ').forEach(function (className) {\n if (className != \"\" && className.includes(_this.options.pageClassPrefix)) {\n document.body.classList.add(className);\n }\n });\n }\n\n this.triggerEvent('contentReplaced');\n this.triggerEvent('pageView');\n if (!this.options.cache) {\n this.cache.empty(this.options.debugMode);\n }\n setTimeout(function () {\n if (!popstate || _this.options.animateHistoryBrowsing) {\n _this.triggerEvent('animationInStart');\n document.documentElement.classList.remove('is-animating');\n }\n }, 10);\n\n // scrolling\n if (!this.options.doScrollingRightAway || this.scrollToElement) {\n this.doScrolling(popstate);\n }\n\n // detect animation end\n var animatedElements = (0, _utils.queryAll)(this.options.animationSelector);\n var promises = [];\n forEach.call(animatedElements, function (element) {\n var promise = new Promise(function (resolve) {\n element.addEventListener(_this.transitionEndEvent, function (event) {\n if (element == event.target) {\n resolve();\n }\n });\n });\n promises.push(promise);\n });\n\n //preload pages if possible\n this.preloadPages();\n\n if (!popstate || this.options.animateHistoryBrowsing) {\n Promise.all(promises).then(function () {\n _this.triggerEvent('animationInDone');\n // remove \"to-{page}\" classes\n document.documentElement.className.split(' ').forEach(function (classItem) {\n if (new RegExp(\"^to-\").test(classItem) || classItem === \"is-changing\" || classItem === \"is-rendering\" || classItem === \"is-popstate\") {\n document.documentElement.classList.remove(classItem);\n }\n });\n });\n }\n\n // update current url\n this.getUrl();\n // reset scroll-to element\n this.scrollToElement = null;\n};\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (url) {\n window.history.pushState({\n url: url || window.location.href.split(window.location.hostname)[1],\n random: Math.random(),\n source: \"swup\"\n }, document.getElementsByTagName('title')[0].innerText, url || window.location.href.split(window.location.hostname)[1]);\n};\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (eventName, originalEvent) {\n if (this.options.debugMode && originalEvent) {\n console.groupCollapsed('%cswup:' + '%c' + eventName, 'color: #343434', 'color: #009ACD');\n console.log(originalEvent);\n console.groupEnd();\n } else if (this.options.debugMode) {\n console.log('%cswup:' + '%c' + eventName, 'color: #343434', 'color: #009ACD');\n }\n\n // call saved handlers with \"on\" method and pass originalEvent object if available\n this._handlers[eventName].forEach(function (handler) {\n try {\n handler(originalEvent);\n } catch (error) {\n console.error(error);\n }\n });\n\n // trigger event on document with prefix \"swup:\"\n var event = new CustomEvent('swup:' + eventName, { detail: eventName });\n document.dispatchEvent(event);\n};\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function () {\n this.currentUrl = window.location.pathname + window.location.search;\n};\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (element, to) {\n var _this = this;\n\n var animatedScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : this.options.animateScroll;\n\n var friction = 1 - this.options.scrollFriction;\n var acceleration = this.options.scrollAcceleration;\n\n var positionY = 0;\n var velocityY = 0;\n var targetPositionY = 0;\n var targetPositionYWithOffset = 0;\n var direction = 0;\n\n var raf = null;\n\n function getScrollTop() {\n return document.body.scrollTop || document.documentElement.scrollTop;\n }\n\n var animate = function animate() {\n var distance = update();\n render();\n\n if (direction === 1 && targetPositionY > positionY || direction === -1 && targetPositionY < positionY) {\n raf = requestAnimationFrame(animate);\n } else {\n window.scrollTo(0, targetPositionY);\n _this.triggerEvent('scrollDone');\n }\n };\n\n function update() {\n var distance = targetPositionYWithOffset - positionY;\n var attraction = distance * acceleration;\n\n applyForce(attraction);\n\n velocityY *= friction;\n positionY += velocityY;\n\n return distance;\n }\n\n var applyForce = function applyForce(force) {\n velocityY += force;\n };\n\n var render = function render() {\n window.scrollTo(0, positionY);\n };\n\n window.addEventListener('mousewheel', function (event) {\n if (raf) {\n cancelAnimationFrame(raf);\n raf = null;\n }\n }, {\n passive: true\n });\n\n var scrollTo = function scrollTo(offset, callback) {\n positionY = getScrollTop();\n direction = positionY > offset ? -1 : 1;\n targetPositionYWithOffset = offset + direction;\n targetPositionY = offset;\n velocityY = 0;\n if (positionY != targetPositionY) {\n animate();\n } else {\n _this.triggerEvent('scrollDone');\n }\n };\n\n this.triggerEvent('scrollStart');\n if (animatedScroll == 0) {\n window.scrollTo(0, to);\n this.triggerEvent('scrollDone');\n } else {\n scrollTo(to);\n }\n};\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (text) {\n var output = text.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/\\//g, '-') // Replace / with -\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n if (output[0] == \"/\") output = output.splice(1);\n if (output == '') output = 'homepage';\n return output;\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (popstate) {\n if (this.options.scroll && (!popstate || this.options.animateHistoryBrowsing)) {\n if (this.scrollToElement != null) {\n var element = document.querySelector(this.scrollToElement);\n if (element != null) {\n var top = element.getBoundingClientRect().top + window.pageYOffset;\n this.scrollTo(document.body, top);\n } else {\n console.warn(\"Element for offset not found (\" + this.scrollToElement + \")\");\n }\n this.scrollToElement = null;\n } else {\n this.scrollTo(document.body, 0);\n }\n }\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nmodule.exports = function (element) {\n var _this = this;\n\n var blocks = 0;\n\n for (var i = 0; i < this.options.elements.length; i++) {\n if (element.querySelector(this.options.elements[i]) == null) {\n console.warn(\"Element \" + this.options.elements[i] + \" is not in current page.\");\n } else {\n (0, _utils.queryAll)(this.options.elements[i]).forEach(function (item, index) {\n (0, _utils.queryAll)(_this.options.elements[i], element)[index].dataset.swup = blocks;\n blocks++;\n });\n }\n }\n};\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function on(event, handler) {\n if (this._handlers[event]) {\n this._handlers[event].push(handler);\n } else {\n console.warn(\"Unsupported event \" + event + \".\");\n }\n};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function off(event, handler) {\n var _this = this;\n\n if (event != null) {\n if (handler != null) {\n if (this._handlers[event] && this._handlers[event].filter(function (savedHandler) {\n return savedHandler === handler;\n }).length) {\n var toRemove = this._handlers[event].filter(function (savedHandler) {\n return savedHandler === handler;\n })[0];\n var index = this._handlers[event].indexOf(toRemove);\n if (index > -1) {\n this._handlers[event].splice(index, 1);\n }\n } else {\n console.warn(\"Handler for event '\" + event + \"' no found.\");\n }\n } else {\n this._handlers[event] = [];\n }\n } else {\n Object.keys(this._handlers).forEach(function (keys) {\n _this._handlers[keys] = [];\n });\n }\n};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (from, to, custom) {\n\n // homepage case\n if (from == \"/\") {\n from = \"/homepage\";\n }\n if (to == \"/\") {\n to = \"/homepage\";\n }\n\n // transition routes\n this.transition = {\n from: from.replace('/', ''),\n to: to.replace('/', '')\n };\n\n if (custom) {\n this.transition.custom = custom;\n }\n};\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _Link = __webpack_require__(1);\n\nvar _Link2 = _interopRequireDefault(_Link);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function (pathname) {\n var _this = this;\n\n var link = new _Link2.default();\n link.setPath(pathname);\n if (link.getAddress() != this.currentUrl && !this.cache.exists(link.getAddress()) && this.preloadPromise == null) {\n this.getPage({ url: link.getAddress() }, function (response, request) {\n if (request.status === 500) {\n _this.triggerEvent('serverError');\n return;\n } else {\n // get json data\n var page = _this.getDataFromHtml(response, request);\n if (page != null) {\n page.url = link.getAddress();\n _this.cache.cacheUrl(page, _this.options.debugMode);\n _this.triggerEvent('pagePreloaded');\n }\n }\n });\n }\n};\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar _utils = __webpack_require__(0);\n\nmodule.exports = function () {\n var _this = this;\n\n if (this.options.preload) {\n (0, _utils.queryAll)('[data-swup-preload]').forEach(function (element) {\n _this.preloadPage(element.href);\n });\n }\n};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (plugin, options) {\n var _this = this;\n\n options = Object.assign({}, plugin.options, options);\n\n plugin.options = options;\n\n var getCurrentPageHtml = function getCurrentPageHtml() {\n var page = _this.cache.getPage(window.location.pathname + window.location.search);\n var html = document.createElement('html');\n html.innerHTML = page.originalContent;\n return html;\n };\n\n this.plugins.push(plugin);\n plugin.exec(options, this, getCurrentPageHtml);\n return this.plugins;\n};\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = function (str) {\n if (this.options.debugMode) {\n console.log(str + '%c', 'color: #009ACD');\n }\n};\n\n/***/ })\n/******/ ]);\n});","/*!\nWaypoints - 4.0.1\nCopyright © 2011-2016 Caleb Troughton\nLicensed under the MIT license.\nhttps://github.com/imakewebthings/waypoints/blob/master/licenses.txt\n*/\n(function() {\n 'use strict'\n\n var keyCounter = 0\n var allWaypoints = {}\n\n /* http://imakewebthings.com/waypoints/api/waypoint */\n function Waypoint(options) {\n if (!options) {\n throw new Error('No options passed to Waypoint constructor')\n }\n if (!options.element) {\n throw new Error('No element option passed to Waypoint constructor')\n }\n if (!options.handler) {\n throw new Error('No handler option passed to Waypoint constructor')\n }\n\n this.key = 'waypoint-' + keyCounter\n this.options = Waypoint.Adapter.extend({}, Waypoint.defaults, options)\n this.element = this.options.element\n this.adapter = new Waypoint.Adapter(this.element)\n this.callback = options.handler\n this.axis = this.options.horizontal ? 'horizontal' : 'vertical'\n this.enabled = this.options.enabled\n this.triggerPoint = null\n this.group = Waypoint.Group.findOrCreate({\n name: this.options.group,\n axis: this.axis\n })\n this.context = Waypoint.Context.findOrCreateByElement(this.options.context)\n\n if (Waypoint.offsetAliases[this.options.offset]) {\n this.options.offset = Waypoint.offsetAliases[this.options.offset]\n }\n this.group.add(this)\n this.context.add(this)\n allWaypoints[this.key] = this\n keyCounter += 1\n }\n\n /* Private */\n Waypoint.prototype.queueTrigger = function(direction) {\n this.group.queueTrigger(this, direction)\n }\n\n /* Private */\n Waypoint.prototype.trigger = function(args) {\n if (!this.enabled) {\n return\n }\n if (this.callback) {\n this.callback.apply(this, args)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy */\n Waypoint.prototype.destroy = function() {\n this.context.remove(this)\n this.group.remove(this)\n delete allWaypoints[this.key]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable */\n Waypoint.prototype.disable = function() {\n this.enabled = false\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable */\n Waypoint.prototype.enable = function() {\n this.context.refresh()\n this.enabled = true\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/next */\n Waypoint.prototype.next = function() {\n return this.group.next(this)\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/previous */\n Waypoint.prototype.previous = function() {\n return this.group.previous(this)\n }\n\n /* Private */\n Waypoint.invokeAll = function(method) {\n var allWaypointsArray = []\n for (var waypointKey in allWaypoints) {\n allWaypointsArray.push(allWaypoints[waypointKey])\n }\n for (var i = 0, end = allWaypointsArray.length; i < end; i++) {\n allWaypointsArray[i][method]()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/destroy-all */\n Waypoint.destroyAll = function() {\n Waypoint.invokeAll('destroy')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/disable-all */\n Waypoint.disableAll = function() {\n Waypoint.invokeAll('disable')\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/enable-all */\n Waypoint.enableAll = function() {\n Waypoint.Context.refreshAll()\n for (var waypointKey in allWaypoints) {\n allWaypoints[waypointKey].enabled = true\n }\n return this\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/refresh-all */\n Waypoint.refreshAll = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-height */\n Waypoint.viewportHeight = function() {\n return window.innerHeight || document.documentElement.clientHeight\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/viewport-width */\n Waypoint.viewportWidth = function() {\n return document.documentElement.clientWidth\n }\n\n Waypoint.adapters = []\n\n Waypoint.defaults = {\n context: window,\n continuous: true,\n enabled: true,\n group: 'default',\n horizontal: false,\n offset: 0\n }\n\n Waypoint.offsetAliases = {\n 'bottom-in-view': function() {\n return this.context.innerHeight() - this.adapter.outerHeight()\n },\n 'right-in-view': function() {\n return this.context.innerWidth() - this.adapter.outerWidth()\n }\n }\n\n window.Waypoint = Waypoint\n}())\n;(function() {\n 'use strict'\n\n function requestAnimationFrameShim(callback) {\n window.setTimeout(callback, 1000 / 60)\n }\n\n var keyCounter = 0\n var contexts = {}\n var Waypoint = window.Waypoint\n var oldWindowLoad = window.onload\n\n /* http://imakewebthings.com/waypoints/api/context */\n function Context(element) {\n this.element = element\n this.Adapter = Waypoint.Adapter\n this.adapter = new this.Adapter(element)\n this.key = 'waypoint-context-' + keyCounter\n this.didScroll = false\n this.didResize = false\n this.oldScroll = {\n x: this.adapter.scrollLeft(),\n y: this.adapter.scrollTop()\n }\n this.waypoints = {\n vertical: {},\n horizontal: {}\n }\n\n element.waypointContextKey = this.key\n contexts[element.waypointContextKey] = this\n keyCounter += 1\n if (!Waypoint.windowContext) {\n Waypoint.windowContext = true\n Waypoint.windowContext = new Context(window)\n }\n\n this.createThrottledScrollHandler()\n this.createThrottledResizeHandler()\n }\n\n /* Private */\n Context.prototype.add = function(waypoint) {\n var axis = waypoint.options.horizontal ? 'horizontal' : 'vertical'\n this.waypoints[axis][waypoint.key] = waypoint\n this.refresh()\n }\n\n /* Private */\n Context.prototype.checkEmpty = function() {\n var horizontalEmpty = this.Adapter.isEmptyObject(this.waypoints.horizontal)\n var verticalEmpty = this.Adapter.isEmptyObject(this.waypoints.vertical)\n var isWindow = this.element == this.element.window\n if (horizontalEmpty && verticalEmpty && !isWindow) {\n this.adapter.off('.waypoints')\n delete contexts[this.key]\n }\n }\n\n /* Private */\n Context.prototype.createThrottledResizeHandler = function() {\n var self = this\n\n function resizeHandler() {\n self.handleResize()\n self.didResize = false\n }\n\n this.adapter.on('resize.waypoints', function() {\n if (!self.didResize) {\n self.didResize = true\n Waypoint.requestAnimationFrame(resizeHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.createThrottledScrollHandler = function() {\n var self = this\n function scrollHandler() {\n self.handleScroll()\n self.didScroll = false\n }\n\n this.adapter.on('scroll.waypoints', function() {\n if (!self.didScroll || Waypoint.isTouch) {\n self.didScroll = true\n Waypoint.requestAnimationFrame(scrollHandler)\n }\n })\n }\n\n /* Private */\n Context.prototype.handleResize = function() {\n Waypoint.Context.refreshAll()\n }\n\n /* Private */\n Context.prototype.handleScroll = function() {\n var triggeredGroups = {}\n var axes = {\n horizontal: {\n newScroll: this.adapter.scrollLeft(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left'\n },\n vertical: {\n newScroll: this.adapter.scrollTop(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n var isForward = axis.newScroll > axis.oldScroll\n var direction = isForward ? axis.forward : axis.backward\n\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n if (waypoint.triggerPoint === null) {\n continue\n }\n var wasBeforeTriggerPoint = axis.oldScroll < waypoint.triggerPoint\n var nowAfterTriggerPoint = axis.newScroll >= waypoint.triggerPoint\n var crossedForward = wasBeforeTriggerPoint && nowAfterTriggerPoint\n var crossedBackward = !wasBeforeTriggerPoint && !nowAfterTriggerPoint\n if (crossedForward || crossedBackward) {\n waypoint.queueTrigger(direction)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n\n this.oldScroll = {\n x: axes.horizontal.newScroll,\n y: axes.vertical.newScroll\n }\n }\n\n /* Private */\n Context.prototype.innerHeight = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportHeight()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerHeight()\n }\n\n /* Private */\n Context.prototype.remove = function(waypoint) {\n delete this.waypoints[waypoint.axis][waypoint.key]\n this.checkEmpty()\n }\n\n /* Private */\n Context.prototype.innerWidth = function() {\n /*eslint-disable eqeqeq */\n if (this.element == this.element.window) {\n return Waypoint.viewportWidth()\n }\n /*eslint-enable eqeqeq */\n return this.adapter.innerWidth()\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-destroy */\n Context.prototype.destroy = function() {\n var allWaypoints = []\n for (var axis in this.waypoints) {\n for (var waypointKey in this.waypoints[axis]) {\n allWaypoints.push(this.waypoints[axis][waypointKey])\n }\n }\n for (var i = 0, end = allWaypoints.length; i < end; i++) {\n allWaypoints[i].destroy()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-refresh */\n Context.prototype.refresh = function() {\n /*eslint-disable eqeqeq */\n var isWindow = this.element == this.element.window\n /*eslint-enable eqeqeq */\n var contextOffset = isWindow ? undefined : this.adapter.offset()\n var triggeredGroups = {}\n var axes\n\n this.handleScroll()\n axes = {\n horizontal: {\n contextOffset: isWindow ? 0 : contextOffset.left,\n contextScroll: isWindow ? 0 : this.oldScroll.x,\n contextDimension: this.innerWidth(),\n oldScroll: this.oldScroll.x,\n forward: 'right',\n backward: 'left',\n offsetProp: 'left'\n },\n vertical: {\n contextOffset: isWindow ? 0 : contextOffset.top,\n contextScroll: isWindow ? 0 : this.oldScroll.y,\n contextDimension: this.innerHeight(),\n oldScroll: this.oldScroll.y,\n forward: 'down',\n backward: 'up',\n offsetProp: 'top'\n }\n }\n\n for (var axisKey in axes) {\n var axis = axes[axisKey]\n for (var waypointKey in this.waypoints[axisKey]) {\n var waypoint = this.waypoints[axisKey][waypointKey]\n var adjustment = waypoint.options.offset\n var oldTriggerPoint = waypoint.triggerPoint\n var elementOffset = 0\n var freshWaypoint = oldTriggerPoint == null\n var contextModifier, wasBeforeScroll, nowAfterScroll\n var triggeredBackward, triggeredForward\n\n if (waypoint.element !== waypoint.element.window) {\n elementOffset = waypoint.adapter.offset()[axis.offsetProp]\n }\n\n if (typeof adjustment === 'function') {\n adjustment = adjustment.apply(waypoint)\n }\n else if (typeof adjustment === 'string') {\n adjustment = parseFloat(adjustment)\n if (waypoint.options.offset.indexOf('%') > - 1) {\n adjustment = Math.ceil(axis.contextDimension * adjustment / 100)\n }\n }\n\n contextModifier = axis.contextScroll - axis.contextOffset\n waypoint.triggerPoint = Math.floor(elementOffset + contextModifier - adjustment)\n wasBeforeScroll = oldTriggerPoint < axis.oldScroll\n nowAfterScroll = waypoint.triggerPoint >= axis.oldScroll\n triggeredBackward = wasBeforeScroll && nowAfterScroll\n triggeredForward = !wasBeforeScroll && !nowAfterScroll\n\n if (!freshWaypoint && triggeredBackward) {\n waypoint.queueTrigger(axis.backward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (!freshWaypoint && triggeredForward) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n else if (freshWaypoint && axis.oldScroll >= waypoint.triggerPoint) {\n waypoint.queueTrigger(axis.forward)\n triggeredGroups[waypoint.group.id] = waypoint.group\n }\n }\n }\n\n Waypoint.requestAnimationFrame(function() {\n for (var groupKey in triggeredGroups) {\n triggeredGroups[groupKey].flushTriggers()\n }\n })\n\n return this\n }\n\n /* Private */\n Context.findOrCreateByElement = function(element) {\n return Context.findByElement(element) || new Context(element)\n }\n\n /* Private */\n Context.refreshAll = function() {\n for (var contextId in contexts) {\n contexts[contextId].refresh()\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/context-find-by-element */\n Context.findByElement = function(element) {\n return contexts[element.waypointContextKey]\n }\n\n window.onload = function() {\n if (oldWindowLoad) {\n oldWindowLoad()\n }\n Context.refreshAll()\n }\n\n\n Waypoint.requestAnimationFrame = function(callback) {\n var requestFn = window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n requestAnimationFrameShim\n requestFn.call(window, callback)\n }\n Waypoint.Context = Context\n}())\n;(function() {\n 'use strict'\n\n function byTriggerPoint(a, b) {\n return a.triggerPoint - b.triggerPoint\n }\n\n function byReverseTriggerPoint(a, b) {\n return b.triggerPoint - a.triggerPoint\n }\n\n var groups = {\n vertical: {},\n horizontal: {}\n }\n var Waypoint = window.Waypoint\n\n /* http://imakewebthings.com/waypoints/api/group */\n function Group(options) {\n this.name = options.name\n this.axis = options.axis\n this.id = this.name + '-' + this.axis\n this.waypoints = []\n this.clearTriggerQueues()\n groups[this.axis][this.name] = this\n }\n\n /* Private */\n Group.prototype.add = function(waypoint) {\n this.waypoints.push(waypoint)\n }\n\n /* Private */\n Group.prototype.clearTriggerQueues = function() {\n this.triggerQueues = {\n up: [],\n down: [],\n left: [],\n right: []\n }\n }\n\n /* Private */\n Group.prototype.flushTriggers = function() {\n for (var direction in this.triggerQueues) {\n var waypoints = this.triggerQueues[direction]\n var reverse = direction === 'up' || direction === 'left'\n waypoints.sort(reverse ? byReverseTriggerPoint : byTriggerPoint)\n for (var i = 0, end = waypoints.length; i < end; i += 1) {\n var waypoint = waypoints[i]\n if (waypoint.options.continuous || i === waypoints.length - 1) {\n waypoint.trigger([direction])\n }\n }\n }\n this.clearTriggerQueues()\n }\n\n /* Private */\n Group.prototype.next = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n var isLast = index === this.waypoints.length - 1\n return isLast ? null : this.waypoints[index + 1]\n }\n\n /* Private */\n Group.prototype.previous = function(waypoint) {\n this.waypoints.sort(byTriggerPoint)\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n return index ? this.waypoints[index - 1] : null\n }\n\n /* Private */\n Group.prototype.queueTrigger = function(waypoint, direction) {\n this.triggerQueues[direction].push(waypoint)\n }\n\n /* Private */\n Group.prototype.remove = function(waypoint) {\n var index = Waypoint.Adapter.inArray(waypoint, this.waypoints)\n if (index > -1) {\n this.waypoints.splice(index, 1)\n }\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/first */\n Group.prototype.first = function() {\n return this.waypoints[0]\n }\n\n /* Public */\n /* http://imakewebthings.com/waypoints/api/last */\n Group.prototype.last = function() {\n return this.waypoints[this.waypoints.length - 1]\n }\n\n /* Private */\n Group.findOrCreate = function(options) {\n return groups[options.axis][options.name] || new Group(options)\n }\n\n Waypoint.Group = Group\n}())\n;(function() {\n 'use strict'\n\n var Waypoint = window.Waypoint\n\n function isWindow(element) {\n return element === element.window\n }\n\n function getWindow(element) {\n if (isWindow(element)) {\n return element\n }\n return element.defaultView\n }\n\n function NoFrameworkAdapter(element) {\n this.element = element\n this.handlers = {}\n }\n\n NoFrameworkAdapter.prototype.innerHeight = function() {\n var isWin = isWindow(this.element)\n return isWin ? this.element.innerHeight : this.element.clientHeight\n }\n\n NoFrameworkAdapter.prototype.innerWidth = function() {\n var isWin = isWindow(this.element)\n return isWin ? this.element.innerWidth : this.element.clientWidth\n }\n\n NoFrameworkAdapter.prototype.off = function(event, handler) {\n function removeListeners(element, listeners, handler) {\n for (var i = 0, end = listeners.length - 1; i < end; i++) {\n var listener = listeners[i]\n if (!handler || handler === listener) {\n element.removeEventListener(listener)\n }\n }\n }\n\n var eventParts = event.split('.')\n var eventType = eventParts[0]\n var namespace = eventParts[1]\n var element = this.element\n\n if (namespace && this.handlers[namespace] && eventType) {\n removeListeners(element, this.handlers[namespace][eventType], handler)\n this.handlers[namespace][eventType] = []\n }\n else if (eventType) {\n for (var ns in this.handlers) {\n removeListeners(element, this.handlers[ns][eventType] || [], handler)\n this.handlers[ns][eventType] = []\n }\n }\n else if (namespace && this.handlers[namespace]) {\n for (var type in this.handlers[namespace]) {\n removeListeners(element, this.handlers[namespace][type], handler)\n }\n this.handlers[namespace] = {}\n }\n }\n\n /* Adapted from jQuery 1.x offset() */\n NoFrameworkAdapter.prototype.offset = function() {\n if (!this.element.ownerDocument) {\n return null\n }\n\n var documentElement = this.element.ownerDocument.documentElement\n var win = getWindow(this.element.ownerDocument)\n var rect = {\n top: 0,\n left: 0\n }\n\n if (this.element.getBoundingClientRect) {\n rect = this.element.getBoundingClientRect()\n }\n\n return {\n top: rect.top + win.pageYOffset - documentElement.clientTop,\n left: rect.left + win.pageXOffset - documentElement.clientLeft\n }\n }\n\n NoFrameworkAdapter.prototype.on = function(event, handler) {\n var eventParts = event.split('.')\n var eventType = eventParts[0]\n var namespace = eventParts[1] || '__default'\n var nsHandlers = this.handlers[namespace] = this.handlers[namespace] || {}\n var nsTypeList = nsHandlers[eventType] = nsHandlers[eventType] || []\n\n nsTypeList.push(handler)\n this.element.addEventListener(eventType, handler)\n }\n\n NoFrameworkAdapter.prototype.outerHeight = function(includeMargin) {\n var height = this.innerHeight()\n var computedStyle\n\n if (includeMargin && !isWindow(this.element)) {\n computedStyle = window.getComputedStyle(this.element)\n height += parseInt(computedStyle.marginTop, 10)\n height += parseInt(computedStyle.marginBottom, 10)\n }\n\n return height\n }\n\n NoFrameworkAdapter.prototype.outerWidth = function(includeMargin) {\n var width = this.innerWidth()\n var computedStyle\n\n if (includeMargin && !isWindow(this.element)) {\n computedStyle = window.getComputedStyle(this.element)\n width += parseInt(computedStyle.marginLeft, 10)\n width += parseInt(computedStyle.marginRight, 10)\n }\n\n return width\n }\n\n NoFrameworkAdapter.prototype.scrollLeft = function() {\n var win = getWindow(this.element)\n return win ? win.pageXOffset : this.element.scrollLeft\n }\n\n NoFrameworkAdapter.prototype.scrollTop = function() {\n var win = getWindow(this.element)\n return win ? win.pageYOffset : this.element.scrollTop\n }\n\n NoFrameworkAdapter.extend = function() {\n var args = Array.prototype.slice.call(arguments)\n\n function merge(target, obj) {\n if (typeof target === 'object' && typeof obj === 'object') {\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n target[key] = obj[key]\n }\n }\n }\n\n return target\n }\n\n for (var i = 1, end = args.length; i < end; i++) {\n merge(args[0], args[i])\n }\n return args[0]\n }\n\n NoFrameworkAdapter.inArray = function(element, array, i) {\n return array == null ? -1 : array.indexOf(element, i)\n }\n\n NoFrameworkAdapter.isEmptyObject = function(obj) {\n /* eslint no-unused-vars: 0 */\n for (var name in obj) {\n return false\n }\n return true\n }\n\n Waypoint.adapters.push({\n name: 'noframework',\n Adapter: NoFrameworkAdapter\n })\n Waypoint.Adapter = NoFrameworkAdapter\n}())\n;","\n// Polyfill for `Element.closest()`\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill\nif (!Element.prototype.matches) {\n Element.prototype.matches = Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n}\n\nif (!Element.prototype.closest) {\n Element.prototype.closest = function(s) {\n var el = this;\n\n do {\n if (el.matches(s)) return el;\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n\n\n// Polyfill for `NodeList.prototype.forEach`\n// https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#Polyfill\nif (window.NodeList && !NodeList.prototype.forEach) {\n NodeList.prototype.forEach = Array.prototype.forEach;\n}\n\n\n// Polyfill for `String.prototype.startsWith()`\n//https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith#Polyfill\nif (!String.prototype.startsWith) {\n Object.defineProperty(String.prototype, 'startsWith', {\n value: function(search, pos) {\n pos = !pos || pos < 0 ? 0 : +pos;\n return this.substring(pos, pos + search.length) === search;\n }\n });\n}\n\n\n// Polyfill for `String.prototype.endsWith()`\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith#Polyfill\nif (!String.prototype.endsWith) {\n\tString.prototype.endsWith = function(search, this_len) {\n\t\tif (this_len === undefined || this_len > this.length) {\n\t\t\tthis_len = this.length;\n\t\t}\n\t\treturn this.substring(this_len - search.length, this_len) === search;\n\t};\n}\n\n\n// Polyfil for `CustomEvent()` constructor\n//https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill\n(function () {\n\n if ( typeof window.CustomEvent === \"function\" ) return false;\n\n function CustomEvent ( event, params ) {\n params = params || { bubbles: false, cancelable: false, detail: null };\n var evt = document.createEvent( 'CustomEvent' );\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\n return evt;\n }\n\n CustomEvent.prototype = window.Event.prototype;\n\n window.CustomEvent = CustomEvent;\n})();\n\n// Detect IE 11\nvar isIE11 = !!window.MSInputMethodContext && !!document.documentMode;\n\n\n// Debounce\n// as long as it continues to be invoked, it will not be triggered\nfunction debounced(delay, fn) {\n let timerId;\n return function (...args) {\n if (timerId) {\n clearTimeout(timerId);\n }\n timerId = setTimeout(() => {\n fn(...args);\n timerId = null;\n }, delay);\n }\n}\n\n\n// Throttle\nfunction throttled(delay, fn) {\n let lastCall = 0;\n return function (...args) {\n const now = (new Date).getTime();\n if (now - lastCall < delay) {\n return;\n }\n lastCall = now;\n return fn(...args);\n }\n}\n\nconst childIndex = (element) =>\n Array.from(element.parentNode.children).indexOf(element)\n","\n\n// Screen sizes for match media\nconst mq = {\n xxs: 375,\n xs: 480,\n small: 600,\n medium: 720,\n large: 840,\n xl: 960,\n xxl: 1160\n}\n\n// Match media function\nfunction mqMatches(size) {\n return window.matchMedia('(min-width: ' + mq[size] + 'px)').matches;\n}\n\n\n// Add ie body class\nif (isIE11) {\n document.body.classList.add('ie');\n}\n\n\n// Send pageview to analytics\nfunction sendPageView({\n title = document.title,\n path = window.location.pathname + window.location.search,\n location = window.location.href\n} = {}) {\n gtag('config', 'UA-60176703-5', {\n 'page_title': title,\n 'page_path': path,\n 'page_location': location\n });\n}\n\nconst wrapper = document.querySelector('.transition-slide');\n\n\nconst getSiteOrigin = () => {\n const lastSlash = window.location.href.lastIndexOf('/');\n return window.location.href.slice(0, lastSlash);\n}\n\nconst siteOrigin = getSiteOrigin();\n","\nconst navContainers = [\n document.getElementById('header'),\n document.getElementById('footer')\n];\n\nconst headerNav = navContainers[0];\n\nfunction toggleMenu(parent, direction) {\n const btn = parent.querySelector('.nav-btn');\n const nav = parent.querySelector('.main-nav');\n const pageContent = document.getElementById('page-content');\n const brandLinks = document.querySelector('.header-brand-links');\n if (direction === 'in') {\n btn.title = 'Close Menu';\n nav.classList.remove('closed');\n parent.classList.add('nav-open');\n pageContent.classList.add('shift-down');\n const shift = nav.clientHeight + brandLinks.clientHeight;\n if (window.innerHeight - nav.clientHeight < 240) {\n pageContent.style.transform = `translateY(${shift}px)`;\n }\n } else {\n btn.title = 'Open Menu';\n pageContent.removeAttribute('style');\n parent.classList.remove('nav-open');\n pageContent.classList.remove('shift-down');\n if (isIE11) {\n nav.classList.add('closed');\n } else {\n nav.addEventListener('transitionend', function() {\n nav.classList.add('closed');\n }, {once:true});\n }\n }\n}\n\nconst menuBtn = document.querySelector('.nav-btn');\nmenuBtn.addEventListener('click', function(e) {\n e.preventDefault();\n if (!headerNav.classList.contains('nav-open')) {\n toggleMenu(headerNav, 'in');\n } else {\n toggleMenu(headerNav, 'out');\n }\n});\n\nlet dotRadius = mqMatches('small') ? 5 : 4;\n\nconst dotPosition = el => el.offsetTop + el.clientHeight / 2 - dotRadius;\n\nfunction positionNavMarker(marker, el, items) {\n\n const dotOffset = Math.floor(dotPosition(el));\n const linkHeight = items[0].clientHeight;\n const lineLength = (linkHeight + 1) * (items.length - 1) + dotRadius;\n\n marker.to.style.transform = `translateY(0)`;\n marker.line.style.transform = `scaleY(0)`;\n\n marker.line.style.top = `${dotOffset}px`;\n marker.from.style.top = `${dotOffset}px`;\n marker.to.style.top = `${dotOffset}px`;\n marker.line.style.height = `${lineLength}px`;\n}\n\nfunction animateNavMarker(marker, el, index = null) {\n\n const currentPos = marker.to.offsetTop;\n const targetPos = Math.floor(dotPosition(el));\n\n let distance = 0;\n let scaleLength = 0;\n if (!el.classList.contains('current') && index !== null) {\n distance = targetPos - currentPos;\n scaleLength = distance / marker.line.clientHeight;\n }\n\n marker.to.style.transform = `translateY(${distance}px)`;\n marker.line.style.transform = `scaleY(${scaleLength})`;\n}\n\nfunction mainNavInit(container, currentPage) {\n\n const nav = container.querySelector('.nav-list');\n const menuLinks = container.querySelectorAll('.nav-list-item a');\n\n if (currentPage) {\n container.querySelector('.next-page').classList.remove('next-page');\n menuLinks.forEach((link, i) => {\n link.classList.remove('current');\n if (link.href === currentPage.href) {\n link.classList.add('current');\n let nextPageLink = menuLinks[i + 1] ? menuLinks[i + 1] : menuLinks[0];\n nextPageLink.classList.add('next-page');\n }\n });\n }\n\n const currentNavLink = container.querySelector('.current');\n\n const navMarker = {\n line: container.querySelector('.nav-marker-line'),\n to: container.querySelector('.nav-marker-dot-to'),\n from: container.querySelector('.nav-marker-dot-from')\n }\n\n // Position nav marker at current link\n positionNavMarker(navMarker, currentNavLink, menuLinks);\n\n // Animate nav marker to hovered link\n let lastHover = null;\n const mouseMoveHandler = (event) => {\n if (event.target !== lastHover) {\n const index = childIndex(event.target.parentNode);\n animateNavMarker(navMarker, event.target, index);\n lastHover = event.target;\n }\n }\n const tMouseMove = debounced(50, mouseMoveHandler);\n nav.addEventListener('mousemove', tMouseMove);\n\n // Animate nav marker back to current link on mouseleave\n const mouseOutHandler = (event) => {\n setTimeout(() => {\n animateNavMarker(navMarker, currentNavLink);\n lastHover = null;\n }, 100);\n }\n nav.removeEventListener('mouseleave', mouseOutHandler);\n nav.addEventListener('mouseleave', mouseOutHandler);\n\n}\n\nfunction mainNavLoad(page = null) {\n navContainers.forEach((nav) => {\n mainNavInit(nav, page);\n });\n}\n\nwindow.addEventListener('DOMContentLoaded', mainNavLoad());\n","// Road Trip Images\n\n// Master array of all photos to select from\n// These files should exist in ../img/road-trip/\nconst roadTripImages = [\n 'road-to-wanderfall-02.jpg',\n 'road-to-wanderfall-09.jpg',\n 'road-to-wanderfall-10.jpg',\n 'road-to-wanderfall-13.jpg',\n 'road-to-wanderfall-16.jpg',\n 'road-to-wanderfall-20.jpg',\n 'road-to-wanderfall-22.jpg',\n 'road-to-wanderfall-24.jpg',\n 'road-to-wanderfall-29.jpg',\n 'road-to-wanderfall-32.jpg',\n 'road-to-wanderfall-33.jpg',\n 'road-to-wanderfall-36.jpg',\n 'road-to-wanderfall-44.jpg',\n 'road-to-wanderfall-46.jpg',\n 'road-to-wanderfall-47.jpg',\n 'road-to-wanderfall-48.jpg',\n 'road-to-wanderfall-49.jpg',\n 'road-to-wanderfall-50.jpg',\n 'road-to-wanderfall-54.jpg',\n 'road-to-wanderfall-55.jpg',\n 'road-to-wanderfall-56.jpg',\n 'road-to-wanderfall-59.jpg',\n 'road-to-wanderfall-62.jpg',\n 'road-to-wanderfall-64.jpg',\n 'road-to-wanderfall-65.jpg',\n 'road-to-wanderfall-68.jpg',\n 'road-to-wanderfall-69.jpg',\n 'road-to-wanderfall-71.jpg',\n 'road-to-wanderfall-72.jpg',\n 'road-to-wanderfall-73.jpg',\n 'road-to-wanderfall-74.jpg',\n 'road-to-wanderfall-76.jpg',\n 'road-to-wanderfall-77.jpg',\n 'road-to-wanderfall-78.jpg',\n 'road-to-wanderfall-79.jpg',\n 'road-to-wanderfall-81.jpg',\n 'road-to-wanderfall-82.jpg',\n 'road-to-wanderfall-83.jpg',\n 'road-to-wanderfall-85.jpg',\n 'road-to-wanderfall-86.jpg',\n 'road-to-wanderfall-87.jpg',\n 'road-to-wanderfall-88.jpg',\n 'road-to-wanderfall-89.jpg',\n 'road-to-wanderfall-90.jpg',\n 'road-to-wanderfall-91.jpg',\n 'road-to-wanderfall-95.jpg',\n 'road-to-wanderfall-96.jpg',\n 'road-to-wanderfall-99.jpg',\n 'road-to-wanderfall-100.jpg',\n 'road-to-wanderfall-101.jpg',\n 'road-to-wanderfall-102.jpg',\n 'road-to-wanderfall-103.jpg',\n 'road-to-wanderfall-104.jpg',\n 'road-to-wanderfall-109.jpg',\n 'road-to-wanderfall-116.jpg',\n 'road-to-wanderfall-117.jpg',\n 'road-to-wanderfall-124.jpg',\n 'road-to-wanderfall-125.jpg',\n 'road-to-wanderfall-127.jpg',\n 'road-to-wanderfall-128.jpg',\n 'road-to-wanderfall-133.jpg',\n 'road-to-wanderfall-134.jpg',\n 'road-to-wanderfall-136.jpg',\n 'road-to-wanderfall-137.jpg',\n 'road-to-wanderfall-139.jpg',\n 'road-to-wanderfall-142.jpg',\n 'road-to-wanderfall-143.jpg',\n 'road-to-wanderfall-144.jpg',\n 'road-to-wanderfall-145.jpg',\n 'road-to-wanderfall-146.jpg',\n 'road-to-wanderfall-147.jpg',\n 'road-to-wanderfall-148.jpg',\n 'road-to-wanderfall-149.jpg',\n 'road-to-wanderfall-150.jpg'\n];\n","\nconst lightBox = document.getElementById('lightbox');\nconst travelDot = document.querySelector('.travel-dot');\nconst headerDot = document.querySelector('.header-travel-dot');\nconst footerDot = document.querySelector('.footer-travel-dot');\n\n// Fill lightbox with 3 random images\nfunction lightBoxInit() {\n\n // Remove existing photos\n const container = lightBox.querySelector('.lightbox-container');\n while (container.firstChild) {\n container.removeChild(container.firstChild);\n }\n\n // Create a clone of roadTripPhotos\n const photos = roadTripImages.slice(0);\n\n // Append 3 random images\n for (let i = 0; i < 3; i++) {\n let random = Math.floor(Math.random()*photos.length);\n let randomPhoto = new Image();\n let source = photos[random];\n photos.splice(random, 1);\n\n let path = source.startsWith('http') ? '' : 'img/road-trip/';\n randomPhoto.src = path + source;\n randomPhoto.classList.add('lightbox-photo');\n container.appendChild(randomPhoto);\n }\n\n lightBox.style.transform = `translateY(${window.innerHeight}px)`;\n}\n\nlightBoxInit();\n\n\nfunction showLightBox() {\n\n lightBox.classList.add('active');\n lightBox.style.transform = 'translateY(0)';\n wrapper.style.transform = `translateY(-${window.innerHeight}px)`;\n\n const transtionHandler = () => {\n document.querySelector('.travel-path').classList.add('traveling');\n wrapper.style.transform = `translateY(${window.innerHeight}px)`;\n if (isIE11) {\n travelDot.style.transform = `translateY(${window.innerHeight + 10}px)`;\n }\n lightBox.removeEventListener('transitionend', transtionHandler);\n }\n lightBox.addEventListener('transitionend', transtionHandler);\n}\n\nfunction hideLightbox() {\n headerDot.addEventListener('transitionend', function hDot(event) {\n this.classList.add('pop');\n event.currentTarget.removeEventListener(event.type, hDot);\n });\n lightBox.classList.add('leaving');\n lightBox.style.transform = `translateY(-${window.innerHeight}px)`;\n setTimeout(() => {\n lightBox.classList.remove('active');\n lightBox.classList.remove('leaving');\n lightBox.style.transform = `translateY(${window.innerHeight}px)`;\n document.querySelector('.travel-path').classList.remove('traveling');\n if (isIE11) {\n travelDot.style.transform = 'translateY(0)';\n }\n }, 1000);\n}\n\n\nfunction travelDotTransitionEnd() {\n\n footerDot.addEventListener('transitionend', function fDot(event) {\n travelDot.classList.remove('invisible');\n showLightBox();\n let compStyles = window.getComputedStyle(headerDot);\n let top = compStyles.getPropertyValue('top');\n headerDot.classList.add('translate');\n headerDot.style.transform = `translateY(-${top})`;\n event.currentTarget.removeEventListener(event.type, fDot);\n });\n\n travelDot.addEventListener('transitionend', function tDot(event) {\n travelDot.classList.add('invisible');\n headerDot.classList.remove('translate');\n headerDot.classList.remove('pop');\n headerDot.style.transform = `translateY(0)`;\n event.currentTarget.removeEventListener(event.type, tDot);\n });\n\n}\n\ntravelDotTransitionEnd();\n","\n\n// Small folding images\nfunction foldingImageHandler() {\n const foldingImages = document.querySelectorAll('.folding-img');\n\n for (const img of foldingImages) {\n\n let insidePanel = img.querySelector('.flip-panel.inside-panel');\n let outsidePanel = img.querySelector('.outside-panel');\n\n let time = {\n start: null,\n total: 1000\n };\n\n let unfold = now => {\n if (!time.start) time.start = now;\n time.elapsed = now - time.start;\n let progress = Math.min(time.elapsed / time.total, 1);\n let rotation = (progress * 180).toFixed(2);\n insidePanel.style.transform = `rotateX(${180 - rotation}deg)`;\n outsidePanel.style.transform = `rotateX(-${rotation}deg)`;\n if (progress < 1) {\n requestAnimationFrame(unfold);\n } else {\n cancelAnimationFrame(unfold);\n }\n }\n\n let wp = new Waypoint({\n element: img,\n handler: function() {\n img.classList.add('unfolding');\n if (isIE11) requestAnimationFrame(unfold);\n this.destroy();\n },\n offset: '40%'\n });\n\n outsidePanel.addEventListener('transitionend', function() {\n img.classList.add('unfolded');\n this.remove();\n });\n }\n}\n\nfoldingImageHandler();\n\n\n// Large folding images\nvar foldDuration = 500;\n\n$.fn.foldProgress = function(percentage) {\n if (percentage === 1) { // Fully unfolded\n Waypoint.refreshAll();\n }\n}\n\nfunction paperfoldImageHandler() {\n const paperfoldImages = document.querySelectorAll('.paperfold');\n for (const div of paperfoldImages) {\n var numberFolds = $('.paperfold').attr('data-folds');\n var paperfold = $(div).paperfold({\n duration: 500,\n maxFoldHeight: 200,\n folds: numberFolds, //overides max fold height\n perspective: '4000px',\n topShadow: 'linear-gradient(rgba(0,0,0,0.5), rgba(0,0,0,0.8))',\n bottomShadow: 'linear-gradient(rgba(0,0,0,0.75), rgba(0,0,0,0))',\n isOpen: false,\n onProgress: $.fn.foldProgress,\n stayInPlace: false\n });\n\n paperfold.percentage(.1);\n\n let wp = new Waypoint({\n element: div,\n handler: function() {\n paperfold.toggle();\n this.destroy();\n },\n offset: '40%'\n });\n }\n}\n\npaperfoldImageHandler();\n","\n// Swiper\n\nfunction benchCarvingSwiper() {\n const swiper = new Swiper('.bench-carvings', {\n pagination: {\n el: '.swiper-pagination'\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n }\n });\n}\n\nfunction activateSwiper(swiper) {\n\n swiper.init();\n\n let waypoint = new Waypoint({\n element: swiper.el,\n handler: function() {\n swiper.el.classList.add('active');\n this.destroy();\n },\n offset: '100%'\n });\n\n}\n\nfunction lazyLoadOnScroll(swiper, slide, index, length) {\n if (index > 0 && (index + 2) % 8 === 0) {\n let waypoint = new Waypoint({\n element: slide,\n handler: function() {\n for (let i = 0; i < length; i++) {\n swiper.lazy.loadInSlide(i + index + 2);\n }\n this.destroy();\n },\n context: swiper.el,\n horizontal: true\n });\n }\n}\n\nfunction roadTripSwiper(wrapper) {\n\n const swiper = new Swiper('.road-trip-swiper', {\n init: false,\n slidesPerView: 'auto',\n freeMode: true,\n grabCursor: true,\n preloadImages: false,\n watchSlidesVisibility: true,\n allowTouchMove: false,\n lazy: {\n loadPrevNext: true,\n loadOnTransitionStart: true,\n loadPrevNextAmount: 8\n },\n scrollbar: {\n el: '.swiper-scrollbar'\n },\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev'\n },\n breakpointsInverse: true,\n breakpoints: {\n 720: {\n slidesPerGroup: 3,\n allowTouchMove: true\n }\n }\n });\n\n roadTripImages.forEach((image, index) => {\n\n let slide = document.createElement('div');\n slide.classList.add('swiper-slide');\n slide.classList.add('road-trip-slide');\n\n slide.innerHTML = `\n ${index}\n \"\"\n
\n `;\n\n wrapper.appendChild(slide);\n\n if (!mqMatches('medium')) {\n lazyLoadOnScroll(swiper, slide, index, 8);\n }\n\n if (index === roadTripImages.length - 1) {\n activateSwiper(swiper);\n }\n\n });\n\n swiper.on('touchEnd', function() {\n this.lazy.load();\n });\n\n}\n\nfunction swiperInit() {\n benchCarvingSwiper()\n const roadTripPhotos = document.getElementById('road-trip-swiper')\n if (roadTripPhotos) {\n roadTripSwiper(roadTripPhotos)\n }\n}\n\nswiperInit();\n\n\n// Art portfolio images\nconst artPortfolio = document.getElementById('artwork-photos');\n\nfunction loadArtPhotos() {\n\n const lazyImages = document.querySelectorAll('img.lazy');\n\n lazyImages.forEach((img) => {\n\n let waypoint = new Waypoint({\n element: img,\n handler: function() {\n let lazyImage = this.element;\n if (lazyImage.dataset.src) {\n lazyImage.src = lazyImage.dataset.src;\n lazyImage.classList.remove('lazy');\n }\n this.destroy();\n },\n offset: '125%'\n });\n });\n\n}\n\nif (artPortfolio) {\n loadArtPhotos();\n}\n","\n// Analytics custom events\n\nconst artDocVideo = document.getElementById('progressive-art-doc');\n\nif (artDocVideo) {\n\n // First video play\n artDocVideo.addEventListener('play', function artDocVideoPlay(event) {\n gtag('event', 'video_play', {\n 'event_label': 'Art Documentary',\n 'event_category': 'Videos'\n });\n event.currentTarget.removeEventListener(event.type, artDocVideoPlay);\n });\n\n // Video playback complete\n artDocVideo.addEventListener('ended', function() {\n gtag('event', 'video_ended', {\n 'event_label': 'Art Documentary',\n 'event_category': 'Videos'\n });\n });\n\n}\n","\n// Quarterly Nav Dropdown\n\nfunction populateLabelText(dropdown) {\n const menuLocator = dropdown.querySelector('.selected-item');\n const currentOption = dropdown.querySelector('.quarter-option.current a');\n menuLocator.innerHTML = currentOption.innerHTML;\n}\n\nfunction handleDropdownClick(dropdown) {\n const menuLabel = dropdown.querySelector('label');\n menuLabel.addEventListener('click', () => {\n dropdown.classList.toggle('open');\n });\n}\n\nfunction quarterlyMenu() {\n const menu = document.getElementById('quarterly-menu');\n if (menu) {\n populateLabelText(menu);\n handleDropdownClick(menu);\n }\n}\n\nquarterlyMenu();\n","\n// @codekit-prepend quiet \"../../node_modules/swup/dist/swup.js\"\n// @codekit-prepend quiet \"../../node_modules/waypoints/lib/noframework.waypoints.js\"\n\n// @codekit-prepend \"_helpers.js\"\n// @codekit-prepend \"_global.js\"\n// @codekit-prepend \"_nav.js\"\n// @codekit-prepend \"_roadtrip.js\"\n// @codekit-prepend \"_transition.js\"\n// @codekit-prepend \"_imagefold.js\"\n// @codekit-prepend \"_gallery.js\"\n// @codekit-prepend \"_events.js\"\n// @codekit-prepend \"_quarterly.js\"\n\nfunction getFileNameFromUrl(url) {\n const urlArray = url.split('/');\n return urlArray[urlArray.length - 1];\n}\n\nconst getAbsolutePath = relativePath => `${siteOrigin}/${relativePath}`;\n\nfunction absoluteSrcImg() {\n const images = document.querySelectorAll('img');\n images.forEach((img) => {\n let source = img.getAttribute('src');\n img.src = getAbsolutePath(source);\n });\n}\n\nfunction absoluteSrcVid() {\n const videos = document.querySelectorAll('video');\n videos.forEach((vid) => {\n let srcElement = vid.querySelector('source');\n let source = srcElement.getAttribute('src');\n let posterImg = vid.getAttribute('poster');\n vid.poster = getAbsolutePath(posterImg);\n srcElement.src = getAbsolutePath(source);\n vid.load();\n vid.addEventListener('canplay', () => {\n vid.play();\n })\n });\n}\n\n// Elements that will be replaced on transition\nconst swupReplace = [\n '#page-content',\n '.nav-location'\n];\n\nconst swupLinks = document.querySelectorAll('.nav-list-item a');\n\nconst pageTransition = new Swup({\n elements: swupReplace,\n animationSelector: '[class^=\"transition-\"]',\n LINK_SELECTOR: null,\n scroll: true,\n animateScroll: false,\n pageClassPrefix: 'page-',\n cache: true,\n animateHistoryBrowsing: false,\n debugMode: false\n});\n\n\nfunction pageLoad(currentPage) {\n mainNavLoad(currentPage);\n quarterlyMenu();\n setTimeout(() => {\n lightBoxInit();\n travelDotTransitionEnd();\n swiperInit();\n foldingImageHandler();\n paperfoldImageHandler();\n if (currentPage.href.endsWith('art.html')) {\n loadArtPhotos();\n }\n }, 1000);\n}\n\nfunction fixUrl(url) {\n absoluteSrcImg();\n absoluteSrcVid();\n const pageName = getFileNameFromUrl(url);\n const path = `${siteOrigin}/${pageName}`;\n history.replaceState({page: path}, '', path);\n sendPageView({path: pageName});\n}\n\nfunction headerNavTransition(page) {\n pageTransition.options.animationSelector = '[class^=\"no-transition\"]';\n\n const pageSwap = () => {\n setTimeout(() => {\n toggleMenu(headerNav, 'out');\n setTimeout(() => {\n pageLoad(page);\n }, 200);\n }, 200);\n }\n\n if (isIE11) {\n pageTransition.on('animationInDone', () => {\n fixUrl(page.href);\n pageSwap();\n });\n } else {\n pageSwap();\n }\n\n pageTransition.loadPage({\n url: page.href,\n customTransition: 'header'\n });\n\n}\n\nfunction footerNavTransition(page) {\n pageTransition.options.animationSelector = '[class^=\"transition-\"]';\n\n pageTransition.on('animationInStart', function() {\n wrapper.style.transform = `translateY(${window.innerHeight}px)`;\n });\n\n pageTransition.on('animationInDone', function() {\n wrapper.style.transform = `translateY(0)`;\n hideLightbox();\n pageLoad(page);\n if (isIE11) {\n fixUrl(page.href);\n }\n });\n\n if (headerNav.classList.contains('nav-open')) {\n document.body.classList.add('page-about-to-change');\n toggleMenu(headerNav, 'out');\n }\n\n pageTransition.loadPage({\n url: page.href,\n customTransition: 'footer'\n });\n}\n\nswupLinks.forEach((link) => {\n\n link.addEventListener('mouseover', function() {\n pageTransition.preloadPage(link.href);\n });\n\n link.addEventListener('click', function(e) {\n e.preventDefault();\n Waypoint.destroyAll();\n pageTransition.off('animationInDone');\n pageTransition.off('animationInStart');\n if (e.target.closest('.nav-list-header')) {\n headerNavTransition(link);\n } else {\n footerNavTransition(link);\n }\n });\n});\n\nif (!isIE11) {\n pageTransition.on('pageView', sendPageView);\n}\n\nfunction getLinkFromUrl(url) {\n for (let i = 0; i < swupLinks.length; i++) {\n if (swupLinks[i].href === url) {\n return swupLinks[i];\n }\n }\n}\n\npageTransition.on('popState', event => {\n let popState = event.state.url.split('?')[0];\n pageLoad(getLinkFromUrl(popState));\n});\n"]}