diff --git a/assets/scripts/config.js b/assets/scripts/config.js index b278203..f28e3fd 100644 --- a/assets/scripts/config.js +++ b/assets/scripts/config.js @@ -1,3 +1,12 @@ +/** + * > When using the esBuild API, all `process.env.NODE_ENV` expressions + * > are automatically defined to `"production"` if all minification + * > options are enabled and `"development"` otherwise. This only happens + * > if `process`, `process.env`, and `process.env.NODE_ENV` are not already + * > defined. This substitution is necessary to avoid code crashing instantly + * > (since `process` is a Node API, not a web API). + * > — https://esbuild.github.io/api/#platform + */ const env = process.env.NODE_ENV export default config = Object.freeze({ diff --git a/www/assets/scripts/app.js.map b/www/assets/scripts/app.js.map index 6b81b25..85f6bb0 100644 --- a/www/assets/scripts/app.js.map +++ b/www/assets/scripts/app.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["../../../node_modules/svg4everybody/dist/svg4everybody.js", "../../../node_modules/modujs/dist/main.esm.js", "../../../assets/scripts/modules.js", "../../../node_modules/modularload/dist/main.esm.js", "../../../assets/scripts/modules/Load.js", "../../../assets/scripts/utils/image.js", "../../../node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js", "../../../assets/scripts/modules/Scroll.js", "../../../assets/scripts/globals.js", "../../../assets/scripts/utils/environment.js", "../../../assets/scripts/config.js", "../../../assets/scripts/app.js"], - "sourcesContent": ["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.mAttr = 'data-' + options.dataName;\n this.mCaptureEvents = ['mouseenter', 'mouseleave'];\n this.el = options.el;\n }\n\n _createClass(_default, [{\n key: \"mInit\",\n value: function mInit(modules) {\n var _this = this;\n\n this.modules = modules;\n this.mCheckEventTarget = this.mCheckEventTarget.bind(this);\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this.mAddEvent(event);\n });\n }\n }\n }, {\n key: \"mUpdate\",\n value: function mUpdate(modules) {\n this.modules = modules;\n }\n }, {\n key: \"mDestroy\",\n value: function mDestroy() {\n var _this2 = this;\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this2.mRemoveEvent(event);\n });\n }\n }\n }, {\n key: \"mAddEvent\",\n value: function mAddEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.addEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mRemoveEvent\",\n value: function mRemoveEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.removeEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mCheckEventTarget\",\n value: function mCheckEventTarget(e) {\n var event = this.events[e.type];\n\n if (typeof event === \"string\") {\n this[event](e);\n } else {\n var data = '[' + this.mAttr + ']';\n var target = e.target;\n\n if (this.mCaptureEvents.includes(e.type)) {\n if (target.matches(data)) {\n this.mCallEventMethod(e, event, target);\n }\n } else {\n while (target && target !== document) {\n if (target.matches(data)) {\n if (this.mCallEventMethod(e, event, target) != 'undefined') {\n break;\n }\n }\n\n target = target.parentNode;\n }\n }\n }\n }\n }, {\n key: \"mCallEventMethod\",\n value: function mCallEventMethod(e, event, target) {\n var name = target.getAttribute(this.mAttr);\n\n if (event.hasOwnProperty(name)) {\n var method = event[name];\n\n if (!e.hasOwnProperty('currentTarget')) {\n Object.defineProperty(e, 'currentTarget', {\n value: target\n });\n }\n\n if (!e.hasOwnProperty('curTarget')) {\n Object.defineProperty(e, 'curTarget', {\n value: target\n }); // For IE 11\n }\n\n this[method](e);\n }\n }\n }, {\n key: \"$\",\n value: function $(query, context) {\n var classIndex = query.indexOf('.');\n var idIndex = query.indexOf('#');\n var attrIndex = query.indexOf('[');\n var indexes = [classIndex, idIndex, attrIndex].filter(function (index) {\n return index != -1;\n });\n var index = false;\n var name = query;\n var more = '';\n var parent = this.el;\n\n if (indexes.length) {\n index = Math.min.apply(Math, _toConsumableArray(indexes));\n name = query.slice(0, index);\n more = query.slice(index);\n }\n\n if (_typeof(context) == 'object') {\n parent = context;\n }\n\n return parent.querySelectorAll('[' + this.mAttr + '=' + name + ']' + more);\n }\n }, {\n key: \"parent\",\n value: function parent(query, context) {\n var data = '[' + this.mAttr + '=' + query + ']';\n var parent = context.parentNode;\n\n while (parent && parent !== document) {\n if (parent.matches(data)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n }\n }, {\n key: \"getData\",\n value: function getData(name, context) {\n var target = context || this.el;\n return target.getAttribute(this.mAttr + '-' + name);\n }\n }, {\n key: \"setData\",\n value: function setData(name, value, context) {\n var target = context || this.el;\n return target.setAttribute(this.mAttr + '-' + name, value);\n }\n }, {\n key: \"call\",\n value: function call(func, args, mod, id) {\n var _this3 = this;\n\n if (args && !mod) {\n mod = args;\n args = false;\n }\n\n if (this.modules[mod]) {\n if (id) {\n if (this.modules[mod][id]) {\n this.modules[mod][id][func](args);\n }\n } else {\n Object.keys(this.modules[mod]).forEach(function (id) {\n _this3.modules[mod][id][func](args);\n });\n }\n }\n }\n }, {\n key: \"on\",\n value: function on(e, mod, func, id) {\n var _this4 = this;\n\n if (this.modules[mod]) {\n if (id) {\n this.modules[mod][id].el.addEventListener(e, function (o) {\n return func(o);\n });\n } else {\n Object.keys(this.modules[mod]).forEach(function (i) {\n _this4.modules[mod][i].el.addEventListener(e, function (o) {\n return func(o);\n });\n });\n }\n }\n }\n }, {\n key: \"init\",\n value: function init() {}\n }, {\n key: \"destroy\",\n value: function destroy() {}\n }]);\n\n return _default;\n}();\n\nvar _default$1 = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.app;\n this.modules = options.modules;\n this.currentModules = {};\n this.activeModules = {};\n this.newModules = {};\n this.moduleId = 0;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init(app, scope) {\n var _this = this;\n\n var container = scope || document;\n var elements = container.querySelectorAll('*');\n\n if (app && !this.app) {\n this.app = app;\n }\n\n this.activeModules['app'] = {\n 'app': this.app\n };\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var moduleExists = false;\n var dataName = i.name.split('-').splice(2);\n\n var moduleName = _this.toCamel(dataName);\n\n if (_this.modules[moduleName]) {\n moduleExists = true;\n } else if (_this.modules[_this.toUpper(moduleName)]) {\n moduleName = _this.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n var options = {\n el: el,\n name: moduleName,\n dataName: dataName.join('-')\n };\n var module = new _this.modules[moduleName](options);\n var id = i.value;\n\n if (!id) {\n _this.moduleId++;\n id = 'm' + _this.moduleId;\n el.setAttribute(i.name, id);\n }\n\n _this.addActiveModule(moduleName, id, module);\n\n var moduleId = moduleName + '-' + id;\n\n if (scope) {\n _this.newModules[moduleId] = module;\n } else {\n _this.currentModules[moduleId] = module;\n }\n }\n }\n });\n });\n Object.entries(this.currentModules).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n id = _ref2[0],\n module = _ref2[1];\n\n if (scope) {\n var split = id.split('-');\n var moduleName = split.shift();\n var moduleId = split.pop();\n\n _this.addActiveModule(moduleName, moduleId, module);\n } else {\n _this.initModule(module);\n }\n });\n }\n }, {\n key: \"initModule\",\n value: function initModule(module) {\n module.mInit(this.activeModules);\n module.init();\n }\n }, {\n key: \"addActiveModule\",\n value: function addActiveModule(name, id, module) {\n if (this.activeModules[name]) {\n Object.assign(this.activeModules[name], _defineProperty({}, id, module));\n } else {\n this.activeModules[name] = _defineProperty({}, id, module);\n }\n }\n }, {\n key: \"update\",\n value: function update(scope) {\n var _this2 = this;\n\n this.init(this.app, scope);\n Object.entries(this.currentModules).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n module = _ref4[1];\n\n module.mUpdate(_this2.activeModules);\n });\n Object.entries(this.newModules).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n module = _ref6[1];\n\n _this2.initModule(module);\n });\n Object.assign(this.currentModules, this.newModules);\n }\n }, {\n key: \"destroy\",\n value: function destroy(scope) {\n if (scope) {\n this.destroyScope(scope);\n } else {\n this.destroyModules();\n }\n }\n }, {\n key: \"destroyScope\",\n value: function destroyScope(scope) {\n var _this3 = this;\n\n var elements = scope.querySelectorAll('*');\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var id = i.value;\n var dataName = i.name.split('-').splice(2);\n var moduleName = _this3.toCamel(dataName) + '-' + id;\n var moduleExists = false;\n\n if (_this3.currentModules[moduleName]) {\n moduleExists = true;\n } else if (_this3.currentModules[_this3.toUpper(moduleName)]) {\n moduleName = _this3.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n _this3.destroyModule(_this3.currentModules[moduleName]);\n\n delete _this3.currentModules[moduleName];\n }\n }\n });\n });\n this.activeModules = {};\n this.newModules = {};\n }\n }, {\n key: \"destroyModules\",\n value: function destroyModules() {\n var _this4 = this;\n\n Object.entries(this.currentModules).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n id = _ref8[0],\n module = _ref8[1];\n\n _this4.destroyModule(module);\n });\n this.currentModules = [];\n }\n }, {\n key: \"destroyModule\",\n value: function destroyModule(module) {\n module.mDestroy();\n module.destroy();\n }\n }, {\n key: \"toCamel\",\n value: function toCamel(arr) {\n var _this5 = this;\n\n return arr.reduce(function (a, b) {\n return a + _this5.toUpper(b);\n });\n }\n }, {\n key: \"toUpper\",\n value: function toUpper(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$1;\nexport { _default as module };\n", "export {default as Load} from './modules/Load';\nexport {default as Scroll} from './modules/Scroll';\n", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.defaults = {\n name: 'load',\n loadingClass: 'is-loading',\n loadedClass: 'is-loaded',\n readyClass: 'is-ready',\n transitionsPrefix: 'is-',\n transitionsHistory: true,\n enterDelay: 0,\n exitDelay: 0,\n loadedDelay: 0,\n isLoaded: false,\n isEntered: false,\n isUrl: false,\n transitionContainer: null,\n popstateIgnore: false\n };\n Object.assign(this, this.defaults, options);\n this.options = options;\n this.namespace = 'modular';\n this.html = document.documentElement;\n this.href = window.location.href;\n this.container = 'data-' + this.name + '-container';\n this.subContainer = false;\n this.prevTransition = null;\n this.loadAttributes = ['src', 'srcset', 'style', 'href'];\n this.isInserted = false;\n this.isLoading = false;\n this.enterTimeout = false;\n this.controller = new AbortController();\n this.classContainer = this.html;\n this.isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1 ? true : false;\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n window.addEventListener('popstate', function (e) {\n return _this.checkState(e);\n }, false);\n this.html.addEventListener('click', function (e) {\n return _this.checkClick(e);\n }, false);\n this.loadEls(document);\n }\n }, {\n key: \"checkClick\",\n value: function checkClick(e) {\n if (!e.ctrlKey && !e.metaKey) {\n var target = e.target;\n\n while (target && target !== document) {\n if (target.matches('a') && target.getAttribute('download') == null) {\n var href = target.getAttribute('href');\n\n if (!href.startsWith('#') && !href.startsWith('mailto:') && !href.startsWith('tel:')) {\n e.preventDefault();\n this.reset();\n this.getClickOptions(target);\n }\n\n break;\n }\n\n target = target.parentNode;\n }\n }\n }\n }, {\n key: \"checkState\",\n value: function checkState() {\n if (typeof this.popstateIgnore === 'string' && window.location.href.indexOf(this.popstateIgnore) > -1) {\n return;\n }\n\n this.reset();\n this.getStateOptions();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.isLoading) {\n this.controller.abort();\n this.isLoading = false;\n this.controller = new AbortController();\n }\n\n window.clearTimeout(this.enterTimeout);\n\n if (this.isInserted) {\n this.removeContainer();\n }\n\n this.classContainer = this.html;\n Object.assign(this, this.defaults, this.options);\n }\n }, {\n key: \"getClickOptions\",\n value: function getClickOptions(link) {\n this.transition = link.getAttribute('data-' + this.name);\n this.isUrl = link.getAttribute('data-' + this.name + '-url');\n var href = link.getAttribute('href');\n var target = link.getAttribute('target');\n\n if (target == '_blank') {\n window.open(href, '_blank');\n return;\n }\n\n if (this.transition == 'false') {\n window.location = href;\n return;\n }\n\n this.setOptions(href, true);\n }\n }, {\n key: \"getStateOptions\",\n value: function getStateOptions() {\n if (this.transitionsHistory) {\n this.transition = history.state;\n } else {\n this.transition = false;\n }\n\n var href = window.location.href;\n this.setOptions(href);\n }\n }, {\n key: \"goTo\",\n value: function goTo(href, transition, isUrl) {\n this.reset();\n this.transition = transition;\n this.isUrl = isUrl;\n this.setOptions(href, true);\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(href, push) {\n var container = '[' + this.container + ']';\n var oldContainer;\n\n if (this.transition && this.transition != 'true') {\n this.transitionContainer = '[' + this.container + '=\"' + this.transition + '\"]';\n this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass;\n this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass;\n this.readyClass = this.transitions[this.transition].readyClass || this.readyClass;\n this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix;\n this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay;\n this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay;\n this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay;\n oldContainer = document.querySelector(this.transitionContainer);\n }\n\n if (oldContainer) {\n container = this.transitionContainer;\n this.oldContainer = oldContainer;\n this.classContainer = this.oldContainer.parentNode;\n\n if (!this.subContainer) {\n history.replaceState(this.transition, null, this.href);\n }\n\n this.subContainer = true;\n } else {\n this.oldContainer = document.querySelector(container);\n\n if (this.subContainer) {\n history.replaceState(this.prevTransition, null, this.href);\n }\n\n this.subContainer = false;\n }\n\n this.href = href;\n this.parentContainer = this.oldContainer.parentNode;\n\n if (this.isUrl === '' || this.isUrl != null && this.isUrl != 'false' && this.isUrl != false) {\n history.pushState(this.transition, null, href);\n } else {\n this.oldContainer.classList.add('is-old');\n this.setLoading();\n this.startEnterDelay();\n this.loadHref(href, container, push);\n }\n }\n }, {\n key: \"setLoading\",\n value: function setLoading() {\n this.classContainer.classList.remove(this.loadedClass, this.readyClass);\n this.classContainer.classList.add(this.loadingClass);\n this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition);\n\n if (this.transition) {\n this.classContainer.classList.add(this.transitionsPrefix + this.transition);\n }\n\n if (!this.subContainer) {\n this.prevTransition = this.transition;\n }\n\n var loadingEvent = new Event(this.namespace + 'loading');\n window.dispatchEvent(loadingEvent);\n }\n }, {\n key: \"startEnterDelay\",\n value: function startEnterDelay() {\n var _this2 = this;\n\n this.enterTimeout = window.setTimeout(function () {\n _this2.isEntered = true;\n\n if (_this2.isLoaded) {\n _this2.transitionContainers();\n }\n }, this.enterDelay);\n }\n }, {\n key: \"loadHref\",\n value: function loadHref(href, container, push) {\n var _this3 = this;\n\n this.isLoading = true;\n var signal = this.controller.signal;\n fetch(href, {\n signal: signal\n }).then(function (response) {\n return response.text();\n }).then(function (data) {\n if (push) {\n history.pushState(_this3.transition, null, href);\n }\n\n var parser = new DOMParser();\n _this3.data = parser.parseFromString(data, 'text/html');\n _this3.newContainer = _this3.data.querySelector(container);\n\n _this3.newContainer.classList.add('is-new');\n\n _this3.parentNewContainer = _this3.newContainer.parentNode;\n\n _this3.hideContainer();\n\n _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer);\n\n _this3.isInserted = true;\n\n _this3.setSvgs();\n\n _this3.isLoaded = true;\n\n if (_this3.isEntered) {\n _this3.transitionContainers();\n }\n\n _this3.loadEls(_this3.newContainer);\n\n _this3.isLoading = false;\n })[\"catch\"](function (err) {\n window.location = href;\n });\n }\n }, {\n key: \"transitionContainers\",\n value: function transitionContainers() {\n var _this4 = this;\n\n this.setAttributes();\n this.showContainer();\n this.setLoaded();\n setTimeout(function () {\n _this4.removeContainer();\n\n _this4.setReady();\n }, this.exitDelay);\n }\n }, {\n key: \"setSvgs\",\n value: function setSvgs() {\n if (this.isChrome) {\n var svgs = this.newContainer.querySelectorAll('use');\n\n if (svgs.length) {\n svgs.forEach(function (svg) {\n var xhref = svg.getAttribute('xlink:href');\n\n if (xhref) {\n svg.parentNode.innerHTML = '';\n } else {\n var href = svg.getAttribute('href');\n if (href) svg.parentNode.innerHTML = '';\n }\n });\n }\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var _this5 = this;\n\n var title = this.data.getElementsByTagName('title')[0];\n var newDesc = this.data.head.querySelector('meta[name=\"description\"]');\n var oldDesc = document.head.querySelector('meta[name=\"description\"]');\n var container;\n var newContainer;\n\n if (this.subContainer) {\n newContainer = this.parentNewContainer;\n container = document.querySelector(this.transitionContainer).parentNode;\n } else {\n newContainer = this.data.querySelector('html');\n container = document.querySelector('html');\n }\n\n var datas = Object.assign({}, newContainer.dataset);\n if (title) document.title = title.innerText;\n if (oldDesc && newDesc) oldDesc.setAttribute('content', newDesc.getAttribute('content'));\n\n if (datas) {\n Object.entries(datas).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n container.setAttribute('data-' + _this5.toDash(key), val);\n });\n }\n }\n }, {\n key: \"toDash\",\n value: function toDash(str) {\n return str.split(/(?=[A-Z])/).join('-').toLowerCase();\n }\n }, {\n key: \"hideContainer\",\n value: function hideContainer() {\n this.newContainer.style.visibility = 'hidden';\n this.newContainer.style.height = 0;\n this.newContainer.style.overflow = 'hidden';\n }\n }, {\n key: \"showContainer\",\n value: function showContainer() {\n this.newContainer.style.visibility = '';\n this.newContainer.style.height = '';\n this.newContainer.style.overflow = '';\n }\n }, {\n key: \"loadEls\",\n value: function loadEls(container) {\n var _this6 = this;\n\n var promises = [];\n this.loadAttributes.forEach(function (attr) {\n var data = 'data-' + _this6.name + '-' + attr;\n var els = container.querySelectorAll('[' + data + ']');\n\n if (els.length) {\n els.forEach(function (el) {\n var elData = el.getAttribute(data);\n el.setAttribute(attr, elData);\n\n if (attr == 'src' || attr == 'srcset') {\n var promise = new Promise(function (resolve) {\n el.onload = function () {\n return resolve(el);\n };\n });\n promises.push(promise);\n }\n });\n }\n });\n Promise.all(promises).then(function (val) {\n var imagesEvent = new Event(_this6.namespace + 'images');\n window.dispatchEvent(imagesEvent);\n });\n }\n }, {\n key: \"setLoaded\",\n value: function setLoaded() {\n var _this7 = this;\n\n this.classContainer.classList.remove(this.loadingClass);\n setTimeout(function () {\n _this7.classContainer.classList.add(_this7.loadedClass);\n }, this.loadedDelay);\n var loadedEvent = new Event(this.namespace + 'loaded');\n window.dispatchEvent(loadedEvent);\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n this.parentContainer.removeChild(this.oldContainer);\n this.newContainer.classList.remove('is-new');\n this.isInserted = false;\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n this.classContainer.classList.add(this.readyClass);\n var readyEvent = new Event(this.namespace + 'ready');\n window.dispatchEvent(readyEvent);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n var _this8 = this;\n\n window.addEventListener(this.namespace + event, function () {\n switch (event) {\n case 'loading':\n return func(_this8.transition, _this8.oldContainer);\n\n case 'loaded':\n return func(_this8.transition, _this8.oldContainer, _this8.newContainer);\n\n case 'ready':\n return func(_this8.transition, _this8.newContainer);\n\n default:\n return func();\n }\n }, false);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default;\n", "import { module } from 'modujs';\nimport modularLoad from 'modularload';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n const load = new modularLoad({\n enterDelay: 0,\n transitions: {\n customTransition: {}\n }\n });\n\n load.on('loaded', (transition, oldContainer, newContainer) => {\n this.call('destroy', oldContainer, 'app');\n this.call('update', newContainer, 'app');\n });\n }\n}\n", "/**\n * Get an image meta data\n *\n * @param {HTMLImageElement} $img - The image element.\n * @return {object} The given image meta data\n */\n\nconst getImageMetadata = $img => ({\n url: $img.src,\n width: $img.naturalWidth,\n height: $img.naturalHeight,\n ratio: $img.naturalWidth / $img.naturalHeight,\n})\n\n\n/**\n * Load the given image.\n *\n * @param {string} url - The URI to lazy load into $el.\n * @param {object} options - An object of options\n * @return {void}\n */\n\nconst loadImage = (url, options = {}) => {\n return new Promise((resolve, reject) => {\n const $img = new Image()\n\n if (options.crossOrigin) {\n $img.crossOrigin = options.crossOrigin\n }\n\n const loadCallback = () => {\n resolve({\n element: $img,\n ...getImageMetadata($img),\n })\n }\n\n if($img.decode) {\n $img.src = url\n $img.decode().then(loadCallback).catch(e => {\n reject(e)\n })\n } else {\n $img.onload = loadCallback\n $img.onerror = (e) => {\n reject(e)\n }\n $img.src = url\n }\n })\n}\n\n\n/**\n * Lazy load the given image.\n *\n * @param {HTMLImageElement} $el - The image element.\n * @param {?string} url - The URI to lazy load into $el.\n * If falsey, the value of the `data-src` attribute on $el will be used as the URI.\n * @param {?function} callback - A function to call when the image is loaded.\n * @return {void}\n */\n\nconst LAZY_LOADED_IMAGES = []\nconst lazyLoadImage = async ($el, url, callback) => {\n let src = url ? url : $el.dataset.src\n\n let loadedImage = LAZY_LOADED_IMAGES.find(image => image.url === src)\n\n if (!loadedImage) {\n loadedImage = await loadImage(src)\n\n if (!loadedImage.url) {\n return\n }\n\n LAZY_LOADED_IMAGES.push(loadedImage)\n }\n\n if($el.src === src) {\n return\n }\n\n if ($el.tagName === 'IMG') {\n $el.src = loadedImage.url\n } else {\n $el.style.backgroundImage = `url(${loadedImage.url})`\n }\n\n requestAnimationFrame(() => {\n let lazyParent = $el.closest('.c-lazy')\n\n if(lazyParent) {\n lazyParent.classList.add('-lazy-loaded')\n lazyParent.style.backgroundImage = ''\n }\n\n $el.classList.add('-lazy-loaded')\n\n callback?.()\n })\n}\n\n\nexport {\n getImageMetadata,\n loadImage,\n lazyLoadImage\n}\n", "/* locomotive-scroll v4.1.3 | MIT License | https://github.com/locomotivemtl/locomotive-scroll */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar defaults = {\n el: document,\n name: 'scroll',\n offset: [0, 0],\n repeat: false,\n smooth: false,\n initPosition: {\n x: 0,\n y: 0\n },\n direction: 'vertical',\n gestureDirection: 'vertical',\n reloadOnContextChange: false,\n lerp: 0.1,\n \"class\": 'is-inview',\n scrollbarContainer: false,\n scrollbarClass: 'c-scrollbar',\n scrollingClass: 'has-scroll-scrolling',\n draggingClass: 'has-scroll-dragging',\n smoothClass: 'has-scroll-smooth',\n initClass: 'has-scroll-init',\n getSpeed: false,\n getDirection: false,\n scrollFromAnywhere: false,\n multiplier: 1,\n firefoxMultiplier: 50,\n touchMultiplier: 2,\n resetNativeScroll: true,\n tablet: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical',\n breakpoint: 1024\n },\n smartphone: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical'\n }\n};\n\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.namespace = 'locomotive';\n this.html = document.documentElement;\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.els = {};\n this.currentElements = {};\n this.listeners = {};\n this.hasScrollTicking = false;\n this.hasCallEventSet = false;\n this.checkScroll = this.checkScroll.bind(this);\n this.checkResize = this.checkResize.bind(this);\n this.checkEvent = this.checkEvent.bind(this);\n this.instance = {\n scroll: {\n x: 0,\n y: 0\n },\n limit: {\n x: this.html.offsetWidth,\n y: this.html.offsetHeight\n },\n currentElements: this.currentElements\n };\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (this.isMobile) this.direction = this[this.context].direction;\n\n if (this.direction === 'horizontal') {\n this.directionAxis = 'x';\n } else {\n this.directionAxis = 'y';\n }\n\n if (this.getDirection) {\n this.instance.direction = null;\n }\n\n if (this.getDirection) {\n this.instance.speed = 0;\n }\n\n this.html.classList.add(this.initClass);\n window.addEventListener('resize', this.checkResize, false);\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.initEvents();\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n this.dispatchScroll();\n }\n }, {\n key: \"checkResize\",\n value: function checkResize() {\n var _this = this;\n\n if (!this.resizeTick) {\n this.resizeTick = true;\n requestAnimationFrame(function () {\n _this.resize();\n\n _this.resizeTick = false;\n });\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {}\n }, {\n key: \"checkContext\",\n value: function checkContext() {\n if (!this.reloadOnContextChange) return;\n this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || this.windowWidth < this.tablet.breakpoint;\n this.isTablet = this.isMobile && this.windowWidth >= this.tablet.breakpoint;\n var oldContext = this.context;\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (oldContext != this.context) {\n var oldSmooth = oldContext == 'desktop' ? this.smooth : this[oldContext].smooth;\n var newSmooth = this.context == 'desktop' ? this.smooth : this[this.context].smooth;\n if (oldSmooth != newSmooth) window.location.reload();\n }\n }\n }, {\n key: \"initEvents\",\n value: function initEvents() {\n var _this2 = this;\n\n this.scrollToEls = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-to]\"));\n this.setScrollTo = this.setScrollTo.bind(this);\n this.scrollToEls.forEach(function (el) {\n el.addEventListener('click', _this2.setScrollTo, false);\n });\n }\n }, {\n key: \"setScrollTo\",\n value: function setScrollTo(event) {\n event.preventDefault();\n this.scrollTo(event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-href\")) || event.currentTarget.getAttribute('href'), {\n offset: event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-offset\"))\n });\n }\n }, {\n key: \"addElements\",\n value: function addElements() {}\n }, {\n key: \"detectElements\",\n value: function detectElements(hasCallEventSet) {\n var _this3 = this;\n\n var scrollTop = this.instance.scroll.y;\n var scrollBottom = scrollTop + this.windowHeight;\n var scrollLeft = this.instance.scroll.x;\n var scrollRight = scrollLeft + this.windowWidth;\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n if (el && (!el.inView || hasCallEventSet)) {\n if (_this3.direction === 'horizontal') {\n if (scrollRight >= el.left && scrollLeft < el.right) {\n _this3.setInView(el, i);\n }\n } else {\n if (scrollBottom >= el.top && scrollTop < el.bottom) {\n _this3.setInView(el, i);\n }\n }\n }\n\n if (el && el.inView) {\n if (_this3.direction === 'horizontal') {\n var width = el.right - el.left;\n el.progress = (_this3.instance.scroll.x - (el.left - _this3.windowWidth)) / (width + _this3.windowWidth);\n\n if (scrollRight < el.left || scrollLeft > el.right) {\n _this3.setOutOfView(el, i);\n }\n } else {\n var height = el.bottom - el.top;\n el.progress = (_this3.instance.scroll.y - (el.top - _this3.windowHeight)) / (height + _this3.windowHeight);\n\n if (scrollBottom < el.top || scrollTop > el.bottom) {\n _this3.setOutOfView(el, i);\n }\n }\n }\n }); // this.els = this.els.filter((current, i) => {\n // return current !== null;\n // });\n\n this.hasScrollTicking = false;\n }\n }, {\n key: \"setInView\",\n value: function setInView(current, i) {\n this.els[i].inView = true;\n current.el.classList.add(current[\"class\"]);\n this.currentElements[i] = current;\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'enter');\n\n if (!current.repeat) {\n this.els[i].call = false;\n }\n } // if (!current.repeat && !current.speed && !current.sticky) {\n // if (!current.call || current.call && this.hasCallEventSet) {\n // this.els[i] = null\n // }\n // }\n\n }\n }, {\n key: \"setOutOfView\",\n value: function setOutOfView(current, i) {\n var _this4 = this;\n\n // if (current.repeat || current.speed !== undefined) {\n this.els[i].inView = false; // }\n\n Object.keys(this.currentElements).forEach(function (el) {\n el === i && delete _this4.currentElements[el];\n });\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'exit');\n }\n\n if (current.repeat) {\n current.el.classList.remove(current[\"class\"]);\n }\n }\n }, {\n key: \"dispatchCall\",\n value: function dispatchCall(current, way) {\n this.callWay = way;\n this.callValue = current.call.split(',').map(function (item) {\n return item.trim();\n });\n this.callObj = current;\n if (this.callValue.length == 1) this.callValue = this.callValue[0];\n var callEvent = new Event(this.namespace + 'call');\n this.el.dispatchEvent(callEvent);\n }\n }, {\n key: \"dispatchScroll\",\n value: function dispatchScroll() {\n var scrollEvent = new Event(this.namespace + 'scroll');\n this.el.dispatchEvent(scrollEvent);\n }\n }, {\n key: \"setEvents\",\n value: function setEvents(event, func) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n\n var list = this.listeners[event];\n list.push(func);\n\n if (list.length === 1) {\n this.el.addEventListener(this.namespace + event, this.checkEvent, false);\n }\n\n if (event === 'call') {\n this.hasCallEventSet = true;\n this.detectElements(true);\n }\n }\n }, {\n key: \"unsetEvents\",\n value: function unsetEvents(event, func) {\n if (!this.listeners[event]) return;\n var list = this.listeners[event];\n var index = list.indexOf(func);\n if (index < 0) return;\n list.splice(index, 1);\n\n if (list.index === 0) {\n this.el.removeEventListener(this.namespace + event, this.checkEvent, false);\n }\n }\n }, {\n key: \"checkEvent\",\n value: function checkEvent(event) {\n var _this5 = this;\n\n var name = event.type.replace(this.namespace, '');\n var list = this.listeners[name];\n if (!list || list.length === 0) return;\n list.forEach(function (func) {\n switch (name) {\n case 'scroll':\n return func(_this5.instance);\n\n case 'call':\n return func(_this5.callValue, _this5.callWay, _this5.callObj);\n\n default:\n return func();\n }\n });\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {}\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {}\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance.scroll = {\n x: 0,\n y: 0\n };\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this6 = this;\n\n window.removeEventListener('resize', this.checkResize, false);\n Object.keys(this.listeners).forEach(function (event) {\n _this6.el.removeEventListener(_this6.namespace + event, _this6.checkEvent, false);\n });\n this.listeners = {};\n this.scrollToEls.forEach(function (el) {\n el.removeEventListener('click', _this6.setScrollTo, false);\n });\n this.html.classList.remove(this.initClass);\n }\n }]);\n\n return _default;\n}();\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar smoothscroll = createCommonjsModule(function (module, exports) {\n/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n {\n // commonjs\n module.exports = { polyfill: polyfill };\n }\n\n}());\n});\nvar smoothscroll_1 = smoothscroll.polyfill;\n\nvar _default$1 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n _this = _super.call(this, options);\n\n if (_this.resetNativeScroll) {\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n }\n\n window.addEventListener('scroll', _this.checkScroll, false);\n\n if (window.smoothscrollPolyfill === undefined) {\n window.smoothscrollPolyfill = smoothscroll;\n window.smoothscrollPolyfill.polyfill();\n }\n\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.instance.scroll.y = window.pageYOffset;\n this.addElements();\n this.detectElements();\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this2 = this;\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.instance.scroll.y = window.pageYOffset;\n\n if (Object.entries(this.els).length) {\n if (!this.hasScrollTicking) {\n requestAnimationFrame(function () {\n _this2.detectElements();\n });\n this.hasScrollTicking = true;\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (window.pageYOffset > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (window.pageYOffset < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (window.pageYOffset != this.instance.scroll.y) {\n this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n if (Object.entries(this.els).length) {\n this.windowHeight = window.innerHeight;\n this.updateElements();\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this3 = this;\n\n this.els = {};\n var els = this.el.querySelectorAll('[data-' + this.name + ']');\n els.forEach(function (el, index) {\n var BCR = el.getBoundingClientRect();\n var cl = el.dataset[_this3.name + 'Class'] || _this3[\"class\"];\n var id = typeof el.dataset[_this3.name + 'Id'] === 'string' ? el.dataset[_this3.name + 'Id'] : index;\n var top;\n var left;\n var offset = typeof el.dataset[_this3.name + 'Offset'] === 'string' ? el.dataset[_this3.name + 'Offset'].split(',') : _this3.offset;\n var repeat = el.dataset[_this3.name + 'Repeat'];\n var call = el.dataset[_this3.name + 'Call'];\n var target = el.dataset[_this3.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n top = targetElBCR.top + _this3.instance.scroll.y;\n left = targetElBCR.left + _this3.instance.scroll.x;\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this3.repeat;\n }\n\n var relativeOffset = _this3.getRelativeOffset(offset);\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n var mappedEl = {\n el: el,\n targetEl: targetEl,\n id: id,\n \"class\": cl,\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call\n };\n _this3.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this3.setInView(_this3.els[id], id);\n }\n });\n }\n }, {\n key: \"updateElements\",\n value: function updateElements() {\n var _this4 = this;\n\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n var top = el.targetEl.getBoundingClientRect().top + _this4.instance.scroll.y;\n\n var bottom = top + el.targetEl.offsetHeight;\n\n var relativeOffset = _this4.getRelativeOffset(el.offset);\n\n _this4.els[i].top = top + relativeOffset[0];\n _this4.els[i].bottom = bottom - relativeOffset[1];\n });\n this.hasScrollTicking = false;\n }\n }, {\n key: \"getRelativeOffset\",\n value: function getRelativeOffset(offset) {\n var relativeOffset = [0, 0];\n\n if (offset) {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * this.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n }\n\n return relativeOffset;\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = this.html;\n } else if (target === 'bottom') {\n target = this.html.offsetHeight - window.innerHeight;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y;\n } else {\n offset = target + offset;\n }\n\n var isTargetReached = function isTargetReached() {\n return parseInt(window.pageYOffset) === parseInt(offset);\n };\n\n if (callback) {\n if (isTargetReached()) {\n callback();\n return;\n } else {\n var onScroll = function onScroll() {\n if (isTargetReached()) {\n window.removeEventListener('scroll', onScroll);\n callback();\n }\n };\n\n window.addEventListener('scroll', onScroll);\n }\n }\n\n window.scrollTo({\n top: offset,\n behavior: options.duration === 0 ? 'auto' : 'smooth'\n });\n }\n }, {\n key: \"update\",\n value: function update() {\n this.addElements();\n this.detectElements();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n window.removeEventListener('scroll', this.checkScroll, false);\n }\n }]);\n\n return _default;\n}(_default);\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nvar tinyEmitter = E;\n\nvar lethargy = createCommonjsModule(function (module, exports) {\n// Generated by CoffeeScript 1.9.2\n(function() {\n var root;\n\n root = exports !== null ? exports : this;\n\n root.Lethargy = (function() {\n function Lethargy(stability, sensitivity, tolerance, delay) {\n this.stability = stability != null ? Math.abs(stability) : 8;\n this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100;\n this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1;\n this.delay = delay != null ? delay : 150;\n this.lastUpDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.lastDownDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.deltasTimestamp = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n }\n\n Lethargy.prototype.check = function(e) {\n var lastDelta;\n e = e.originalEvent || e;\n if (e.wheelDelta != null) {\n lastDelta = e.wheelDelta;\n } else if (e.deltaY != null) {\n lastDelta = e.deltaY * -40;\n } else if ((e.detail != null) || e.detail === 0) {\n lastDelta = e.detail * -40;\n }\n this.deltasTimestamp.push(Date.now());\n this.deltasTimestamp.shift();\n if (lastDelta > 0) {\n this.lastUpDeltas.push(lastDelta);\n this.lastUpDeltas.shift();\n return this.isInertia(1);\n } else {\n this.lastDownDeltas.push(lastDelta);\n this.lastDownDeltas.shift();\n return this.isInertia(-1);\n }\n };\n\n Lethargy.prototype.isInertia = function(direction) {\n var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum;\n lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas;\n if (lastDeltas[0] === null) {\n return direction;\n }\n if (this.deltasTimestamp[(this.stability * 2) - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[(this.stability * 2) - 1]) {\n return false;\n }\n lastDeltasOld = lastDeltas.slice(0, this.stability);\n lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2);\n oldSum = lastDeltasOld.reduce(function(t, s) {\n return t + s;\n });\n newSum = lastDeltasNew.reduce(function(t, s) {\n return t + s;\n });\n oldAverage = oldSum / lastDeltasOld.length;\n newAverage = newSum / lastDeltasNew.length;\n if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && (this.sensitivity < Math.abs(newAverage))) {\n return direction;\n } else {\n return false;\n }\n };\n\n Lethargy.prototype.showLastUpDeltas = function() {\n return this.lastUpDeltas;\n };\n\n Lethargy.prototype.showLastDownDeltas = function() {\n return this.lastDownDeltas;\n };\n\n return Lethargy;\n\n })();\n\n}).call(commonjsGlobal);\n});\n\nvar support = (function getSupport() {\n return {\n hasWheelEvent: 'onwheel' in document,\n hasMouseWheelEvent: 'onmousewheel' in document,\n hasTouch: ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1,\n hasPointer: !!window.navigator.msPointerEnabled,\n hasKeyDown: 'onkeydown' in document,\n isFirefox: navigator.userAgent.indexOf('Firefox') > -1\n };\n})();\n\nvar toString = Object.prototype.toString,\n hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nvar bindallStandalone = function(object) {\n if(!object) return console.warn('bindAll requires at least one argument.');\n\n var functions = Array.prototype.slice.call(arguments, 1);\n\n if (functions.length === 0) {\n\n for (var method in object) {\n if(hasOwnProperty$1.call(object, method)) {\n if(typeof object[method] == 'function' && toString.call(object[method]) == \"[object Function]\") {\n functions.push(method);\n }\n }\n }\n }\n\n for(var i = 0; i < functions.length; i++) {\n var f = functions[i];\n object[f] = bind(object[f], object);\n }\n};\n\n/*\n Faster bind without specific-case checking. (see https://coderwall.com/p/oi3j3w).\n bindAll is only needed for events binding so no need to make slow fixes for constructor\n or partial application.\n*/\nfunction bind(func, context) {\n return function() {\n return func.apply(context, arguments);\n };\n}\n\nvar Lethargy = lethargy.Lethargy;\n\n\n\nvar EVT_ID = 'virtualscroll';\n\nvar src = VirtualScroll;\n\nvar keyCodes = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n};\n\nfunction VirtualScroll(options) {\n bindallStandalone(this, '_onWheel', '_onMouseWheel', '_onTouchStart', '_onTouchMove', '_onKeyDown');\n\n this.el = window;\n if (options && options.el) {\n this.el = options.el;\n delete options.el;\n }\n this.options = objectAssign({\n mouseMultiplier: 1,\n touchMultiplier: 2,\n firefoxMultiplier: 15,\n keyStep: 120,\n preventTouch: false,\n unpreventTouchClass: 'vs-touchmove-allowed',\n limitInertia: false,\n useKeyboard: true,\n useTouch: true\n }, options);\n\n if (this.options.limitInertia) this._lethargy = new Lethargy();\n\n this._emitter = new tinyEmitter();\n this._event = {\n y: 0,\n x: 0,\n deltaX: 0,\n deltaY: 0\n };\n this.touchStartX = null;\n this.touchStartY = null;\n this.bodyTouchAction = null;\n\n if (this.options.passive !== undefined) {\n this.listenerOptions = {passive: this.options.passive};\n }\n}\n\nVirtualScroll.prototype._notify = function(e) {\n var evt = this._event;\n evt.x += evt.deltaX;\n evt.y += evt.deltaY;\n\n this._emitter.emit(EVT_ID, {\n x: evt.x,\n y: evt.y,\n deltaX: evt.deltaX,\n deltaY: evt.deltaY,\n originalEvent: e\n });\n};\n\nVirtualScroll.prototype._onWheel = function(e) {\n var options = this.options;\n if (this._lethargy && this._lethargy.check(e) === false) return;\n var evt = this._event;\n\n // In Chrome and in Firefox (at least the new one)\n evt.deltaX = e.wheelDeltaX || e.deltaX * -1;\n evt.deltaY = e.wheelDeltaY || e.deltaY * -1;\n\n // for our purpose deltamode = 1 means user is on a wheel mouse, not touch pad\n // real meaning: https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent#Delta_modes\n if(support.isFirefox && e.deltaMode == 1) {\n evt.deltaX *= options.firefoxMultiplier;\n evt.deltaY *= options.firefoxMultiplier;\n }\n\n evt.deltaX *= options.mouseMultiplier;\n evt.deltaY *= options.mouseMultiplier;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onMouseWheel = function(e) {\n if (this.options.limitInertia && this._lethargy.check(e) === false) return;\n\n var evt = this._event;\n\n // In Safari, IE and in Chrome if 'wheel' isn't defined\n evt.deltaX = (e.wheelDeltaX) ? e.wheelDeltaX : 0;\n evt.deltaY = (e.wheelDeltaY) ? e.wheelDeltaY : e.wheelDelta;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onTouchStart = function(e) {\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n};\n\nVirtualScroll.prototype._onTouchMove = function(e) {\n var options = this.options;\n if(options.preventTouch\n && !e.target.classList.contains(options.unpreventTouchClass)) {\n e.preventDefault();\n }\n\n var evt = this._event;\n\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n\n evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier;\n evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier;\n\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onKeyDown = function(e) {\n var evt = this._event;\n evt.deltaX = evt.deltaY = 0;\n var windowHeight = window.innerHeight - 40;\n\n switch(e.keyCode) {\n case keyCodes.LEFT:\n case keyCodes.UP:\n evt.deltaY = this.options.keyStep;\n break;\n\n case keyCodes.RIGHT:\n case keyCodes.DOWN:\n evt.deltaY = - this.options.keyStep;\n break;\n case e.shiftKey:\n evt.deltaY = windowHeight;\n break;\n case keyCodes.SPACE:\n evt.deltaY = - windowHeight;\n break;\n default:\n return;\n }\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._bind = function() {\n if(support.hasWheelEvent) this.el.addEventListener('wheel', this._onWheel, this.listenerOptions);\n if(support.hasMouseWheelEvent) this.el.addEventListener('mousewheel', this._onMouseWheel, this.listenerOptions);\n\n if(support.hasTouch && this.options.useTouch) {\n this.el.addEventListener('touchstart', this._onTouchStart, this.listenerOptions);\n this.el.addEventListener('touchmove', this._onTouchMove, this.listenerOptions);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n this.bodyTouchAction = document.body.style.msTouchAction;\n document.body.style.msTouchAction = 'none';\n this.el.addEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.addEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.addEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype._unbind = function() {\n if(support.hasWheelEvent) this.el.removeEventListener('wheel', this._onWheel);\n if(support.hasMouseWheelEvent) this.el.removeEventListener('mousewheel', this._onMouseWheel);\n\n if(support.hasTouch) {\n this.el.removeEventListener('touchstart', this._onTouchStart);\n this.el.removeEventListener('touchmove', this._onTouchMove);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n document.body.style.msTouchAction = this.bodyTouchAction;\n this.el.removeEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.removeEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.removeEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype.on = function(cb, ctx) {\n this._emitter.on(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (events && events[EVT_ID] && events[EVT_ID].length === 1) this._bind();\n};\n\nVirtualScroll.prototype.off = function(cb, ctx) {\n this._emitter.off(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (!events[EVT_ID] || events[EVT_ID].length <= 0) this._unbind();\n};\n\nVirtualScroll.prototype.reset = function() {\n var evt = this._event;\n evt.x = 0;\n evt.y = 0;\n};\n\nVirtualScroll.prototype.destroy = function() {\n this._emitter.off();\n this._unbind();\n};\n\nfunction lerp(start, end, amt) {\n return (1 - amt) * start + amt * end;\n}\n\nfunction getTranslate(el) {\n var translate = {};\n if (!window.getComputedStyle) return;\n var style = getComputedStyle(el);\n var transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\n if (mat) {\n translate.x = mat ? parseFloat(mat[1].split(', ')[12]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[13]) : 0;\n } else {\n mat = transform.match(/^matrix\\((.+)\\)$/);\n translate.x = mat ? parseFloat(mat[1].split(', ')[4]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[5]) : 0;\n }\n\n return translate;\n}\n\n/**\n * Returns an array containing all the parent nodes of the given node\n * @param {object} node\n * @return {array} parent nodes\n */\nfunction getParents(elem) {\n // Set up a parent array\n var parents = []; // Push each parent element to the array\n\n for (; elem && elem !== document; elem = elem.parentNode) {\n parents.push(elem);\n } // Return our parent array\n\n\n return parents;\n} // https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/\n\n/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Ga\u00EBtan Renaudeau 2014 - 2015 \u2013 MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nvar src$1 = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n\nvar keyCodes$1 = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32,\n TAB: 9,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};\n\nvar _default$2 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n _this = _super.call(this, options);\n if (_this.inertia) _this.lerp = _this.inertia * 0.1;\n _this.isScrolling = false;\n _this.isDraggingScrollbar = false;\n _this.isTicking = false;\n _this.hasScrollTicking = false;\n _this.parallaxElements = {};\n _this.stop = false;\n _this.scrollbarContainer = options.scrollbarContainer;\n _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this));\n window.addEventListener('keydown', _this.checkKey, false);\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n this.html.classList.add(this.smoothClass);\n this.html.setAttribute(\"data-\".concat(this.name, \"-direction\"), this.direction);\n this.instance = _objectSpread2({\n delta: {\n x: this.initPosition.x,\n y: this.initPosition.y\n },\n scroll: {\n x: this.initPosition.x,\n y: this.initPosition.y\n }\n }, this.instance);\n this.vs = new src({\n el: this.scrollFromAnywhere ? document : this.el,\n mouseMultiplier: navigator.platform.indexOf('Win') > -1 ? 1 : 0.4,\n firefoxMultiplier: this.firefoxMultiplier,\n touchMultiplier: this.touchMultiplier,\n useKeyboard: false,\n passive: true\n });\n this.vs.on(function (e) {\n if (_this2.stop) {\n return;\n }\n\n if (!_this2.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n _this2.updateDelta(e);\n\n if (!_this2.isScrolling) _this2.startScrolling();\n });\n }\n });\n this.setScrollLimit();\n this.initScrollBar();\n this.addSections();\n this.addElements();\n this.checkScroll(true);\n this.transformElements(true, true);\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"setScrollLimit\",\n value: function setScrollLimit() {\n this.instance.limit.y = this.el.offsetHeight - this.windowHeight;\n\n if (this.direction === 'horizontal') {\n var totalWidth = 0;\n var nodes = this.el.children;\n\n for (var i = 0; i < nodes.length; i++) {\n totalWidth += nodes[i].offsetWidth;\n }\n\n this.instance.limit.x = totalWidth - this.windowWidth;\n }\n }\n }, {\n key: \"startScrolling\",\n value: function startScrolling() {\n this.startScrollTs = Date.now(); // Record timestamp\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"stopScrolling\",\n value: function stopScrolling() {\n cancelAnimationFrame(this.checkScrollRaf); // Prevent checkScroll to continue looping\n //Pevent scrollbar glitch/locking\n\n this.startScrollTs = undefined;\n\n if (this.scrollToRaf) {\n cancelAnimationFrame(this.scrollToRaf);\n this.scrollToRaf = null;\n }\n\n this.isScrolling = false;\n this.instance.scroll.y = Math.round(this.instance.scroll.y);\n this.html.classList.remove(this.scrollingClass);\n }\n }, {\n key: \"checkKey\",\n value: function checkKey(e) {\n var _this3 = this;\n\n if (this.stop) {\n // If we are stopped, we don't want any scroll to occur because of a keypress\n // Prevent tab to scroll to activeElement\n if (e.keyCode == keyCodes$1.TAB) {\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0;\n });\n }\n\n return;\n }\n\n switch (e.keyCode) {\n case keyCodes$1.TAB:\n // Do not remove the RAF\n // It allows to override the browser's native scrollTo, which is essential\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0; // Request scrollTo on the focusedElement, putting it at the center of the screen\n\n _this3.scrollTo(document.activeElement, {\n offset: -window.innerHeight / 2\n });\n });\n break;\n\n case keyCodes$1.UP:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] -= 240;\n }\n\n break;\n\n case keyCodes$1.DOWN:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] += 240;\n }\n\n break;\n\n case keyCodes$1.PAGEUP:\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n break;\n\n case keyCodes$1.PAGEDOWN:\n this.instance.delta[this.directionAxis] += window.innerHeight;\n break;\n\n case keyCodes$1.HOME:\n this.instance.delta[this.directionAxis] -= this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.END:\n this.instance.delta[this.directionAxis] += this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.SPACE:\n if (this.isActiveElementScrollSensitive()) {\n if (e.shiftKey) {\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n } else {\n this.instance.delta[this.directionAxis] += window.innerHeight;\n }\n }\n\n break;\n\n default:\n return;\n }\n\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"isActiveElementScrollSensitive\",\n value: function isActiveElementScrollSensitive() {\n return !(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement) && !(document.activeElement instanceof HTMLButtonElement) && !(document.activeElement instanceof HTMLSelectElement);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this4 = this;\n\n var forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (forced || this.isScrolling || this.isDraggingScrollbar) {\n if (!this.hasScrollTicking) {\n this.checkScrollRaf = requestAnimationFrame(function () {\n return _this4.checkScroll();\n });\n this.hasScrollTicking = true;\n }\n\n this.updateScroll();\n var distance = Math.abs(this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]);\n var timeSinceStart = Date.now() - this.startScrollTs; // Get the time since the scroll was started: the scroll can be stopped again only past 100ms\n\n if (!this.animatingScroll && timeSinceStart > 100 && (distance < 0.5 && this.instance.delta[this.directionAxis] != 0 || distance < 0.5 && this.instance.delta[this.directionAxis] == 0)) {\n this.stopScrolling();\n }\n\n Object.entries(this.sections).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n section = _ref2[1];\n\n if (section.persistent || _this4.instance.scroll[_this4.directionAxis] > section.offset[_this4.directionAxis] && _this4.instance.scroll[_this4.directionAxis] < section.limit[_this4.directionAxis]) {\n if (_this4.direction === 'horizontal') {\n _this4.transform(section.el, -_this4.instance.scroll[_this4.directionAxis], 0);\n } else {\n _this4.transform(section.el, 0, -_this4.instance.scroll[_this4.directionAxis]);\n }\n\n if (!section.inView) {\n section.inView = true;\n section.el.style.opacity = 1;\n section.el.style.pointerEvents = 'all';\n section.el.setAttribute(\"data-\".concat(_this4.name, \"-section-inview\"), '');\n }\n } else {\n if (section.inView || forced) {\n section.inView = false;\n section.el.style.opacity = 0;\n section.el.style.pointerEvents = 'none';\n section.el.removeAttribute(\"data-\".concat(_this4.name, \"-section-inview\"));\n }\n\n _this4.transform(section.el, 0, 0);\n }\n });\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.detectElements();\n this.transformElements();\n\n if (this.hasScrollbar) {\n var scrollBarTranslation = this.instance.scroll[this.directionAxis] / this.instance.limit[this.directionAxis] * this.scrollBarLimit[this.directionAxis];\n\n if (this.direction === 'horizontal') {\n this.transform(this.scrollbarThumb, scrollBarTranslation, 0);\n } else {\n this.transform(this.scrollbarThumb, 0, scrollBarTranslation);\n }\n }\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n this.hasScrollTicking = false;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.checkContext();\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.update();\n }\n }, {\n key: \"updateDelta\",\n value: function updateDelta(e) {\n var delta;\n var gestureDirection = this[this.context] && this[this.context].gestureDirection ? this[this.context].gestureDirection : this.gestureDirection;\n\n if (gestureDirection === 'both') {\n delta = e.deltaX + e.deltaY;\n } else if (gestureDirection === 'vertical') {\n delta = e.deltaY;\n } else if (gestureDirection === 'horizontal') {\n delta = e.deltaX;\n } else {\n delta = e.deltaY;\n }\n\n this.instance.delta[this.directionAxis] -= delta * this.multiplier;\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n }\n }, {\n key: \"updateScroll\",\n value: function updateScroll(e) {\n if (this.isScrolling || this.isDraggingScrollbar) {\n this.instance.scroll[this.directionAxis] = lerp(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis], this.lerp);\n } else {\n if (this.instance.scroll[this.directionAxis] > this.instance.limit[this.directionAxis]) {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.limit[this.directionAxis]);\n } else if (this.instance.scroll.y < 0) {\n this.setScroll(this.instance.scroll[this.directionAxis], 0);\n } else {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis]);\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (this.instance.delta.y > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (this.instance.delta.y < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n\n if (this.instance.delta.x > this.instance.scroll.x) {\n if (this.instance.direction !== 'right') {\n this.instance.direction = 'right';\n }\n } else if (this.instance.delta.x < this.instance.scroll.x) {\n if (this.instance.direction !== 'left') {\n this.instance.direction = 'left';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (this.instance.delta[this.directionAxis] != this.instance.scroll[this.directionAxis]) {\n this.instance.speed = (this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"initScrollBar\",\n value: function initScrollBar() {\n this.scrollbar = document.createElement('span');\n this.scrollbarThumb = document.createElement('span');\n this.scrollbar.classList.add(\"\".concat(this.scrollbarClass));\n this.scrollbarThumb.classList.add(\"\".concat(this.scrollbarClass, \"_thumb\"));\n this.scrollbar.append(this.scrollbarThumb);\n\n if (this.scrollbarContainer) {\n this.scrollbarContainer.append(this.scrollbar);\n } else {\n document.body.append(this.scrollbar);\n } // Scrollbar Events\n\n\n this.getScrollBar = this.getScrollBar.bind(this);\n this.releaseScrollBar = this.releaseScrollBar.bind(this);\n this.moveScrollBar = this.moveScrollBar.bind(this);\n this.scrollbarThumb.addEventListener('mousedown', this.getScrollBar);\n window.addEventListener('mouseup', this.releaseScrollBar);\n window.addEventListener('mousemove', this.moveScrollBar); // Set scrollbar values\n\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"reinitScrollBar\",\n value: function reinitScrollBar() {\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"destroyScrollBar\",\n value: function destroyScrollBar() {\n this.scrollbarThumb.removeEventListener('mousedown', this.getScrollBar);\n window.removeEventListener('mouseup', this.releaseScrollBar);\n window.removeEventListener('mousemove', this.moveScrollBar);\n this.scrollbar.remove();\n }\n }, {\n key: \"getScrollBar\",\n value: function getScrollBar(e) {\n this.isDraggingScrollbar = true;\n this.checkScroll();\n this.html.classList.remove(this.scrollingClass);\n this.html.classList.add(this.draggingClass);\n }\n }, {\n key: \"releaseScrollBar\",\n value: function releaseScrollBar(e) {\n this.isDraggingScrollbar = false;\n\n if (this.isScrolling) {\n this.html.classList.add(this.scrollingClass);\n }\n\n this.html.classList.remove(this.draggingClass);\n }\n }, {\n key: \"moveScrollBar\",\n value: function moveScrollBar(e) {\n var _this5 = this;\n\n if (this.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n var x = (e.clientX - _this5.scrollbarBCR.left) * 100 / _this5.scrollbarWidth * _this5.instance.limit.x / 100;\n var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit.y / 100;\n\n if (y > 0 && y < _this5.instance.limit.y) {\n _this5.instance.delta.y = y;\n }\n\n if (x > 0 && x < _this5.instance.limit.x) {\n _this5.instance.delta.x = x;\n }\n });\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this6 = this;\n\n this.els = {};\n this.parallaxElements = {}; // this.sections.forEach((section, y) => {\n\n var els = this.el.querySelectorAll(\"[data-\".concat(this.name, \"]\"));\n els.forEach(function (el, index) {\n // Try and find the target's parent section\n var targetParents = getParents(el);\n var section = Object.entries(_this6.sections).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n section = _ref4[1];\n\n return section;\n }).find(function (section) {\n return targetParents.includes(section.el);\n });\n var cl = el.dataset[_this6.name + 'Class'] || _this6[\"class\"];\n var id = typeof el.dataset[_this6.name + 'Id'] === 'string' ? el.dataset[_this6.name + 'Id'] : 'el' + index;\n var top;\n var left;\n var repeat = el.dataset[_this6.name + 'Repeat'];\n var call = el.dataset[_this6.name + 'Call'];\n var position = el.dataset[_this6.name + 'Position'];\n var delay = el.dataset[_this6.name + 'Delay'];\n var direction = el.dataset[_this6.name + 'Direction'];\n var sticky = typeof el.dataset[_this6.name + 'Sticky'] === 'string';\n var speed = el.dataset[_this6.name + 'Speed'] ? parseFloat(el.dataset[_this6.name + 'Speed']) / 10 : false;\n var offset = typeof el.dataset[_this6.name + 'Offset'] === 'string' ? el.dataset[_this6.name + 'Offset'].split(',') : _this6.offset;\n var target = el.dataset[_this6.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n\n if (section === null) {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n } else {\n if (!section.inView) {\n top = targetElBCR.top - getTranslate(section.el).y - getTranslate(targetEl).y;\n left = targetElBCR.left - getTranslate(section.el).x - getTranslate(targetEl).x;\n } else {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n }\n }\n\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n var middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n\n if (sticky) {\n var elBCR = el.getBoundingClientRect();\n var elTop = elBCR.top;\n var elLeft = elBCR.left;\n var elDistance = {\n x: elLeft - left,\n y: elTop - top\n };\n top += window.innerHeight;\n left += window.innerWidth;\n bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance[_this6.directionAxis];\n right = elLeft + targetEl.offsetWidth - el.offsetWidth - elDistance[_this6.directionAxis];\n middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n }\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this6.repeat;\n }\n\n var relativeOffset = [0, 0];\n\n if (offset) {\n if (_this6.direction === 'horizontal') {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowWidth / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n left = left + relativeOffset[0];\n right = right - relativeOffset[1];\n } else {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n }\n }\n\n var mappedEl = {\n el: el,\n id: id,\n \"class\": cl,\n section: section,\n top: top,\n middle: middle,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call,\n speed: speed,\n delay: delay,\n position: position,\n target: targetEl,\n direction: direction,\n sticky: sticky\n };\n _this6.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this6.setInView(_this6.els[id], id);\n }\n\n if (speed !== false || sticky) {\n _this6.parallaxElements[id] = mappedEl;\n }\n }); // });\n }\n }, {\n key: \"addSections\",\n value: function addSections() {\n var _this7 = this;\n\n this.sections = {};\n var sections = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-section]\"));\n\n if (sections.length === 0) {\n sections = [this.el];\n }\n\n sections.forEach(function (section, index) {\n var id = typeof section.dataset[_this7.name + 'Id'] === 'string' ? section.dataset[_this7.name + 'Id'] : 'section' + index;\n var sectionBCR = section.getBoundingClientRect();\n var offset = {\n x: sectionBCR.left - window.innerWidth * 1.5 - getTranslate(section).x,\n y: sectionBCR.top - window.innerHeight * 1.5 - getTranslate(section).y\n };\n var limit = {\n x: offset.x + sectionBCR.width + window.innerWidth * 2,\n y: offset.y + sectionBCR.height + window.innerHeight * 2\n };\n var persistent = typeof section.dataset[_this7.name + 'Persistent'] === 'string';\n section.setAttribute('data-scroll-section-id', id);\n var mappedSection = {\n el: section,\n offset: offset,\n limit: limit,\n inView: false,\n persistent: persistent,\n id: id\n };\n _this7.sections[id] = mappedSection;\n });\n }\n }, {\n key: \"transform\",\n value: function transform(element, x, y, delay) {\n var transform;\n\n if (!delay) {\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(x, \",\").concat(y, \",0,1)\");\n } else {\n var start = getTranslate(element);\n var lerpX = lerp(start.x, x, delay);\n var lerpY = lerp(start.y, y, delay);\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(lerpX, \",\").concat(lerpY, \",0,1)\");\n }\n\n element.style.webkitTransform = transform;\n element.style.msTransform = transform;\n element.style.transform = transform;\n }\n }, {\n key: \"transformElements\",\n value: function transformElements(isForced) {\n var _this8 = this;\n\n var setAllElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var scrollRight = this.instance.scroll.x + this.windowWidth;\n var scrollBottom = this.instance.scroll.y + this.windowHeight;\n var scrollMiddle = {\n x: this.instance.scroll.x + this.windowMiddle.x,\n y: this.instance.scroll.y + this.windowMiddle.y\n };\n Object.entries(this.parallaxElements).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n i = _ref6[0],\n current = _ref6[1];\n\n var transformDistance = false;\n\n if (isForced) {\n transformDistance = 0;\n }\n\n if (current.inView || setAllElements) {\n switch (current.position) {\n case 'top':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementTop':\n transformDistance = (scrollBottom - current.top) * -current.speed;\n break;\n\n case 'bottom':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollBottom + _this8.windowHeight) * current.speed;\n break;\n\n case 'left':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementLeft':\n transformDistance = (scrollRight - current.left) * -current.speed;\n break;\n\n case 'right':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollRight + _this8.windowHeight) * current.speed;\n break;\n\n default:\n transformDistance = (scrollMiddle[_this8.directionAxis] - current.middle[_this8.directionAxis]) * -current.speed;\n break;\n }\n }\n\n if (current.sticky) {\n if (current.inView) {\n if (_this8.direction === 'horizontal') {\n transformDistance = _this8.instance.scroll.x - current.left + window.innerWidth;\n } else {\n transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight;\n }\n } else {\n if (_this8.direction === 'horizontal') {\n if (_this8.instance.scroll.x < current.left - window.innerWidth && _this8.instance.scroll.x < current.left - window.innerWidth / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.x > current.right && _this8.instance.scroll.x > current.right + 100) {\n transformDistance = current.right - current.left + window.innerWidth;\n } else {\n transformDistance = false;\n }\n } else {\n if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) {\n transformDistance = current.bottom - current.top + window.innerHeight;\n } else {\n transformDistance = false;\n }\n }\n }\n }\n\n if (transformDistance !== false) {\n if (current.direction === 'horizontal' || _this8.direction === 'horizontal' && current.direction !== 'vertical') {\n _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay);\n } else {\n _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay);\n }\n }\n });\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var _this9 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var duration = !isNaN(parseInt(options.duration)) ? parseInt(options.duration) : 1000; // Duration of the scroll animation in milliseconds\n\n var easing = options.easing || [0.25, 0.0, 0.35, 1.0]; // An array of 4 floats between 0 and 1 defining the bezier curve for the animation's easing. See http://greweb.me/bezier-easing-editor/example/\n\n var disableLerp = options.disableLerp ? true : false; // Lerp effect won't be applied if set to true\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n easing = src$1.apply(void 0, _toConsumableArray(easing));\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = 0;\n } else if (target === 'bottom') {\n target = this.instance.limit.y;\n } else if (target === 'left') {\n target = 0;\n } else if (target === 'right') {\n target = this.instance.limit.x;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n // Verify the given target belongs to this scroll scope\n var targetInScope = getParents(target).includes(this.el);\n\n if (!targetInScope) {\n // If the target isn't inside our main element, abort any action\n return;\n } // Get target offset from top\n\n\n var targetBCR = target.getBoundingClientRect();\n var offsetTop = targetBCR.top;\n var offsetLeft = targetBCR.left; // Try and find the target's parent section\n\n var targetParents = getParents(target);\n var parentSection = targetParents.find(function (candidate) {\n return Object.entries(_this9.sections) // Get sections associative array as a regular array\n .map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n key = _ref8[0],\n section = _ref8[1];\n\n return section;\n }) // map to section only (we dont need the key here)\n .find(function (section) {\n return section.el == candidate;\n }); // finally find the section that matches the candidate\n });\n var parentSectionOffset = 0;\n\n if (parentSection) {\n parentSectionOffset = getTranslate(parentSection)[this.directionAxis]; // We got a parent section, store it's current offset to remove it later\n } else {\n // if no parent section is found we need to use instance scroll directly\n parentSectionOffset = -this.instance.scroll[this.directionAxis];\n } // Final value of scroll destination : offsetTop + (optional offset given in options) - (parent's section translate)\n\n\n if (this.direction === 'horizontal') {\n offset = offsetLeft + offset - parentSectionOffset;\n } else {\n offset = offsetTop + offset - parentSectionOffset;\n }\n } else {\n offset = target + offset;\n } // Actual scrollto\n // ==========================================================================\n // Setup\n\n\n var scrollStart = parseFloat(this.instance.delta[this.directionAxis]);\n var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit[this.directionAxis])); // Make sure our target is in the scroll boundaries\n\n var scrollDiff = scrollTarget - scrollStart;\n\n var render = function render(p) {\n if (disableLerp) {\n if (_this9.direction === 'horizontal') {\n _this9.setScroll(scrollStart + scrollDiff * p, _this9.instance.delta.y);\n } else {\n _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p);\n }\n } else {\n _this9.instance.delta[_this9.directionAxis] = scrollStart + scrollDiff * p;\n }\n }; // Prepare the scroll\n\n\n this.animatingScroll = true; // This boolean allows to prevent `checkScroll()` from calling `stopScrolling` when the animation is slow (i.e. at the beginning of an EaseIn)\n\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.startScrolling(); // Restart the scroll\n // Start the animation loop\n\n var start = Date.now();\n\n var loop = function loop() {\n var p = (Date.now() - start) / duration; // Animation progress\n\n if (p > 1) {\n // Animation ends\n render(1);\n _this9.animatingScroll = false;\n if (duration == 0) _this9.update();\n if (callback) callback();\n } else {\n _this9.scrollToRaf = requestAnimationFrame(loop);\n render(easing(p));\n }\n };\n\n loop();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.setScrollLimit();\n this.addSections();\n this.addElements();\n this.detectElements();\n this.updateScroll();\n this.transformElements(true);\n this.reinitScrollBar();\n this.checkScroll(true);\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {\n this.stop = false;\n }\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {\n this.stop = true;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance = _objectSpread2(_objectSpread2({}, this.instance), {}, {\n scroll: {\n x: x,\n y: y\n },\n delta: {\n x: x,\n y: y\n },\n speed: 0\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n this.stopScrolling();\n this.html.classList.remove(this.smoothClass);\n this.vs.destroy();\n this.destroyScrollBar();\n window.removeEventListener('keydown', this.checkKey, false);\n }\n }]);\n\n return _default;\n}(_default);\n\nvar Smooth = /*#__PURE__*/function () {\n function Smooth() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Smooth);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n if (!this.smooth && this.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible');\n if (!this.tablet.smooth && this.tablet.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (tablet)');\n if (!this.smartphone.smooth && this.smartphone.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (smartphone)');\n this.init();\n }\n\n _createClass(Smooth, [{\n key: \"init\",\n value: function init() {\n this.options.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || window.innerWidth < this.tablet.breakpoint;\n this.options.isTablet = this.options.isMobile && window.innerWidth >= this.tablet.breakpoint;\n\n if (this.smooth && !this.options.isMobile || this.tablet.smooth && this.options.isTablet || this.smartphone.smooth && this.options.isMobile && !this.options.isTablet) {\n this.scroll = new _default$2(this.options);\n } else {\n this.scroll = new _default$1(this.options);\n }\n\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Smooth;\n}();\n\nvar Native = /*#__PURE__*/function () {\n function Native() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Native);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.init();\n }\n\n _createClass(Native, [{\n key: \"init\",\n value: function init() {\n this.scroll = new _default$1(this.options);\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Native;\n}();\n\nexport default Smooth;\nexport { Native, Smooth };\n", "import { module } from 'modujs';\nimport { lazyLoadImage } from '../utils/image';\nimport LocomotiveScroll from 'locomotive-scroll';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.scroll = new LocomotiveScroll({\n el: this.el,\n smooth: true\n });\n\n this.scroll.on('call', (func, way, obj, id) => {\n // Using modularJS\n this.call(func[0], { way, obj }, func[1], func[2]);\n });\n\n this.scroll.on('scroll', (args) => {\n // console.log(args.scroll);\n })\n }\n\n /**\n * Lazy load the related image.\n *\n * @see ../utils/image.js\n *\n * It is recommended to wrap your `` into an element with the\n * CSS class name `.c-lazy`. The CSS class name modifier `.-lazy-loaded`\n * will be applied on both the image and the parent wrapper.\n *\n * ```html\n *
\n * \"\"\n *
\n * ```\n *\n * @param {LocomotiveScroll} args - The Locomotive Scroll instance.\n */\n lazyLoad(args) {\n lazyLoadImage(args.obj.el, null, () => {\n //callback\n })\n }\n\n destroy() {\n this.scroll.destroy();\n }\n}\n", "import svg4everybody from 'svg4everybody';\n\nexport default function() {\n svg4everybody();\n}\n", "const APP_NAME = 'Boilerplate';\nconst DATA_API_KEY = '.data-api';\n\nconst html = document.documentElement;\nconst body = document.body;\nconst isDebug = html.hasAttribute('data-debug');\n\n\nexport { APP_NAME, DATA_API_KEY, html, body, isDebug };\n", "const env = process.env.NODE_ENV\n\nexport default config = Object.freeze({\n // Environments\n ENV: env,\n IS_PROD: env === 'production',\n IS_DEV: env === 'development',\n\n // CSS class names\n CSS_CLASS: {\n LOADING: 'is-loading',\n READY: 'is-ready',\n LOADED: 'is-loaded',\n },\n})\n", "import modular from 'modujs';\nimport * as modules from './modules';\nimport globals from './globals';\nimport { html } from './utils/environment';\nimport config from './config'\n\nconst app = new modular({\n modules: modules\n});\n\nwindow.onload = (event) => {\n const $style = document.getElementById('main-css');\n\n if ($style) {\n if ($style.isLoaded) {\n init();\n } else {\n $style.addEventListener('load', (event) => {\n init();\n });\n }\n } else {\n console.warn('The \"main-css\" stylesheet not found');\n }\n};\n\nfunction init() {\n globals();\n\n app.init(app);\n\n html.classList.add(config.CSS_CLASS.LOADED);\n html.classList.add(config.CSS_CLASS.READY);\n html.classList.remove(config.CSS_CLASS.LOADING);\n}\n\n"], - "mappings": "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", + "sourcesContent": ["!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live collection\n for (// get the cached index\n var index = 0; index < uses.length; ) {\n // get the current \n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});", "function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.mAttr = 'data-' + options.dataName;\n this.mCaptureEvents = ['mouseenter', 'mouseleave'];\n this.el = options.el;\n }\n\n _createClass(_default, [{\n key: \"mInit\",\n value: function mInit(modules) {\n var _this = this;\n\n this.modules = modules;\n this.mCheckEventTarget = this.mCheckEventTarget.bind(this);\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this.mAddEvent(event);\n });\n }\n }\n }, {\n key: \"mUpdate\",\n value: function mUpdate(modules) {\n this.modules = modules;\n }\n }, {\n key: \"mDestroy\",\n value: function mDestroy() {\n var _this2 = this;\n\n if (this.events) {\n Object.keys(this.events).forEach(function (event) {\n return _this2.mRemoveEvent(event);\n });\n }\n }\n }, {\n key: \"mAddEvent\",\n value: function mAddEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.addEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mRemoveEvent\",\n value: function mRemoveEvent(event) {\n var capture = this.mCaptureEvents.includes(event) ? true : false;\n this.el.removeEventListener(event, this.mCheckEventTarget, capture);\n }\n }, {\n key: \"mCheckEventTarget\",\n value: function mCheckEventTarget(e) {\n var event = this.events[e.type];\n\n if (typeof event === \"string\") {\n this[event](e);\n } else {\n var data = '[' + this.mAttr + ']';\n var target = e.target;\n\n if (this.mCaptureEvents.includes(e.type)) {\n if (target.matches(data)) {\n this.mCallEventMethod(e, event, target);\n }\n } else {\n while (target && target !== document) {\n if (target.matches(data)) {\n if (this.mCallEventMethod(e, event, target) != 'undefined') {\n break;\n }\n }\n\n target = target.parentNode;\n }\n }\n }\n }\n }, {\n key: \"mCallEventMethod\",\n value: function mCallEventMethod(e, event, target) {\n var name = target.getAttribute(this.mAttr);\n\n if (event.hasOwnProperty(name)) {\n var method = event[name];\n\n if (!e.hasOwnProperty('currentTarget')) {\n Object.defineProperty(e, 'currentTarget', {\n value: target\n });\n }\n\n if (!e.hasOwnProperty('curTarget')) {\n Object.defineProperty(e, 'curTarget', {\n value: target\n }); // For IE 11\n }\n\n this[method](e);\n }\n }\n }, {\n key: \"$\",\n value: function $(query, context) {\n var classIndex = query.indexOf('.');\n var idIndex = query.indexOf('#');\n var attrIndex = query.indexOf('[');\n var indexes = [classIndex, idIndex, attrIndex].filter(function (index) {\n return index != -1;\n });\n var index = false;\n var name = query;\n var more = '';\n var parent = this.el;\n\n if (indexes.length) {\n index = Math.min.apply(Math, _toConsumableArray(indexes));\n name = query.slice(0, index);\n more = query.slice(index);\n }\n\n if (_typeof(context) == 'object') {\n parent = context;\n }\n\n return parent.querySelectorAll('[' + this.mAttr + '=' + name + ']' + more);\n }\n }, {\n key: \"parent\",\n value: function parent(query, context) {\n var data = '[' + this.mAttr + '=' + query + ']';\n var parent = context.parentNode;\n\n while (parent && parent !== document) {\n if (parent.matches(data)) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n }\n }, {\n key: \"getData\",\n value: function getData(name, context) {\n var target = context || this.el;\n return target.getAttribute(this.mAttr + '-' + name);\n }\n }, {\n key: \"setData\",\n value: function setData(name, value, context) {\n var target = context || this.el;\n return target.setAttribute(this.mAttr + '-' + name, value);\n }\n }, {\n key: \"call\",\n value: function call(func, args, mod, id) {\n var _this3 = this;\n\n if (args && !mod) {\n mod = args;\n args = false;\n }\n\n if (this.modules[mod]) {\n if (id) {\n if (this.modules[mod][id]) {\n this.modules[mod][id][func](args);\n }\n } else {\n Object.keys(this.modules[mod]).forEach(function (id) {\n _this3.modules[mod][id][func](args);\n });\n }\n }\n }\n }, {\n key: \"on\",\n value: function on(e, mod, func, id) {\n var _this4 = this;\n\n if (this.modules[mod]) {\n if (id) {\n this.modules[mod][id].el.addEventListener(e, function (o) {\n return func(o);\n });\n } else {\n Object.keys(this.modules[mod]).forEach(function (i) {\n _this4.modules[mod][i].el.addEventListener(e, function (o) {\n return func(o);\n });\n });\n }\n }\n }\n }, {\n key: \"init\",\n value: function init() {}\n }, {\n key: \"destroy\",\n value: function destroy() {}\n }]);\n\n return _default;\n}();\n\nvar _default$1 = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.app;\n this.modules = options.modules;\n this.currentModules = {};\n this.activeModules = {};\n this.newModules = {};\n this.moduleId = 0;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init(app, scope) {\n var _this = this;\n\n var container = scope || document;\n var elements = container.querySelectorAll('*');\n\n if (app && !this.app) {\n this.app = app;\n }\n\n this.activeModules['app'] = {\n 'app': this.app\n };\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var moduleExists = false;\n var dataName = i.name.split('-').splice(2);\n\n var moduleName = _this.toCamel(dataName);\n\n if (_this.modules[moduleName]) {\n moduleExists = true;\n } else if (_this.modules[_this.toUpper(moduleName)]) {\n moduleName = _this.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n var options = {\n el: el,\n name: moduleName,\n dataName: dataName.join('-')\n };\n var module = new _this.modules[moduleName](options);\n var id = i.value;\n\n if (!id) {\n _this.moduleId++;\n id = 'm' + _this.moduleId;\n el.setAttribute(i.name, id);\n }\n\n _this.addActiveModule(moduleName, id, module);\n\n var moduleId = moduleName + '-' + id;\n\n if (scope) {\n _this.newModules[moduleId] = module;\n } else {\n _this.currentModules[moduleId] = module;\n }\n }\n }\n });\n });\n Object.entries(this.currentModules).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n id = _ref2[0],\n module = _ref2[1];\n\n if (scope) {\n var split = id.split('-');\n var moduleName = split.shift();\n var moduleId = split.pop();\n\n _this.addActiveModule(moduleName, moduleId, module);\n } else {\n _this.initModule(module);\n }\n });\n }\n }, {\n key: \"initModule\",\n value: function initModule(module) {\n module.mInit(this.activeModules);\n module.init();\n }\n }, {\n key: \"addActiveModule\",\n value: function addActiveModule(name, id, module) {\n if (this.activeModules[name]) {\n Object.assign(this.activeModules[name], _defineProperty({}, id, module));\n } else {\n this.activeModules[name] = _defineProperty({}, id, module);\n }\n }\n }, {\n key: \"update\",\n value: function update(scope) {\n var _this2 = this;\n\n this.init(this.app, scope);\n Object.entries(this.currentModules).forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n id = _ref4[0],\n module = _ref4[1];\n\n module.mUpdate(_this2.activeModules);\n });\n Object.entries(this.newModules).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n id = _ref6[0],\n module = _ref6[1];\n\n _this2.initModule(module);\n });\n Object.assign(this.currentModules, this.newModules);\n }\n }, {\n key: \"destroy\",\n value: function destroy(scope) {\n if (scope) {\n this.destroyScope(scope);\n } else {\n this.destroyModules();\n }\n }\n }, {\n key: \"destroyScope\",\n value: function destroyScope(scope) {\n var _this3 = this;\n\n var elements = scope.querySelectorAll('*');\n elements.forEach(function (el) {\n Array.from(el.attributes).forEach(function (i) {\n if (i.name.startsWith('data-module')) {\n var id = i.value;\n var dataName = i.name.split('-').splice(2);\n var moduleName = _this3.toCamel(dataName) + '-' + id;\n var moduleExists = false;\n\n if (_this3.currentModules[moduleName]) {\n moduleExists = true;\n } else if (_this3.currentModules[_this3.toUpper(moduleName)]) {\n moduleName = _this3.toUpper(moduleName);\n moduleExists = true;\n }\n\n if (moduleExists) {\n _this3.destroyModule(_this3.currentModules[moduleName]);\n\n delete _this3.currentModules[moduleName];\n }\n }\n });\n });\n this.activeModules = {};\n this.newModules = {};\n }\n }, {\n key: \"destroyModules\",\n value: function destroyModules() {\n var _this4 = this;\n\n Object.entries(this.currentModules).forEach(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n id = _ref8[0],\n module = _ref8[1];\n\n _this4.destroyModule(module);\n });\n this.currentModules = [];\n }\n }, {\n key: \"destroyModule\",\n value: function destroyModule(module) {\n module.mDestroy();\n module.destroy();\n }\n }, {\n key: \"toCamel\",\n value: function toCamel(arr) {\n var _this5 = this;\n\n return arr.reduce(function (a, b) {\n return a + _this5.toUpper(b);\n });\n }\n }, {\n key: \"toUpper\",\n value: function toUpper(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$1;\nexport { _default as module };\n", "export {default as Load} from './modules/Load';\nexport {default as Scroll} from './modules/Scroll';\n", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar _default = /*#__PURE__*/function () {\n function _default(options) {\n _classCallCheck(this, _default);\n\n this.defaults = {\n name: 'load',\n loadingClass: 'is-loading',\n loadedClass: 'is-loaded',\n readyClass: 'is-ready',\n transitionsPrefix: 'is-',\n transitionsHistory: true,\n enterDelay: 0,\n exitDelay: 0,\n loadedDelay: 0,\n isLoaded: false,\n isEntered: false,\n isUrl: false,\n transitionContainer: null,\n popstateIgnore: false\n };\n Object.assign(this, this.defaults, options);\n this.options = options;\n this.namespace = 'modular';\n this.html = document.documentElement;\n this.href = window.location.href;\n this.container = 'data-' + this.name + '-container';\n this.subContainer = false;\n this.prevTransition = null;\n this.loadAttributes = ['src', 'srcset', 'style', 'href'];\n this.isInserted = false;\n this.isLoading = false;\n this.enterTimeout = false;\n this.controller = new AbortController();\n this.classContainer = this.html;\n this.isChrome = navigator.userAgent.indexOf(\"Chrome\") != -1 ? true : false;\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n\n window.addEventListener('popstate', function (e) {\n return _this.checkState(e);\n }, false);\n this.html.addEventListener('click', function (e) {\n return _this.checkClick(e);\n }, false);\n this.loadEls(document);\n }\n }, {\n key: \"checkClick\",\n value: function checkClick(e) {\n if (!e.ctrlKey && !e.metaKey) {\n var target = e.target;\n\n while (target && target !== document) {\n if (target.matches('a') && target.getAttribute('download') == null) {\n var href = target.getAttribute('href');\n\n if (!href.startsWith('#') && !href.startsWith('mailto:') && !href.startsWith('tel:')) {\n e.preventDefault();\n this.reset();\n this.getClickOptions(target);\n }\n\n break;\n }\n\n target = target.parentNode;\n }\n }\n }\n }, {\n key: \"checkState\",\n value: function checkState() {\n if (typeof this.popstateIgnore === 'string' && window.location.href.indexOf(this.popstateIgnore) > -1) {\n return;\n }\n\n this.reset();\n this.getStateOptions();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.isLoading) {\n this.controller.abort();\n this.isLoading = false;\n this.controller = new AbortController();\n }\n\n window.clearTimeout(this.enterTimeout);\n\n if (this.isInserted) {\n this.removeContainer();\n }\n\n this.classContainer = this.html;\n Object.assign(this, this.defaults, this.options);\n }\n }, {\n key: \"getClickOptions\",\n value: function getClickOptions(link) {\n this.transition = link.getAttribute('data-' + this.name);\n this.isUrl = link.getAttribute('data-' + this.name + '-url');\n var href = link.getAttribute('href');\n var target = link.getAttribute('target');\n\n if (target == '_blank') {\n window.open(href, '_blank');\n return;\n }\n\n if (this.transition == 'false') {\n window.location = href;\n return;\n }\n\n this.setOptions(href, true);\n }\n }, {\n key: \"getStateOptions\",\n value: function getStateOptions() {\n if (this.transitionsHistory) {\n this.transition = history.state;\n } else {\n this.transition = false;\n }\n\n var href = window.location.href;\n this.setOptions(href);\n }\n }, {\n key: \"goTo\",\n value: function goTo(href, transition, isUrl) {\n this.reset();\n this.transition = transition;\n this.isUrl = isUrl;\n this.setOptions(href, true);\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(href, push) {\n var container = '[' + this.container + ']';\n var oldContainer;\n\n if (this.transition && this.transition != 'true') {\n this.transitionContainer = '[' + this.container + '=\"' + this.transition + '\"]';\n this.loadingClass = this.transitions[this.transition].loadingClass || this.loadingClass;\n this.loadedClass = this.transitions[this.transition].loadedClass || this.loadedClass;\n this.readyClass = this.transitions[this.transition].readyClass || this.readyClass;\n this.transitionsPrefix = this.transitions[this.transition].transitionsPrefix || this.transitionsPrefix;\n this.enterDelay = this.transitions[this.transition].enterDelay || this.enterDelay;\n this.exitDelay = this.transitions[this.transition].exitDelay || this.exitDelay;\n this.loadedDelay = this.transitions[this.transition].loadedDelay || this.loadedDelay;\n oldContainer = document.querySelector(this.transitionContainer);\n }\n\n if (oldContainer) {\n container = this.transitionContainer;\n this.oldContainer = oldContainer;\n this.classContainer = this.oldContainer.parentNode;\n\n if (!this.subContainer) {\n history.replaceState(this.transition, null, this.href);\n }\n\n this.subContainer = true;\n } else {\n this.oldContainer = document.querySelector(container);\n\n if (this.subContainer) {\n history.replaceState(this.prevTransition, null, this.href);\n }\n\n this.subContainer = false;\n }\n\n this.href = href;\n this.parentContainer = this.oldContainer.parentNode;\n\n if (this.isUrl === '' || this.isUrl != null && this.isUrl != 'false' && this.isUrl != false) {\n history.pushState(this.transition, null, href);\n } else {\n this.oldContainer.classList.add('is-old');\n this.setLoading();\n this.startEnterDelay();\n this.loadHref(href, container, push);\n }\n }\n }, {\n key: \"setLoading\",\n value: function setLoading() {\n this.classContainer.classList.remove(this.loadedClass, this.readyClass);\n this.classContainer.classList.add(this.loadingClass);\n this.classContainer.classList.remove(this.transitionsPrefix + this.prevTransition);\n\n if (this.transition) {\n this.classContainer.classList.add(this.transitionsPrefix + this.transition);\n }\n\n if (!this.subContainer) {\n this.prevTransition = this.transition;\n }\n\n var loadingEvent = new Event(this.namespace + 'loading');\n window.dispatchEvent(loadingEvent);\n }\n }, {\n key: \"startEnterDelay\",\n value: function startEnterDelay() {\n var _this2 = this;\n\n this.enterTimeout = window.setTimeout(function () {\n _this2.isEntered = true;\n\n if (_this2.isLoaded) {\n _this2.transitionContainers();\n }\n }, this.enterDelay);\n }\n }, {\n key: \"loadHref\",\n value: function loadHref(href, container, push) {\n var _this3 = this;\n\n this.isLoading = true;\n var signal = this.controller.signal;\n fetch(href, {\n signal: signal\n }).then(function (response) {\n return response.text();\n }).then(function (data) {\n if (push) {\n history.pushState(_this3.transition, null, href);\n }\n\n var parser = new DOMParser();\n _this3.data = parser.parseFromString(data, 'text/html');\n _this3.newContainer = _this3.data.querySelector(container);\n\n _this3.newContainer.classList.add('is-new');\n\n _this3.parentNewContainer = _this3.newContainer.parentNode;\n\n _this3.hideContainer();\n\n _this3.parentContainer.insertBefore(_this3.newContainer, _this3.oldContainer);\n\n _this3.isInserted = true;\n\n _this3.setSvgs();\n\n _this3.isLoaded = true;\n\n if (_this3.isEntered) {\n _this3.transitionContainers();\n }\n\n _this3.loadEls(_this3.newContainer);\n\n _this3.isLoading = false;\n })[\"catch\"](function (err) {\n window.location = href;\n });\n }\n }, {\n key: \"transitionContainers\",\n value: function transitionContainers() {\n var _this4 = this;\n\n this.setAttributes();\n this.showContainer();\n this.setLoaded();\n setTimeout(function () {\n _this4.removeContainer();\n\n _this4.setReady();\n }, this.exitDelay);\n }\n }, {\n key: \"setSvgs\",\n value: function setSvgs() {\n if (this.isChrome) {\n var svgs = this.newContainer.querySelectorAll('use');\n\n if (svgs.length) {\n svgs.forEach(function (svg) {\n var xhref = svg.getAttribute('xlink:href');\n\n if (xhref) {\n svg.parentNode.innerHTML = '';\n } else {\n var href = svg.getAttribute('href');\n if (href) svg.parentNode.innerHTML = '';\n }\n });\n }\n }\n }\n }, {\n key: \"setAttributes\",\n value: function setAttributes() {\n var _this5 = this;\n\n var title = this.data.getElementsByTagName('title')[0];\n var newDesc = this.data.head.querySelector('meta[name=\"description\"]');\n var oldDesc = document.head.querySelector('meta[name=\"description\"]');\n var container;\n var newContainer;\n\n if (this.subContainer) {\n newContainer = this.parentNewContainer;\n container = document.querySelector(this.transitionContainer).parentNode;\n } else {\n newContainer = this.data.querySelector('html');\n container = document.querySelector('html');\n }\n\n var datas = Object.assign({}, newContainer.dataset);\n if (title) document.title = title.innerText;\n if (oldDesc && newDesc) oldDesc.setAttribute('content', newDesc.getAttribute('content'));\n\n if (datas) {\n Object.entries(datas).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n val = _ref2[1];\n\n container.setAttribute('data-' + _this5.toDash(key), val);\n });\n }\n }\n }, {\n key: \"toDash\",\n value: function toDash(str) {\n return str.split(/(?=[A-Z])/).join('-').toLowerCase();\n }\n }, {\n key: \"hideContainer\",\n value: function hideContainer() {\n this.newContainer.style.visibility = 'hidden';\n this.newContainer.style.height = 0;\n this.newContainer.style.overflow = 'hidden';\n }\n }, {\n key: \"showContainer\",\n value: function showContainer() {\n this.newContainer.style.visibility = '';\n this.newContainer.style.height = '';\n this.newContainer.style.overflow = '';\n }\n }, {\n key: \"loadEls\",\n value: function loadEls(container) {\n var _this6 = this;\n\n var promises = [];\n this.loadAttributes.forEach(function (attr) {\n var data = 'data-' + _this6.name + '-' + attr;\n var els = container.querySelectorAll('[' + data + ']');\n\n if (els.length) {\n els.forEach(function (el) {\n var elData = el.getAttribute(data);\n el.setAttribute(attr, elData);\n\n if (attr == 'src' || attr == 'srcset') {\n var promise = new Promise(function (resolve) {\n el.onload = function () {\n return resolve(el);\n };\n });\n promises.push(promise);\n }\n });\n }\n });\n Promise.all(promises).then(function (val) {\n var imagesEvent = new Event(_this6.namespace + 'images');\n window.dispatchEvent(imagesEvent);\n });\n }\n }, {\n key: \"setLoaded\",\n value: function setLoaded() {\n var _this7 = this;\n\n this.classContainer.classList.remove(this.loadingClass);\n setTimeout(function () {\n _this7.classContainer.classList.add(_this7.loadedClass);\n }, this.loadedDelay);\n var loadedEvent = new Event(this.namespace + 'loaded');\n window.dispatchEvent(loadedEvent);\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer() {\n this.parentContainer.removeChild(this.oldContainer);\n this.newContainer.classList.remove('is-new');\n this.isInserted = false;\n }\n }, {\n key: \"setReady\",\n value: function setReady() {\n this.classContainer.classList.add(this.readyClass);\n var readyEvent = new Event(this.namespace + 'ready');\n window.dispatchEvent(readyEvent);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n var _this8 = this;\n\n window.addEventListener(this.namespace + event, function () {\n switch (event) {\n case 'loading':\n return func(_this8.transition, _this8.oldContainer);\n\n case 'loaded':\n return func(_this8.transition, _this8.oldContainer, _this8.newContainer);\n\n case 'ready':\n return func(_this8.transition, _this8.newContainer);\n\n default:\n return func();\n }\n }, false);\n }\n }]);\n\n return _default;\n}();\n\nexport default _default;\n", "import { module } from 'modujs';\nimport modularLoad from 'modularload';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n const load = new modularLoad({\n enterDelay: 0,\n transitions: {\n customTransition: {}\n }\n });\n\n load.on('loaded', (transition, oldContainer, newContainer) => {\n this.call('destroy', oldContainer, 'app');\n this.call('update', newContainer, 'app');\n });\n }\n}\n", "/**\n * Get an image meta data\n *\n * @param {HTMLImageElement} $img - The image element.\n * @return {object} The given image meta data\n */\n\nconst getImageMetadata = $img => ({\n url: $img.src,\n width: $img.naturalWidth,\n height: $img.naturalHeight,\n ratio: $img.naturalWidth / $img.naturalHeight,\n})\n\n\n/**\n * Load the given image.\n *\n * @param {string} url - The URI to lazy load into $el.\n * @param {object} options - An object of options\n * @return {void}\n */\n\nconst loadImage = (url, options = {}) => {\n return new Promise((resolve, reject) => {\n const $img = new Image()\n\n if (options.crossOrigin) {\n $img.crossOrigin = options.crossOrigin\n }\n\n const loadCallback = () => {\n resolve({\n element: $img,\n ...getImageMetadata($img),\n })\n }\n\n if($img.decode) {\n $img.src = url\n $img.decode().then(loadCallback).catch(e => {\n reject(e)\n })\n } else {\n $img.onload = loadCallback\n $img.onerror = (e) => {\n reject(e)\n }\n $img.src = url\n }\n })\n}\n\n\n/**\n * Lazy load the given image.\n *\n * @param {HTMLImageElement} $el - The image element.\n * @param {?string} url - The URI to lazy load into $el.\n * If falsey, the value of the `data-src` attribute on $el will be used as the URI.\n * @param {?function} callback - A function to call when the image is loaded.\n * @return {void}\n */\n\nconst LAZY_LOADED_IMAGES = []\nconst lazyLoadImage = async ($el, url, callback) => {\n let src = url ? url : $el.dataset.src\n\n let loadedImage = LAZY_LOADED_IMAGES.find(image => image.url === src)\n\n if (!loadedImage) {\n loadedImage = await loadImage(src)\n\n if (!loadedImage.url) {\n return\n }\n\n LAZY_LOADED_IMAGES.push(loadedImage)\n }\n\n if($el.src === src) {\n return\n }\n\n if ($el.tagName === 'IMG') {\n $el.src = loadedImage.url\n } else {\n $el.style.backgroundImage = `url(${loadedImage.url})`\n }\n\n requestAnimationFrame(() => {\n let lazyParent = $el.closest('.c-lazy')\n\n if(lazyParent) {\n lazyParent.classList.add('-lazy-loaded')\n lazyParent.style.backgroundImage = ''\n }\n\n $el.classList.add('-lazy-loaded')\n\n callback?.()\n })\n}\n\n\nexport {\n getImageMetadata,\n loadImage,\n lazyLoadImage\n}\n", "/* locomotive-scroll v4.1.3 | MIT License | https://github.com/locomotivemtl/locomotive-scroll */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar defaults = {\n el: document,\n name: 'scroll',\n offset: [0, 0],\n repeat: false,\n smooth: false,\n initPosition: {\n x: 0,\n y: 0\n },\n direction: 'vertical',\n gestureDirection: 'vertical',\n reloadOnContextChange: false,\n lerp: 0.1,\n \"class\": 'is-inview',\n scrollbarContainer: false,\n scrollbarClass: 'c-scrollbar',\n scrollingClass: 'has-scroll-scrolling',\n draggingClass: 'has-scroll-dragging',\n smoothClass: 'has-scroll-smooth',\n initClass: 'has-scroll-init',\n getSpeed: false,\n getDirection: false,\n scrollFromAnywhere: false,\n multiplier: 1,\n firefoxMultiplier: 50,\n touchMultiplier: 2,\n resetNativeScroll: true,\n tablet: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical',\n breakpoint: 1024\n },\n smartphone: {\n smooth: false,\n direction: 'vertical',\n gestureDirection: 'vertical'\n }\n};\n\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.namespace = 'locomotive';\n this.html = document.documentElement;\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.els = {};\n this.currentElements = {};\n this.listeners = {};\n this.hasScrollTicking = false;\n this.hasCallEventSet = false;\n this.checkScroll = this.checkScroll.bind(this);\n this.checkResize = this.checkResize.bind(this);\n this.checkEvent = this.checkEvent.bind(this);\n this.instance = {\n scroll: {\n x: 0,\n y: 0\n },\n limit: {\n x: this.html.offsetWidth,\n y: this.html.offsetHeight\n },\n currentElements: this.currentElements\n };\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (this.isMobile) this.direction = this[this.context].direction;\n\n if (this.direction === 'horizontal') {\n this.directionAxis = 'x';\n } else {\n this.directionAxis = 'y';\n }\n\n if (this.getDirection) {\n this.instance.direction = null;\n }\n\n if (this.getDirection) {\n this.instance.speed = 0;\n }\n\n this.html.classList.add(this.initClass);\n window.addEventListener('resize', this.checkResize, false);\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.initEvents();\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n this.dispatchScroll();\n }\n }, {\n key: \"checkResize\",\n value: function checkResize() {\n var _this = this;\n\n if (!this.resizeTick) {\n this.resizeTick = true;\n requestAnimationFrame(function () {\n _this.resize();\n\n _this.resizeTick = false;\n });\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {}\n }, {\n key: \"checkContext\",\n value: function checkContext() {\n if (!this.reloadOnContextChange) return;\n this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || this.windowWidth < this.tablet.breakpoint;\n this.isTablet = this.isMobile && this.windowWidth >= this.tablet.breakpoint;\n var oldContext = this.context;\n\n if (this.isMobile) {\n if (this.isTablet) {\n this.context = 'tablet';\n } else {\n this.context = 'smartphone';\n }\n } else {\n this.context = 'desktop';\n }\n\n if (oldContext != this.context) {\n var oldSmooth = oldContext == 'desktop' ? this.smooth : this[oldContext].smooth;\n var newSmooth = this.context == 'desktop' ? this.smooth : this[this.context].smooth;\n if (oldSmooth != newSmooth) window.location.reload();\n }\n }\n }, {\n key: \"initEvents\",\n value: function initEvents() {\n var _this2 = this;\n\n this.scrollToEls = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-to]\"));\n this.setScrollTo = this.setScrollTo.bind(this);\n this.scrollToEls.forEach(function (el) {\n el.addEventListener('click', _this2.setScrollTo, false);\n });\n }\n }, {\n key: \"setScrollTo\",\n value: function setScrollTo(event) {\n event.preventDefault();\n this.scrollTo(event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-href\")) || event.currentTarget.getAttribute('href'), {\n offset: event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-offset\"))\n });\n }\n }, {\n key: \"addElements\",\n value: function addElements() {}\n }, {\n key: \"detectElements\",\n value: function detectElements(hasCallEventSet) {\n var _this3 = this;\n\n var scrollTop = this.instance.scroll.y;\n var scrollBottom = scrollTop + this.windowHeight;\n var scrollLeft = this.instance.scroll.x;\n var scrollRight = scrollLeft + this.windowWidth;\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n if (el && (!el.inView || hasCallEventSet)) {\n if (_this3.direction === 'horizontal') {\n if (scrollRight >= el.left && scrollLeft < el.right) {\n _this3.setInView(el, i);\n }\n } else {\n if (scrollBottom >= el.top && scrollTop < el.bottom) {\n _this3.setInView(el, i);\n }\n }\n }\n\n if (el && el.inView) {\n if (_this3.direction === 'horizontal') {\n var width = el.right - el.left;\n el.progress = (_this3.instance.scroll.x - (el.left - _this3.windowWidth)) / (width + _this3.windowWidth);\n\n if (scrollRight < el.left || scrollLeft > el.right) {\n _this3.setOutOfView(el, i);\n }\n } else {\n var height = el.bottom - el.top;\n el.progress = (_this3.instance.scroll.y - (el.top - _this3.windowHeight)) / (height + _this3.windowHeight);\n\n if (scrollBottom < el.top || scrollTop > el.bottom) {\n _this3.setOutOfView(el, i);\n }\n }\n }\n }); // this.els = this.els.filter((current, i) => {\n // return current !== null;\n // });\n\n this.hasScrollTicking = false;\n }\n }, {\n key: \"setInView\",\n value: function setInView(current, i) {\n this.els[i].inView = true;\n current.el.classList.add(current[\"class\"]);\n this.currentElements[i] = current;\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'enter');\n\n if (!current.repeat) {\n this.els[i].call = false;\n }\n } // if (!current.repeat && !current.speed && !current.sticky) {\n // if (!current.call || current.call && this.hasCallEventSet) {\n // this.els[i] = null\n // }\n // }\n\n }\n }, {\n key: \"setOutOfView\",\n value: function setOutOfView(current, i) {\n var _this4 = this;\n\n // if (current.repeat || current.speed !== undefined) {\n this.els[i].inView = false; // }\n\n Object.keys(this.currentElements).forEach(function (el) {\n el === i && delete _this4.currentElements[el];\n });\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'exit');\n }\n\n if (current.repeat) {\n current.el.classList.remove(current[\"class\"]);\n }\n }\n }, {\n key: \"dispatchCall\",\n value: function dispatchCall(current, way) {\n this.callWay = way;\n this.callValue = current.call.split(',').map(function (item) {\n return item.trim();\n });\n this.callObj = current;\n if (this.callValue.length == 1) this.callValue = this.callValue[0];\n var callEvent = new Event(this.namespace + 'call');\n this.el.dispatchEvent(callEvent);\n }\n }, {\n key: \"dispatchScroll\",\n value: function dispatchScroll() {\n var scrollEvent = new Event(this.namespace + 'scroll');\n this.el.dispatchEvent(scrollEvent);\n }\n }, {\n key: \"setEvents\",\n value: function setEvents(event, func) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n\n var list = this.listeners[event];\n list.push(func);\n\n if (list.length === 1) {\n this.el.addEventListener(this.namespace + event, this.checkEvent, false);\n }\n\n if (event === 'call') {\n this.hasCallEventSet = true;\n this.detectElements(true);\n }\n }\n }, {\n key: \"unsetEvents\",\n value: function unsetEvents(event, func) {\n if (!this.listeners[event]) return;\n var list = this.listeners[event];\n var index = list.indexOf(func);\n if (index < 0) return;\n list.splice(index, 1);\n\n if (list.index === 0) {\n this.el.removeEventListener(this.namespace + event, this.checkEvent, false);\n }\n }\n }, {\n key: \"checkEvent\",\n value: function checkEvent(event) {\n var _this5 = this;\n\n var name = event.type.replace(this.namespace, '');\n var list = this.listeners[name];\n if (!list || list.length === 0) return;\n list.forEach(function (func) {\n switch (name) {\n case 'scroll':\n return func(_this5.instance);\n\n case 'call':\n return func(_this5.callValue, _this5.callWay, _this5.callObj);\n\n default:\n return func();\n }\n });\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {}\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {}\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance.scroll = {\n x: 0,\n y: 0\n };\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this6 = this;\n\n window.removeEventListener('resize', this.checkResize, false);\n Object.keys(this.listeners).forEach(function (event) {\n _this6.el.removeEventListener(_this6.namespace + event, _this6.checkEvent, false);\n });\n this.listeners = {};\n this.scrollToEls.forEach(function (el) {\n el.removeEventListener('click', _this6.setScrollTo, false);\n });\n this.html.classList.remove(this.initClass);\n }\n }]);\n\n return _default;\n}();\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar smoothscroll = createCommonjsModule(function (module, exports) {\n/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n {\n // commonjs\n module.exports = { polyfill: polyfill };\n }\n\n}());\n});\nvar smoothscroll_1 = smoothscroll.polyfill;\n\nvar _default$1 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n _this = _super.call(this, options);\n\n if (_this.resetNativeScroll) {\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n }\n\n window.addEventListener('scroll', _this.checkScroll, false);\n\n if (window.smoothscrollPolyfill === undefined) {\n window.smoothscrollPolyfill = smoothscroll;\n window.smoothscrollPolyfill.polyfill();\n }\n\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.instance.scroll.y = window.pageYOffset;\n this.addElements();\n this.detectElements();\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this2 = this;\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.instance.scroll.y = window.pageYOffset;\n\n if (Object.entries(this.els).length) {\n if (!this.hasScrollTicking) {\n requestAnimationFrame(function () {\n _this2.detectElements();\n });\n this.hasScrollTicking = true;\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (window.pageYOffset > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (window.pageYOffset < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (window.pageYOffset != this.instance.scroll.y) {\n this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n if (Object.entries(this.els).length) {\n this.windowHeight = window.innerHeight;\n this.updateElements();\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this3 = this;\n\n this.els = {};\n var els = this.el.querySelectorAll('[data-' + this.name + ']');\n els.forEach(function (el, index) {\n var BCR = el.getBoundingClientRect();\n var cl = el.dataset[_this3.name + 'Class'] || _this3[\"class\"];\n var id = typeof el.dataset[_this3.name + 'Id'] === 'string' ? el.dataset[_this3.name + 'Id'] : index;\n var top;\n var left;\n var offset = typeof el.dataset[_this3.name + 'Offset'] === 'string' ? el.dataset[_this3.name + 'Offset'].split(',') : _this3.offset;\n var repeat = el.dataset[_this3.name + 'Repeat'];\n var call = el.dataset[_this3.name + 'Call'];\n var target = el.dataset[_this3.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n top = targetElBCR.top + _this3.instance.scroll.y;\n left = targetElBCR.left + _this3.instance.scroll.x;\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this3.repeat;\n }\n\n var relativeOffset = _this3.getRelativeOffset(offset);\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n var mappedEl = {\n el: el,\n targetEl: targetEl,\n id: id,\n \"class\": cl,\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call\n };\n _this3.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this3.setInView(_this3.els[id], id);\n }\n });\n }\n }, {\n key: \"updateElements\",\n value: function updateElements() {\n var _this4 = this;\n\n Object.entries(this.els).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n el = _ref2[1];\n\n var top = el.targetEl.getBoundingClientRect().top + _this4.instance.scroll.y;\n\n var bottom = top + el.targetEl.offsetHeight;\n\n var relativeOffset = _this4.getRelativeOffset(el.offset);\n\n _this4.els[i].top = top + relativeOffset[0];\n _this4.els[i].bottom = bottom - relativeOffset[1];\n });\n this.hasScrollTicking = false;\n }\n }, {\n key: \"getRelativeOffset\",\n value: function getRelativeOffset(offset) {\n var relativeOffset = [0, 0];\n\n if (offset) {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * this.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n }\n\n return relativeOffset;\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = this.html;\n } else if (target === 'bottom') {\n target = this.html.offsetHeight - window.innerHeight;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y;\n } else {\n offset = target + offset;\n }\n\n var isTargetReached = function isTargetReached() {\n return parseInt(window.pageYOffset) === parseInt(offset);\n };\n\n if (callback) {\n if (isTargetReached()) {\n callback();\n return;\n } else {\n var onScroll = function onScroll() {\n if (isTargetReached()) {\n window.removeEventListener('scroll', onScroll);\n callback();\n }\n };\n\n window.addEventListener('scroll', onScroll);\n }\n }\n\n window.scrollTo({\n top: offset,\n behavior: options.duration === 0 ? 'auto' : 'smooth'\n });\n }\n }, {\n key: \"update\",\n value: function update() {\n this.addElements();\n this.detectElements();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n window.removeEventListener('scroll', this.checkScroll, false);\n }\n }]);\n\n return _default;\n}(_default);\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nvar tinyEmitter = E;\n\nvar lethargy = createCommonjsModule(function (module, exports) {\n// Generated by CoffeeScript 1.9.2\n(function() {\n var root;\n\n root = exports !== null ? exports : this;\n\n root.Lethargy = (function() {\n function Lethargy(stability, sensitivity, tolerance, delay) {\n this.stability = stability != null ? Math.abs(stability) : 8;\n this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100;\n this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1;\n this.delay = delay != null ? delay : 150;\n this.lastUpDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.lastDownDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.deltasTimestamp = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n }\n\n Lethargy.prototype.check = function(e) {\n var lastDelta;\n e = e.originalEvent || e;\n if (e.wheelDelta != null) {\n lastDelta = e.wheelDelta;\n } else if (e.deltaY != null) {\n lastDelta = e.deltaY * -40;\n } else if ((e.detail != null) || e.detail === 0) {\n lastDelta = e.detail * -40;\n }\n this.deltasTimestamp.push(Date.now());\n this.deltasTimestamp.shift();\n if (lastDelta > 0) {\n this.lastUpDeltas.push(lastDelta);\n this.lastUpDeltas.shift();\n return this.isInertia(1);\n } else {\n this.lastDownDeltas.push(lastDelta);\n this.lastDownDeltas.shift();\n return this.isInertia(-1);\n }\n };\n\n Lethargy.prototype.isInertia = function(direction) {\n var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum;\n lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas;\n if (lastDeltas[0] === null) {\n return direction;\n }\n if (this.deltasTimestamp[(this.stability * 2) - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[(this.stability * 2) - 1]) {\n return false;\n }\n lastDeltasOld = lastDeltas.slice(0, this.stability);\n lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2);\n oldSum = lastDeltasOld.reduce(function(t, s) {\n return t + s;\n });\n newSum = lastDeltasNew.reduce(function(t, s) {\n return t + s;\n });\n oldAverage = oldSum / lastDeltasOld.length;\n newAverage = newSum / lastDeltasNew.length;\n if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && (this.sensitivity < Math.abs(newAverage))) {\n return direction;\n } else {\n return false;\n }\n };\n\n Lethargy.prototype.showLastUpDeltas = function() {\n return this.lastUpDeltas;\n };\n\n Lethargy.prototype.showLastDownDeltas = function() {\n return this.lastDownDeltas;\n };\n\n return Lethargy;\n\n })();\n\n}).call(commonjsGlobal);\n});\n\nvar support = (function getSupport() {\n return {\n hasWheelEvent: 'onwheel' in document,\n hasMouseWheelEvent: 'onmousewheel' in document,\n hasTouch: ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1,\n hasPointer: !!window.navigator.msPointerEnabled,\n hasKeyDown: 'onkeydown' in document,\n isFirefox: navigator.userAgent.indexOf('Firefox') > -1\n };\n})();\n\nvar toString = Object.prototype.toString,\n hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nvar bindallStandalone = function(object) {\n if(!object) return console.warn('bindAll requires at least one argument.');\n\n var functions = Array.prototype.slice.call(arguments, 1);\n\n if (functions.length === 0) {\n\n for (var method in object) {\n if(hasOwnProperty$1.call(object, method)) {\n if(typeof object[method] == 'function' && toString.call(object[method]) == \"[object Function]\") {\n functions.push(method);\n }\n }\n }\n }\n\n for(var i = 0; i < functions.length; i++) {\n var f = functions[i];\n object[f] = bind(object[f], object);\n }\n};\n\n/*\n Faster bind without specific-case checking. (see https://coderwall.com/p/oi3j3w).\n bindAll is only needed for events binding so no need to make slow fixes for constructor\n or partial application.\n*/\nfunction bind(func, context) {\n return function() {\n return func.apply(context, arguments);\n };\n}\n\nvar Lethargy = lethargy.Lethargy;\n\n\n\nvar EVT_ID = 'virtualscroll';\n\nvar src = VirtualScroll;\n\nvar keyCodes = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n};\n\nfunction VirtualScroll(options) {\n bindallStandalone(this, '_onWheel', '_onMouseWheel', '_onTouchStart', '_onTouchMove', '_onKeyDown');\n\n this.el = window;\n if (options && options.el) {\n this.el = options.el;\n delete options.el;\n }\n this.options = objectAssign({\n mouseMultiplier: 1,\n touchMultiplier: 2,\n firefoxMultiplier: 15,\n keyStep: 120,\n preventTouch: false,\n unpreventTouchClass: 'vs-touchmove-allowed',\n limitInertia: false,\n useKeyboard: true,\n useTouch: true\n }, options);\n\n if (this.options.limitInertia) this._lethargy = new Lethargy();\n\n this._emitter = new tinyEmitter();\n this._event = {\n y: 0,\n x: 0,\n deltaX: 0,\n deltaY: 0\n };\n this.touchStartX = null;\n this.touchStartY = null;\n this.bodyTouchAction = null;\n\n if (this.options.passive !== undefined) {\n this.listenerOptions = {passive: this.options.passive};\n }\n}\n\nVirtualScroll.prototype._notify = function(e) {\n var evt = this._event;\n evt.x += evt.deltaX;\n evt.y += evt.deltaY;\n\n this._emitter.emit(EVT_ID, {\n x: evt.x,\n y: evt.y,\n deltaX: evt.deltaX,\n deltaY: evt.deltaY,\n originalEvent: e\n });\n};\n\nVirtualScroll.prototype._onWheel = function(e) {\n var options = this.options;\n if (this._lethargy && this._lethargy.check(e) === false) return;\n var evt = this._event;\n\n // In Chrome and in Firefox (at least the new one)\n evt.deltaX = e.wheelDeltaX || e.deltaX * -1;\n evt.deltaY = e.wheelDeltaY || e.deltaY * -1;\n\n // for our purpose deltamode = 1 means user is on a wheel mouse, not touch pad\n // real meaning: https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent#Delta_modes\n if(support.isFirefox && e.deltaMode == 1) {\n evt.deltaX *= options.firefoxMultiplier;\n evt.deltaY *= options.firefoxMultiplier;\n }\n\n evt.deltaX *= options.mouseMultiplier;\n evt.deltaY *= options.mouseMultiplier;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onMouseWheel = function(e) {\n if (this.options.limitInertia && this._lethargy.check(e) === false) return;\n\n var evt = this._event;\n\n // In Safari, IE and in Chrome if 'wheel' isn't defined\n evt.deltaX = (e.wheelDeltaX) ? e.wheelDeltaX : 0;\n evt.deltaY = (e.wheelDeltaY) ? e.wheelDeltaY : e.wheelDelta;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onTouchStart = function(e) {\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n};\n\nVirtualScroll.prototype._onTouchMove = function(e) {\n var options = this.options;\n if(options.preventTouch\n && !e.target.classList.contains(options.unpreventTouchClass)) {\n e.preventDefault();\n }\n\n var evt = this._event;\n\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n\n evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier;\n evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier;\n\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onKeyDown = function(e) {\n var evt = this._event;\n evt.deltaX = evt.deltaY = 0;\n var windowHeight = window.innerHeight - 40;\n\n switch(e.keyCode) {\n case keyCodes.LEFT:\n case keyCodes.UP:\n evt.deltaY = this.options.keyStep;\n break;\n\n case keyCodes.RIGHT:\n case keyCodes.DOWN:\n evt.deltaY = - this.options.keyStep;\n break;\n case e.shiftKey:\n evt.deltaY = windowHeight;\n break;\n case keyCodes.SPACE:\n evt.deltaY = - windowHeight;\n break;\n default:\n return;\n }\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._bind = function() {\n if(support.hasWheelEvent) this.el.addEventListener('wheel', this._onWheel, this.listenerOptions);\n if(support.hasMouseWheelEvent) this.el.addEventListener('mousewheel', this._onMouseWheel, this.listenerOptions);\n\n if(support.hasTouch && this.options.useTouch) {\n this.el.addEventListener('touchstart', this._onTouchStart, this.listenerOptions);\n this.el.addEventListener('touchmove', this._onTouchMove, this.listenerOptions);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n this.bodyTouchAction = document.body.style.msTouchAction;\n document.body.style.msTouchAction = 'none';\n this.el.addEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.addEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.addEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype._unbind = function() {\n if(support.hasWheelEvent) this.el.removeEventListener('wheel', this._onWheel);\n if(support.hasMouseWheelEvent) this.el.removeEventListener('mousewheel', this._onMouseWheel);\n\n if(support.hasTouch) {\n this.el.removeEventListener('touchstart', this._onTouchStart);\n this.el.removeEventListener('touchmove', this._onTouchMove);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n document.body.style.msTouchAction = this.bodyTouchAction;\n this.el.removeEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.removeEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.removeEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype.on = function(cb, ctx) {\n this._emitter.on(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (events && events[EVT_ID] && events[EVT_ID].length === 1) this._bind();\n};\n\nVirtualScroll.prototype.off = function(cb, ctx) {\n this._emitter.off(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (!events[EVT_ID] || events[EVT_ID].length <= 0) this._unbind();\n};\n\nVirtualScroll.prototype.reset = function() {\n var evt = this._event;\n evt.x = 0;\n evt.y = 0;\n};\n\nVirtualScroll.prototype.destroy = function() {\n this._emitter.off();\n this._unbind();\n};\n\nfunction lerp(start, end, amt) {\n return (1 - amt) * start + amt * end;\n}\n\nfunction getTranslate(el) {\n var translate = {};\n if (!window.getComputedStyle) return;\n var style = getComputedStyle(el);\n var transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\n if (mat) {\n translate.x = mat ? parseFloat(mat[1].split(', ')[12]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[13]) : 0;\n } else {\n mat = transform.match(/^matrix\\((.+)\\)$/);\n translate.x = mat ? parseFloat(mat[1].split(', ')[4]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[5]) : 0;\n }\n\n return translate;\n}\n\n/**\n * Returns an array containing all the parent nodes of the given node\n * @param {object} node\n * @return {array} parent nodes\n */\nfunction getParents(elem) {\n // Set up a parent array\n var parents = []; // Push each parent element to the array\n\n for (; elem && elem !== document; elem = elem.parentNode) {\n parents.push(elem);\n } // Return our parent array\n\n\n return parents;\n} // https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/\n\n/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Ga\u00EBtan Renaudeau 2014 - 2015 \u2013 MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nvar src$1 = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n\nvar keyCodes$1 = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32,\n TAB: 9,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};\n\nvar _default$2 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n var _super = _createSuper(_default);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n if (history.scrollRestoration) {\n history.scrollRestoration = 'manual';\n }\n\n window.scrollTo(0, 0);\n _this = _super.call(this, options);\n if (_this.inertia) _this.lerp = _this.inertia * 0.1;\n _this.isScrolling = false;\n _this.isDraggingScrollbar = false;\n _this.isTicking = false;\n _this.hasScrollTicking = false;\n _this.parallaxElements = {};\n _this.stop = false;\n _this.scrollbarContainer = options.scrollbarContainer;\n _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this));\n window.addEventListener('keydown', _this.checkKey, false);\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n this.html.classList.add(this.smoothClass);\n this.html.setAttribute(\"data-\".concat(this.name, \"-direction\"), this.direction);\n this.instance = _objectSpread2({\n delta: {\n x: this.initPosition.x,\n y: this.initPosition.y\n },\n scroll: {\n x: this.initPosition.x,\n y: this.initPosition.y\n }\n }, this.instance);\n this.vs = new src({\n el: this.scrollFromAnywhere ? document : this.el,\n mouseMultiplier: navigator.platform.indexOf('Win') > -1 ? 1 : 0.4,\n firefoxMultiplier: this.firefoxMultiplier,\n touchMultiplier: this.touchMultiplier,\n useKeyboard: false,\n passive: true\n });\n this.vs.on(function (e) {\n if (_this2.stop) {\n return;\n }\n\n if (!_this2.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n _this2.updateDelta(e);\n\n if (!_this2.isScrolling) _this2.startScrolling();\n });\n }\n });\n this.setScrollLimit();\n this.initScrollBar();\n this.addSections();\n this.addElements();\n this.checkScroll(true);\n this.transformElements(true, true);\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"setScrollLimit\",\n value: function setScrollLimit() {\n this.instance.limit.y = this.el.offsetHeight - this.windowHeight;\n\n if (this.direction === 'horizontal') {\n var totalWidth = 0;\n var nodes = this.el.children;\n\n for (var i = 0; i < nodes.length; i++) {\n totalWidth += nodes[i].offsetWidth;\n }\n\n this.instance.limit.x = totalWidth - this.windowWidth;\n }\n }\n }, {\n key: \"startScrolling\",\n value: function startScrolling() {\n this.startScrollTs = Date.now(); // Record timestamp\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"stopScrolling\",\n value: function stopScrolling() {\n cancelAnimationFrame(this.checkScrollRaf); // Prevent checkScroll to continue looping\n //Pevent scrollbar glitch/locking\n\n this.startScrollTs = undefined;\n\n if (this.scrollToRaf) {\n cancelAnimationFrame(this.scrollToRaf);\n this.scrollToRaf = null;\n }\n\n this.isScrolling = false;\n this.instance.scroll.y = Math.round(this.instance.scroll.y);\n this.html.classList.remove(this.scrollingClass);\n }\n }, {\n key: \"checkKey\",\n value: function checkKey(e) {\n var _this3 = this;\n\n if (this.stop) {\n // If we are stopped, we don't want any scroll to occur because of a keypress\n // Prevent tab to scroll to activeElement\n if (e.keyCode == keyCodes$1.TAB) {\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0;\n });\n }\n\n return;\n }\n\n switch (e.keyCode) {\n case keyCodes$1.TAB:\n // Do not remove the RAF\n // It allows to override the browser's native scrollTo, which is essential\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n _this3.html.scrollLeft = 0;\n document.body.scrollLeft = 0; // Request scrollTo on the focusedElement, putting it at the center of the screen\n\n _this3.scrollTo(document.activeElement, {\n offset: -window.innerHeight / 2\n });\n });\n break;\n\n case keyCodes$1.UP:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] -= 240;\n }\n\n break;\n\n case keyCodes$1.DOWN:\n if (this.isActiveElementScrollSensitive()) {\n this.instance.delta[this.directionAxis] += 240;\n }\n\n break;\n\n case keyCodes$1.PAGEUP:\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n break;\n\n case keyCodes$1.PAGEDOWN:\n this.instance.delta[this.directionAxis] += window.innerHeight;\n break;\n\n case keyCodes$1.HOME:\n this.instance.delta[this.directionAxis] -= this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.END:\n this.instance.delta[this.directionAxis] += this.instance.limit[this.directionAxis];\n break;\n\n case keyCodes$1.SPACE:\n if (this.isActiveElementScrollSensitive()) {\n if (e.shiftKey) {\n this.instance.delta[this.directionAxis] -= window.innerHeight;\n } else {\n this.instance.delta[this.directionAxis] += window.innerHeight;\n }\n }\n\n break;\n\n default:\n return;\n }\n\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"isActiveElementScrollSensitive\",\n value: function isActiveElementScrollSensitive() {\n return !(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement) && !(document.activeElement instanceof HTMLButtonElement) && !(document.activeElement instanceof HTMLSelectElement);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this4 = this;\n\n var forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (forced || this.isScrolling || this.isDraggingScrollbar) {\n if (!this.hasScrollTicking) {\n this.checkScrollRaf = requestAnimationFrame(function () {\n return _this4.checkScroll();\n });\n this.hasScrollTicking = true;\n }\n\n this.updateScroll();\n var distance = Math.abs(this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]);\n var timeSinceStart = Date.now() - this.startScrollTs; // Get the time since the scroll was started: the scroll can be stopped again only past 100ms\n\n if (!this.animatingScroll && timeSinceStart > 100 && (distance < 0.5 && this.instance.delta[this.directionAxis] != 0 || distance < 0.5 && this.instance.delta[this.directionAxis] == 0)) {\n this.stopScrolling();\n }\n\n Object.entries(this.sections).forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n i = _ref2[0],\n section = _ref2[1];\n\n if (section.persistent || _this4.instance.scroll[_this4.directionAxis] > section.offset[_this4.directionAxis] && _this4.instance.scroll[_this4.directionAxis] < section.limit[_this4.directionAxis]) {\n if (_this4.direction === 'horizontal') {\n _this4.transform(section.el, -_this4.instance.scroll[_this4.directionAxis], 0);\n } else {\n _this4.transform(section.el, 0, -_this4.instance.scroll[_this4.directionAxis]);\n }\n\n if (!section.inView) {\n section.inView = true;\n section.el.style.opacity = 1;\n section.el.style.pointerEvents = 'all';\n section.el.setAttribute(\"data-\".concat(_this4.name, \"-section-inview\"), '');\n }\n } else {\n if (section.inView || forced) {\n section.inView = false;\n section.el.style.opacity = 0;\n section.el.style.pointerEvents = 'none';\n section.el.removeAttribute(\"data-\".concat(_this4.name, \"-section-inview\"));\n }\n\n _this4.transform(section.el, 0, 0);\n }\n });\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.speedTs = Date.now();\n }\n\n this.detectElements();\n this.transformElements();\n\n if (this.hasScrollbar) {\n var scrollBarTranslation = this.instance.scroll[this.directionAxis] / this.instance.limit[this.directionAxis] * this.scrollBarLimit[this.directionAxis];\n\n if (this.direction === 'horizontal') {\n this.transform(this.scrollbarThumb, scrollBarTranslation, 0);\n } else {\n this.transform(this.scrollbarThumb, 0, scrollBarTranslation);\n }\n }\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n this.hasScrollTicking = false;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n this.windowHeight = window.innerHeight;\n this.windowWidth = window.innerWidth;\n this.checkContext();\n this.windowMiddle = {\n x: this.windowWidth / 2,\n y: this.windowHeight / 2\n };\n this.update();\n }\n }, {\n key: \"updateDelta\",\n value: function updateDelta(e) {\n var delta;\n var gestureDirection = this[this.context] && this[this.context].gestureDirection ? this[this.context].gestureDirection : this.gestureDirection;\n\n if (gestureDirection === 'both') {\n delta = e.deltaX + e.deltaY;\n } else if (gestureDirection === 'vertical') {\n delta = e.deltaY;\n } else if (gestureDirection === 'horizontal') {\n delta = e.deltaX;\n } else {\n delta = e.deltaY;\n }\n\n this.instance.delta[this.directionAxis] -= delta * this.multiplier;\n if (this.instance.delta[this.directionAxis] < 0) this.instance.delta[this.directionAxis] = 0;\n if (this.instance.delta[this.directionAxis] > this.instance.limit[this.directionAxis]) this.instance.delta[this.directionAxis] = this.instance.limit[this.directionAxis];\n }\n }, {\n key: \"updateScroll\",\n value: function updateScroll(e) {\n if (this.isScrolling || this.isDraggingScrollbar) {\n this.instance.scroll[this.directionAxis] = lerp(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis], this.lerp);\n } else {\n if (this.instance.scroll[this.directionAxis] > this.instance.limit[this.directionAxis]) {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.limit[this.directionAxis]);\n } else if (this.instance.scroll.y < 0) {\n this.setScroll(this.instance.scroll[this.directionAxis], 0);\n } else {\n this.setScroll(this.instance.scroll[this.directionAxis], this.instance.delta[this.directionAxis]);\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (this.instance.delta.y > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (this.instance.delta.y < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n\n if (this.instance.delta.x > this.instance.scroll.x) {\n if (this.instance.direction !== 'right') {\n this.instance.direction = 'right';\n }\n } else if (this.instance.delta.x < this.instance.scroll.x) {\n if (this.instance.direction !== 'left') {\n this.instance.direction = 'left';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (this.instance.delta[this.directionAxis] != this.instance.scroll[this.directionAxis]) {\n this.instance.speed = (this.instance.delta[this.directionAxis] - this.instance.scroll[this.directionAxis]) / Math.max(1, Date.now() - this.speedTs);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"initScrollBar\",\n value: function initScrollBar() {\n this.scrollbar = document.createElement('span');\n this.scrollbarThumb = document.createElement('span');\n this.scrollbar.classList.add(\"\".concat(this.scrollbarClass));\n this.scrollbarThumb.classList.add(\"\".concat(this.scrollbarClass, \"_thumb\"));\n this.scrollbar.append(this.scrollbarThumb);\n\n if (this.scrollbarContainer) {\n this.scrollbarContainer.append(this.scrollbar);\n } else {\n document.body.append(this.scrollbar);\n } // Scrollbar Events\n\n\n this.getScrollBar = this.getScrollBar.bind(this);\n this.releaseScrollBar = this.releaseScrollBar.bind(this);\n this.moveScrollBar = this.moveScrollBar.bind(this);\n this.scrollbarThumb.addEventListener('mousedown', this.getScrollBar);\n window.addEventListener('mouseup', this.releaseScrollBar);\n window.addEventListener('mousemove', this.moveScrollBar); // Set scrollbar values\n\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"reinitScrollBar\",\n value: function reinitScrollBar() {\n this.hasScrollbar = false;\n\n if (this.direction == 'horizontal') {\n if (this.instance.limit.x + this.windowWidth <= this.windowWidth) {\n return;\n }\n } else {\n if (this.instance.limit.y + this.windowHeight <= this.windowHeight) {\n return;\n }\n }\n\n this.hasScrollbar = true;\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarWidth = this.scrollbarBCR.width;\n\n if (this.direction === 'horizontal') {\n this.scrollbarThumb.style.width = \"\".concat(this.scrollbarWidth * this.scrollbarWidth / (this.instance.limit.x + this.scrollbarWidth), \"px\");\n } else {\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit.y + this.scrollbarHeight), \"px\");\n }\n\n this.scrollbarThumbBCR = this.scrollbarThumb.getBoundingClientRect();\n this.scrollBarLimit = {\n x: this.scrollbarWidth - this.scrollbarThumbBCR.width,\n y: this.scrollbarHeight - this.scrollbarThumbBCR.height\n };\n }\n }, {\n key: \"destroyScrollBar\",\n value: function destroyScrollBar() {\n this.scrollbarThumb.removeEventListener('mousedown', this.getScrollBar);\n window.removeEventListener('mouseup', this.releaseScrollBar);\n window.removeEventListener('mousemove', this.moveScrollBar);\n this.scrollbar.remove();\n }\n }, {\n key: \"getScrollBar\",\n value: function getScrollBar(e) {\n this.isDraggingScrollbar = true;\n this.checkScroll();\n this.html.classList.remove(this.scrollingClass);\n this.html.classList.add(this.draggingClass);\n }\n }, {\n key: \"releaseScrollBar\",\n value: function releaseScrollBar(e) {\n this.isDraggingScrollbar = false;\n\n if (this.isScrolling) {\n this.html.classList.add(this.scrollingClass);\n }\n\n this.html.classList.remove(this.draggingClass);\n }\n }, {\n key: \"moveScrollBar\",\n value: function moveScrollBar(e) {\n var _this5 = this;\n\n if (this.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n var x = (e.clientX - _this5.scrollbarBCR.left) * 100 / _this5.scrollbarWidth * _this5.instance.limit.x / 100;\n var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit.y / 100;\n\n if (y > 0 && y < _this5.instance.limit.y) {\n _this5.instance.delta.y = y;\n }\n\n if (x > 0 && x < _this5.instance.limit.x) {\n _this5.instance.delta.x = x;\n }\n });\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this6 = this;\n\n this.els = {};\n this.parallaxElements = {}; // this.sections.forEach((section, y) => {\n\n var els = this.el.querySelectorAll(\"[data-\".concat(this.name, \"]\"));\n els.forEach(function (el, index) {\n // Try and find the target's parent section\n var targetParents = getParents(el);\n var section = Object.entries(_this6.sections).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n section = _ref4[1];\n\n return section;\n }).find(function (section) {\n return targetParents.includes(section.el);\n });\n var cl = el.dataset[_this6.name + 'Class'] || _this6[\"class\"];\n var id = typeof el.dataset[_this6.name + 'Id'] === 'string' ? el.dataset[_this6.name + 'Id'] : 'el' + index;\n var top;\n var left;\n var repeat = el.dataset[_this6.name + 'Repeat'];\n var call = el.dataset[_this6.name + 'Call'];\n var position = el.dataset[_this6.name + 'Position'];\n var delay = el.dataset[_this6.name + 'Delay'];\n var direction = el.dataset[_this6.name + 'Direction'];\n var sticky = typeof el.dataset[_this6.name + 'Sticky'] === 'string';\n var speed = el.dataset[_this6.name + 'Speed'] ? parseFloat(el.dataset[_this6.name + 'Speed']) / 10 : false;\n var offset = typeof el.dataset[_this6.name + 'Offset'] === 'string' ? el.dataset[_this6.name + 'Offset'].split(',') : _this6.offset;\n var target = el.dataset[_this6.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n var targetElBCR = targetEl.getBoundingClientRect();\n\n if (section === null) {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n } else {\n if (!section.inView) {\n top = targetElBCR.top - getTranslate(section.el).y - getTranslate(targetEl).y;\n left = targetElBCR.left - getTranslate(section.el).x - getTranslate(targetEl).x;\n } else {\n top = targetElBCR.top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n left = targetElBCR.left + _this6.instance.scroll.x - getTranslate(targetEl).x;\n }\n }\n\n var bottom = top + targetEl.offsetHeight;\n var right = left + targetEl.offsetWidth;\n var middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n\n if (sticky) {\n var elBCR = el.getBoundingClientRect();\n var elTop = elBCR.top;\n var elLeft = elBCR.left;\n var elDistance = {\n x: elLeft - left,\n y: elTop - top\n };\n top += window.innerHeight;\n left += window.innerWidth;\n bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance[_this6.directionAxis];\n right = elLeft + targetEl.offsetWidth - el.offsetWidth - elDistance[_this6.directionAxis];\n middle = {\n x: (right - left) / 2 + left,\n y: (bottom - top) / 2 + top\n };\n }\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this6.repeat;\n }\n\n var relativeOffset = [0, 0];\n\n if (offset) {\n if (_this6.direction === 'horizontal') {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowWidth / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n left = left + relativeOffset[0];\n right = right - relativeOffset[1];\n } else {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n\n top = top + relativeOffset[0];\n bottom = bottom - relativeOffset[1];\n }\n }\n\n var mappedEl = {\n el: el,\n id: id,\n \"class\": cl,\n section: section,\n top: top,\n middle: middle,\n bottom: bottom,\n left: left,\n right: right,\n offset: offset,\n progress: 0,\n repeat: repeat,\n inView: false,\n call: call,\n speed: speed,\n delay: delay,\n position: position,\n target: targetEl,\n direction: direction,\n sticky: sticky\n };\n _this6.els[id] = mappedEl;\n\n if (el.classList.contains(cl)) {\n _this6.setInView(_this6.els[id], id);\n }\n\n if (speed !== false || sticky) {\n _this6.parallaxElements[id] = mappedEl;\n }\n }); // });\n }\n }, {\n key: \"addSections\",\n value: function addSections() {\n var _this7 = this;\n\n this.sections = {};\n var sections = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-section]\"));\n\n if (sections.length === 0) {\n sections = [this.el];\n }\n\n sections.forEach(function (section, index) {\n var id = typeof section.dataset[_this7.name + 'Id'] === 'string' ? section.dataset[_this7.name + 'Id'] : 'section' + index;\n var sectionBCR = section.getBoundingClientRect();\n var offset = {\n x: sectionBCR.left - window.innerWidth * 1.5 - getTranslate(section).x,\n y: sectionBCR.top - window.innerHeight * 1.5 - getTranslate(section).y\n };\n var limit = {\n x: offset.x + sectionBCR.width + window.innerWidth * 2,\n y: offset.y + sectionBCR.height + window.innerHeight * 2\n };\n var persistent = typeof section.dataset[_this7.name + 'Persistent'] === 'string';\n section.setAttribute('data-scroll-section-id', id);\n var mappedSection = {\n el: section,\n offset: offset,\n limit: limit,\n inView: false,\n persistent: persistent,\n id: id\n };\n _this7.sections[id] = mappedSection;\n });\n }\n }, {\n key: \"transform\",\n value: function transform(element, x, y, delay) {\n var transform;\n\n if (!delay) {\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(x, \",\").concat(y, \",0,1)\");\n } else {\n var start = getTranslate(element);\n var lerpX = lerp(start.x, x, delay);\n var lerpY = lerp(start.y, y, delay);\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(lerpX, \",\").concat(lerpY, \",0,1)\");\n }\n\n element.style.webkitTransform = transform;\n element.style.msTransform = transform;\n element.style.transform = transform;\n }\n }, {\n key: \"transformElements\",\n value: function transformElements(isForced) {\n var _this8 = this;\n\n var setAllElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var scrollRight = this.instance.scroll.x + this.windowWidth;\n var scrollBottom = this.instance.scroll.y + this.windowHeight;\n var scrollMiddle = {\n x: this.instance.scroll.x + this.windowMiddle.x,\n y: this.instance.scroll.y + this.windowMiddle.y\n };\n Object.entries(this.parallaxElements).forEach(function (_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n i = _ref6[0],\n current = _ref6[1];\n\n var transformDistance = false;\n\n if (isForced) {\n transformDistance = 0;\n }\n\n if (current.inView || setAllElements) {\n switch (current.position) {\n case 'top':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementTop':\n transformDistance = (scrollBottom - current.top) * -current.speed;\n break;\n\n case 'bottom':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollBottom + _this8.windowHeight) * current.speed;\n break;\n\n case 'left':\n transformDistance = _this8.instance.scroll[_this8.directionAxis] * -current.speed;\n break;\n\n case 'elementLeft':\n transformDistance = (scrollRight - current.left) * -current.speed;\n break;\n\n case 'right':\n transformDistance = (_this8.instance.limit[_this8.directionAxis] - scrollRight + _this8.windowHeight) * current.speed;\n break;\n\n default:\n transformDistance = (scrollMiddle[_this8.directionAxis] - current.middle[_this8.directionAxis]) * -current.speed;\n break;\n }\n }\n\n if (current.sticky) {\n if (current.inView) {\n if (_this8.direction === 'horizontal') {\n transformDistance = _this8.instance.scroll.x - current.left + window.innerWidth;\n } else {\n transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight;\n }\n } else {\n if (_this8.direction === 'horizontal') {\n if (_this8.instance.scroll.x < current.left - window.innerWidth && _this8.instance.scroll.x < current.left - window.innerWidth / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.x > current.right && _this8.instance.scroll.x > current.right + 100) {\n transformDistance = current.right - current.left + window.innerWidth;\n } else {\n transformDistance = false;\n }\n } else {\n if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) {\n transformDistance = current.bottom - current.top + window.innerHeight;\n } else {\n transformDistance = false;\n }\n }\n }\n }\n\n if (transformDistance !== false) {\n if (current.direction === 'horizontal' || _this8.direction === 'horizontal' && current.direction !== 'vertical') {\n _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay);\n } else {\n _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay);\n }\n }\n });\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * target {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * options {object} - Options object for additionnal settings.\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target) {\n var _this9 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // Parse options\n var offset = parseInt(options.offset) || 0; // An offset to apply on top of given `target` or `sourceElem`'s target\n\n var duration = !isNaN(parseInt(options.duration)) ? parseInt(options.duration) : 1000; // Duration of the scroll animation in milliseconds\n\n var easing = options.easing || [0.25, 0.0, 0.35, 1.0]; // An array of 4 floats between 0 and 1 defining the bezier curve for the animation's easing. See http://greweb.me/bezier-easing-editor/example/\n\n var disableLerp = options.disableLerp ? true : false; // Lerp effect won't be applied if set to true\n\n var callback = options.callback ? options.callback : false; // function called when scrollTo completes (note that it won't wait for lerp to stabilize)\n\n easing = src$1.apply(void 0, _toConsumableArray(easing));\n\n if (typeof target === 'string') {\n // Selector or boundaries\n if (target === 'top') {\n target = 0;\n } else if (target === 'bottom') {\n target = this.instance.limit.y;\n } else if (target === 'left') {\n target = 0;\n } else if (target === 'right') {\n target = this.instance.limit.x;\n } else {\n target = document.querySelector(target); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof target === 'number') {\n // Absolute coordinate\n target = parseInt(target);\n } else if (target && target.tagName) ; else {\n console.warn('`target` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n // Verify the given target belongs to this scroll scope\n var targetInScope = getParents(target).includes(this.el);\n\n if (!targetInScope) {\n // If the target isn't inside our main element, abort any action\n return;\n } // Get target offset from top\n\n\n var targetBCR = target.getBoundingClientRect();\n var offsetTop = targetBCR.top;\n var offsetLeft = targetBCR.left; // Try and find the target's parent section\n\n var targetParents = getParents(target);\n var parentSection = targetParents.find(function (candidate) {\n return Object.entries(_this9.sections) // Get sections associative array as a regular array\n .map(function (_ref7) {\n var _ref8 = _slicedToArray(_ref7, 2),\n key = _ref8[0],\n section = _ref8[1];\n\n return section;\n }) // map to section only (we dont need the key here)\n .find(function (section) {\n return section.el == candidate;\n }); // finally find the section that matches the candidate\n });\n var parentSectionOffset = 0;\n\n if (parentSection) {\n parentSectionOffset = getTranslate(parentSection)[this.directionAxis]; // We got a parent section, store it's current offset to remove it later\n } else {\n // if no parent section is found we need to use instance scroll directly\n parentSectionOffset = -this.instance.scroll[this.directionAxis];\n } // Final value of scroll destination : offsetTop + (optional offset given in options) - (parent's section translate)\n\n\n if (this.direction === 'horizontal') {\n offset = offsetLeft + offset - parentSectionOffset;\n } else {\n offset = offsetTop + offset - parentSectionOffset;\n }\n } else {\n offset = target + offset;\n } // Actual scrollto\n // ==========================================================================\n // Setup\n\n\n var scrollStart = parseFloat(this.instance.delta[this.directionAxis]);\n var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit[this.directionAxis])); // Make sure our target is in the scroll boundaries\n\n var scrollDiff = scrollTarget - scrollStart;\n\n var render = function render(p) {\n if (disableLerp) {\n if (_this9.direction === 'horizontal') {\n _this9.setScroll(scrollStart + scrollDiff * p, _this9.instance.delta.y);\n } else {\n _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p);\n }\n } else {\n _this9.instance.delta[_this9.directionAxis] = scrollStart + scrollDiff * p;\n }\n }; // Prepare the scroll\n\n\n this.animatingScroll = true; // This boolean allows to prevent `checkScroll()` from calling `stopScrolling` when the animation is slow (i.e. at the beginning of an EaseIn)\n\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.startScrolling(); // Restart the scroll\n // Start the animation loop\n\n var start = Date.now();\n\n var loop = function loop() {\n var p = (Date.now() - start) / duration; // Animation progress\n\n if (p > 1) {\n // Animation ends\n render(1);\n _this9.animatingScroll = false;\n if (duration == 0) _this9.update();\n if (callback) callback();\n } else {\n _this9.scrollToRaf = requestAnimationFrame(loop);\n render(easing(p));\n }\n };\n\n loop();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.setScrollLimit();\n this.addSections();\n this.addElements();\n this.detectElements();\n this.updateScroll();\n this.transformElements(true);\n this.reinitScrollBar();\n this.checkScroll(true);\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {\n this.stop = false;\n }\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {\n this.stop = true;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance = _objectSpread2(_objectSpread2({}, this.instance), {}, {\n scroll: {\n x: x,\n y: y\n },\n delta: {\n x: x,\n y: y\n },\n speed: 0\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n this.stopScrolling();\n this.html.classList.remove(this.smoothClass);\n this.vs.destroy();\n this.destroyScrollBar();\n window.removeEventListener('keydown', this.checkKey, false);\n }\n }]);\n\n return _default;\n}(_default);\n\nvar Smooth = /*#__PURE__*/function () {\n function Smooth() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Smooth);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n if (!this.smooth && this.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible');\n if (!this.tablet.smooth && this.tablet.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (tablet)');\n if (!this.smartphone.smooth && this.smartphone.direction == 'horizontal') console.warn('\uD83D\uDEA8 `smooth:false` & `horizontal` direction are not yet compatible (smartphone)');\n this.init();\n }\n\n _createClass(Smooth, [{\n key: \"init\",\n value: function init() {\n this.options.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1 || window.innerWidth < this.tablet.breakpoint;\n this.options.isTablet = this.options.isMobile && window.innerWidth >= this.tablet.breakpoint;\n\n if (this.smooth && !this.options.isMobile || this.tablet.smooth && this.options.isTablet || this.smartphone.smooth && this.options.isMobile && !this.options.isTablet) {\n this.scroll = new _default$2(this.options);\n } else {\n this.scroll = new _default$1(this.options);\n }\n\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Smooth;\n}();\n\nvar Native = /*#__PURE__*/function () {\n function Native() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Native);\n\n this.options = options; // Override default options with given ones\n\n Object.assign(this, defaults, options);\n this.smartphone = defaults.smartphone;\n if (options.smartphone) Object.assign(this.smartphone, options.smartphone);\n this.tablet = defaults.tablet;\n if (options.tablet) Object.assign(this.tablet, options.tablet);\n this.init();\n }\n\n _createClass(Native, [{\n key: \"init\",\n value: function init() {\n this.scroll = new _default$1(this.options);\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, options) {\n this.scroll.scrollTo(target, options);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return Native;\n}();\n\nexport default Smooth;\nexport { Native, Smooth };\n", "import { module } from 'modujs';\nimport { lazyLoadImage } from '../utils/image';\nimport LocomotiveScroll from 'locomotive-scroll';\n\nexport default class extends module {\n constructor(m) {\n super(m);\n }\n\n init() {\n this.scroll = new LocomotiveScroll({\n el: this.el,\n smooth: true\n });\n\n this.scroll.on('call', (func, way, obj, id) => {\n // Using modularJS\n this.call(func[0], { way, obj }, func[1], func[2]);\n });\n\n this.scroll.on('scroll', (args) => {\n // console.log(args.scroll);\n })\n }\n\n /**\n * Lazy load the related image.\n *\n * @see ../utils/image.js\n *\n * It is recommended to wrap your `` into an element with the\n * CSS class name `.c-lazy`. The CSS class name modifier `.-lazy-loaded`\n * will be applied on both the image and the parent wrapper.\n *\n * ```html\n *
\n * \"\"\n *
\n * ```\n *\n * @param {LocomotiveScroll} args - The Locomotive Scroll instance.\n */\n lazyLoad(args) {\n lazyLoadImage(args.obj.el, null, () => {\n //callback\n })\n }\n\n destroy() {\n this.scroll.destroy();\n }\n}\n", "import svg4everybody from 'svg4everybody';\n\nexport default function() {\n svg4everybody();\n}\n", "const APP_NAME = 'Boilerplate';\nconst DATA_API_KEY = '.data-api';\n\nconst html = document.documentElement;\nconst body = document.body;\nconst isDebug = html.hasAttribute('data-debug');\n\n\nexport { APP_NAME, DATA_API_KEY, html, body, isDebug };\n", "/**\n * > When using the esBuild API, all `process.env.NODE_ENV` expressions\n * > are automatically defined to `\"production\"` if all minification\n * > options are enabled and `\"development\"` otherwise. This only happens\n * > if `process`, `process.env`, and `process.env.NODE_ENV` are not already\n * > defined. This substitution is necessary to avoid code crashing instantly\n * > (since `process` is a Node API, not a web API).\n * > \u2014 https://esbuild.github.io/api/#platform\n */\nconst env = process.env.NODE_ENV\n\nexport default config = Object.freeze({\n // Environments\n ENV: env,\n IS_PROD: env === 'production',\n IS_DEV: env === 'development',\n\n // CSS class names\n CSS_CLASS: {\n LOADING: 'is-loading',\n READY: 'is-ready',\n LOADED: 'is-loaded',\n },\n})\n", "import modular from 'modujs';\nimport * as modules from './modules';\nimport globals from './globals';\nimport { html } from './utils/environment';\nimport config from './config'\n\nconst app = new modular({\n modules: modules\n});\n\nwindow.onload = (event) => {\n const $style = document.getElementById('main-css');\n\n if ($style) {\n if ($style.isLoaded) {\n init();\n } else {\n $style.addEventListener('load', (event) => {\n init();\n });\n }\n } else {\n console.warn('The \"main-css\" stylesheet not found');\n }\n};\n\nfunction init() {\n globals();\n\n app.init(app);\n\n html.classList.add(config.CSS_CLASS.LOADED);\n html.classList.add(config.CSS_CLASS.READY);\n html.classList.remove(config.CSS_CLASS.LOADING);\n}\n\n"], + "mappings": "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", "names": [] }