/******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 1); /******/ }) /************************************************************************/ /******/ ({ /***/ "./js/src/front-end.js": /*!*****************************!*\ !*** ./js/src/front-end.js ***! \*****************************/ /*! no exports provided */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var moveto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moveto */ \"./node_modules/moveto/dist/moveTo.js\");\n/* harmony import */ var moveto__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moveto__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var vanilla_lazyload__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vanilla-lazyload */ \"./node_modules/vanilla-lazyload/dist/lazyload.min.js\");\n/* harmony import */ var vanilla_lazyload__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vanilla_lazyload__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var reframe_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! reframe.js */ \"./node_modules/reframe.js/dist/reframe.es.js\");\n/* harmony import */ var _modules_localization__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/localization */ \"./js/src/modules/localization.js\");\n/* harmony import */ var _modules_external_link__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/external-link */ \"./js/src/modules/external-link.js\");\n/* harmony import */ var _modules_gutenberg_helpers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/gutenberg-helpers */ \"./js/src/modules/gutenberg-helpers.js\");\n/* harmony import */ var what_input__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! what-input */ \"./node_modules/what-input/dist/what-input.js\");\n/* harmony import */ var what_input__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(what_input__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var _modules_navigation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/navigation.js */ \"./js/src/modules/navigation.js\");\n/**\n * Air theme JavaScript.\n */\n// Import modules (comment to disable)\n\n\n\n\n\n // import './modules/sticky-nav.js'\n// import slick from 'slick-carousel';\n\n // Navigation\n\n // Define Javascript is active by changing the body class\n\ndocument.body.classList.remove('no-js');\ndocument.body.classList.add('js'); // Fit video embeds to container\n\nObject(reframe_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])('.wp-has-aspect-ratio iframe'); // Style external links\n\nObject(_modules_external_link__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(); // Init lazyload\n// Usage example on template side when air-helper enabled:\n// ID ) ); ?>\n// Refer to documentation:\n// 1) https://github.com/digitoimistodude/air-helper#image-lazyloading-1\n// 2) https://github.com/verlok/vanilla-lazyload#-getting-started---html\n\nvar air_light_LazyLoad = new vanilla_lazyload__WEBPACK_IMPORTED_MODULE_1___default.a({\n callback_loaded: _modules_gutenberg_helpers__WEBPACK_IMPORTED_MODULE_5__[\"setLazyLoadedFigureWidth\"]\n}); // After your content has changed...\n\nair_light_LazyLoad.update(); // jQuery start\n\n(function ($) {\n // Accessibility: Ensure back to top is right color on right background\n // Note: Needs .has-light-bg or .has-dark-bg class on all blocks\n var stickyOffset = $('.back-to-top').offset();\n var $contentDivs = $('.block, .site-footer');\n $(document).scroll(function () {\n $contentDivs.each(function (k) {\n var _thisOffset = $(this).offset();\n\n var _actPosition = _thisOffset.top - $(window).scrollTop();\n\n if (_actPosition < stickyOffset.top && _actPosition + $(this).height() > 0) {\n $('.back-to-top').removeClass('has-light-bg has-dark-bg').addClass($(this).hasClass('has-light-bg') ? 'has-light-bg' : 'has-dark-bg');\n return false;\n }\n });\n }); // Detect Visible section on viewport from bottom\n // @link https://codepen.io/BoyWithSilverWings/pen/MJgQqR\n\n $.fn.isInViewport = function () {\n var elementTop = $(this).offset().top;\n var elementBottom = elementTop + $(this).outerHeight();\n var viewportTop = $(window).scrollTop();\n var viewportBottom = viewportTop + $(window).height();\n return elementBottom > viewportTop && elementTop < viewportBottom;\n }; // Accessibility: Ensure back to top is right color on right background\n\n\n $(window).on('resize scroll', function () {\n $('.block, .site-footer').each(function () {\n if ($(this).isInViewport()) {\n $('.back-to-top').removeClass('has-light-bg has-dark-bg').addClass($(this).hasClass('has-light-bg') ? 'has-light-bg' : 'has-dark-bg');\n }\n });\n }); // Hide or show the 'back to top' link\n\n $(window).scroll(function () {\n // Back to top\n var offset = 300; // Browser window scroll (in pixels) after which the 'back to top' link is shown\n\n var offset_opacity = 1200; // Browser window scroll (in pixels) after which the link opacity is reduced\n\n var scroll_top_duration = 700; // Duration of the top scrolling animation (in ms)\n\n var link_class = '.back-to-top';\n\n if ($(this).scrollTop() > offset) {\n $(link_class).addClass('is-visible');\n } else {\n $(link_class).removeClass('is-visible');\n }\n\n if ($(this).scrollTop() > offset_opacity) {\n $(link_class).addClass('fade-out');\n } else {\n $(link_class).removeClass('fade-out');\n }\n }); // Document ready start\n\n $(function () {// Your JavaScript here\n });\n})(jQuery);\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var easeFunctions = {\n easeInQuad: function easeInQuad(t, b, c, d) {\n t /= d;\n return c * t * t + b;\n },\n easeOutQuad: function easeOutQuad(t, b, c, d) {\n t /= d;\n return -c * t * (t - 2) + b;\n }\n };\n var moveTo = new moveto__WEBPACK_IMPORTED_MODULE_0___default.a({\n ease: 'easeInQuad'\n }, easeFunctions);\n var triggers = document.getElementsByClassName('js-trigger');\n\n for (var i = 0; i < triggers.length; i++) {\n moveTo.registerTrigger(triggers[i]);\n }\n});\n\n//# sourceURL=webpack:///./js/src/front-end.js?"); /***/ }), /***/ "./js/src/modules/external-link.js": /*!*****************************************!*\ !*** ./js/src/modules/external-link.js ***! \*****************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return styleExternalLinks; });\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _localization__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./localization */ \"./js/src/modules/localization.js\");\n\n\n/**\n * Style external links\n */\n\n\nfunction isLinkExternal(link, localDomains) {\n // Empty links are not external\n if (!link.length) {\n return false;\n }\n\n var exceptions = ['#', 'tel:', 'mailto:', '/']; // Check if the url starts with some of the exceptions\n\n var isException = exceptions.some(function (exception) {\n var compare = new RegExp(\"^\".concat(exception), 'g');\n return compare.test(link);\n });\n\n if (isException) {\n return false;\n }\n\n var linkUrl;\n\n try {\n linkUrl = new URL(link);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.log(\"Invalid URL: \".concat(link));\n return false;\n } // Check if host is one of the local domains\n\n\n return !localDomains.some(function (domain) {\n return linkUrl.host === domain;\n });\n}\n\nfunction styleExternalLinks() {\n var localDomains = [window.location.host];\n\n if (typeof window.air_light_externalLinkDomains !== 'undefined') {\n localDomains = localDomains.concat(window.air_light_externalLinkDomains);\n }\n\n var links = document.querySelectorAll('a');\n\n var externalLinks = _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(links).filter(function (link) {\n return isLinkExternal(link.href, localDomains);\n });\n\n externalLinks.forEach(function (externalLink) {\n var ariaLabel = externalLink.target === '_blank' ? \"\".concat(Object(_localization__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('external_link'), \" \").concat(externalLink.textContent, \", \").concat(Object(_localization__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('target_blank')) : \"\".concat(Object(_localization__WEBPACK_IMPORTED_MODULE_1__[\"default\"])('external_link'), \" \").concat(externalLink.textContent);\n externalLink.setAttribute('aria-label', ariaLabel);\n externalLink.classList.add('is-external-link');\n });\n}\n\n//# sourceURL=webpack:///./js/src/modules/external-link.js?"); /***/ }), /***/ "./js/src/modules/gutenberg-helpers.js": /*!*********************************************!*\ !*** ./js/src/modules/gutenberg-helpers.js ***! \*********************************************/ /*! exports provided: setFigureWidths, setLazyLoadedFigureWidth */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFigureWidths\", function() { return setFigureWidths; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLazyLoadedFigureWidth\", function() { return setLazyLoadedFigureWidth; });\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"./node_modules/@babel/runtime/helpers/typeof.js\");\n/* harmony import */ var _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);\n\n\nvar setFigureWidth = function setFigureWidth(figure) {\n var img = figure.querySelector('img');\n\n if (!img || _babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default()(img) !== 'object' || !('clientWidth' in img)) {\n return;\n }\n\n figure.style.setProperty('--child-img-width', \"\".concat(img.clientWidth, \"px\"));\n};\n\nvar setFigureWidths = function setFigureWidths(figures) {\n // Gutengerg magic for alignright and alignleft images\n figures.forEach(function (figure) {\n setFigureWidth(figure);\n });\n};\n\nvar setLazyLoadedFigureWidth = function setLazyLoadedFigureWidth(image) {\n if (image.parentElement.tagName === 'figure') {\n setFigureWidth(image.parentElement);\n }\n};\n\n\n\n//# sourceURL=webpack:///./js/src/modules/gutenberg-helpers.js?"); /***/ }), /***/ "./js/src/modules/localization.js": /*!****************************************!*\ !*** ./js/src/modules/localization.js ***! \****************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return getLocalization; });\nfunction getLocalization(stringKey) {\n if (typeof window.air_light_screenReaderText === 'undefined' || typeof window.air_light_screenReaderText[stringKey] === 'undefined') {\n // eslint-disable-next-line no-console\n console.error(\"Missing translation for \".concat(stringKey));\n return '';\n }\n\n return window.air_light_screenReaderText[stringKey];\n}\n\n//# sourceURL=webpack:///./js/src/modules/localization.js?"); /***/ }), /***/ "./js/src/modules/navigation.js": /*!**************************************!*\ !*** ./js/src/modules/navigation.js ***! \**************************************/ /*! no exports provided */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n/* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);\n\n\n// TODO: Refactor file\n\n/* eslint-disable default-case, eqeqeq, no-restricted-globals, no-undef, no-var, vars-on-top, max-len, prefer-destructuring, no-redeclare, no-plusplus, no-use-before-define, no-unused-vars, block-scoped-var, func-names */\n\n/*\nAn accessible menu for WordPress\n\nhttps://github.com/theme-smith/accessible-nav-wp\nKirsten Smith (kirsten@themesmith.co.uk)\nLicensed GPL v.2 (http://www.gnu.org/licenses/gpl-2.0.html)\n\nThis work derived from:\nhttps://github.com/WordPress/twentysixteen (GPL v.2)\nhttps://github.com/wpaccessibility/a11ythemepatterns/tree/master/menu-keyboard-arrow-nav (GPL v.2)\n*/\n(function ($) {\n // Responsive nav width\n var responsivenav = 960;\n var html;\n var body;\n var container;\n var button;\n var menu;\n var menuWrapper;\n var links;\n var subMenus;\n var i;\n var len;\n var focusableElements;\n var firstFocusableElement;\n var lastFocusableElement; // Check if enter pressed\n\n var enterPressed = false;\n $(window).on('keydown', function (evt) {\n if (evt.code === 'Enter') {\n enterPressed = true;\n }\n }).on('keyup', function (evt) {\n if (evt.code === 'Enter') {\n enterPressed = false;\n }\n }); // Hover intent\n\n $('.menu-item-has-children').on('hover', function () {\n var _this = this;\n\n $(this).addClass('hover-intent');\n setTimeout(function () {\n $(_this).removeClass('hover-intent');\n }, 100);\n });\n var menuContainer = $('.nav-container');\n var menuToggle = menuContainer.find('#nav-toggle');\n var siteHeaderMenu = menuContainer.find('#main-navigation-wrapper');\n var siteNavigation = menuContainer.find('#nav'); // Close focused dropdowns when pressing esc\n\n $('.menu-item a, .dropdown button').on('keyup', function (e) {\n if ($('.dropdown').find(':focus').length !== 0) {\n // Close menu using Esc key.\n if (e.code === 'Escape') {\n // Close the dropdown menu\n var thisDropdown = $(this).parent().parent().parent();\n var screenReaderSpan = thisDropdown.find('.screen-reader-text');\n var dropdownToggle = thisDropdown.find('.dropdown-toggle');\n thisDropdown.find('.sub-menu').removeClass('toggled-on');\n thisDropdown.find('.dropdown-toggle').removeClass('toggled-on');\n thisDropdown.find('.dropdown').removeClass('toggled-on');\n dropdownToggle.attr('aria-expanded', 'false'); // jscs:enable\n\n screenReaderSpan.text(air_light_screenReaderText.expand); // Move focus back to previous dropdown select\n\n thisDropdown.find('.dropdown-toggle:first').trigger('focus');\n }\n }\n\n if (window.innerWidth > responsivenav) {\n // Close previous dropdown if we are on main level\n var prevDropdown = $(this).parent().prev();\n var screenReaderSpanPrev = prevDropdown.find('.screen-reader-text');\n var dropdownTogglePrev = prevDropdown.find('.dropdown-toggle');\n prevDropdown.find('.sub-menu').removeClass('toggled-on');\n prevDropdown.find('.dropdown-toggle').removeClass('toggled-on');\n prevDropdown.find('.dropdown').removeClass('toggled-on');\n dropdownTogglePrev.attr('aria-expanded', 'false');\n screenReaderSpanPrev.text(air_light_screenReaderText.expand); // Close next dropdown if we are on main level\n\n var nextDropdown = $(this).parent().next();\n var screenReaderSpanNext = nextDropdown.find('.screen-reader-text');\n var dropdownToggleNext = nextDropdown.find('.dropdown-toggle');\n nextDropdown.find('.sub-menu').removeClass('toggled-on');\n nextDropdown.find('.dropdown-toggle').removeClass('toggled-on');\n nextDropdown.find('.dropdown').removeClass('toggled-on');\n dropdownToggleNext.attr('aria-expanded', 'false');\n screenReaderSpanNext.text(air_light_screenReaderText.expand);\n }\n }); // Adds aria attribute\n\n siteHeaderMenu.find('.menu-item-has-children').attr('aria-haspopup', 'true'); // Add default dropdown-toggle label\n\n $('.dropdown-toggle').each(function () {\n $(this).attr('aria-label', \"\".concat(air_light_screenReaderText.expand_for, \" \").concat($(this).prev().text()));\n }); // Toggles the sub-menu when dropdown toggle button accessed\n\n siteHeaderMenu.find('.dropdown-toggle').on('click', function (e) {\n if (enterPressed || window.innerWidth < responsivenav) {\n var dropdownMenu = $(this).nextAll('.sub-menu');\n e.preventDefault();\n $(this).toggleClass('toggled-on');\n dropdownMenu.toggleClass('toggled-on'); // jscs:disable\n\n $(this).attr('aria-expanded', $(this).attr('aria-expanded') === 'false' ? 'true' : 'false'); // jscs:enable\n // Change screen reader open/close labels\n\n $(this).attr('aria-label', $(this).attr('aria-label') === \"\".concat(air_light_screenReaderText.collapse_for, \" \").concat($(this).prev().text()) ? \"\".concat(air_light_screenReaderText.expand_for, \" \").concat($(this).prev().text()) : \"\".concat(air_light_screenReaderText.collapse_for, \" \").concat($(this).prev().text()));\n }\n }); // Adds a class to sub-menus for styling\n\n $('.sub-menu .menu-item-has-children').parent('.sub-menu').addClass('has-sub-menu'); // Keyboard navigation\n\n $('.menu-item a, button.dropdown-toggle').on('keydown', function (e) {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].indexOf(e.code) == -1) {\n return;\n }\n\n switch (e.code) {\n case 'ArrowLeft':\n // Left key\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).hasClass('dropdown-toggle')) {\n $(this).prev('a').trigger('focus');\n } else if ($(this).parent().prev().children('button.dropdown-toggle').length) {\n $(this).parent().prev().children('button.dropdown-toggle').trigger('focus');\n } else {\n $(this).parent().prev().children('a').trigger('focus');\n }\n\n if ($(this).is('ul ul ul.sub-menu.toggled-on li:first-child a')) {\n $(this).parents('ul.sub-menu.toggled-on li').children('button.dropdown-toggle').trigger('focus');\n }\n\n break;\n\n case 'ArrowRight':\n // Right key\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).next('button.dropdown-toggle').length) {\n $(this).next('button.dropdown-toggle').trigger('focus');\n } else if ($(this).parent().next().find('input').length) {\n $(this).parent().next().find('input').trigger('focus');\n } else {\n $(this).parent().next().children('a').trigger('focus');\n }\n\n if ($(this).is('ul.sub-menu .dropdown-toggle.toggled-on')) {\n $(this).parent().find('ul.sub-menu li:first-child a').trigger('focus');\n }\n\n break;\n\n case 'ArrowDown':\n // Down key\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).next().length) {\n $(this).next().find('li:first-child a').first().trigger('focus');\n } else if ($(this).parent().next().find('input').length) {\n $(this).parent().next().find('input').trigger('focus');\n } else {\n $(this).parent().next().children('a').trigger('focus');\n }\n\n if ($(this).is('ul.sub-menu a') && $(this).next('button.dropdown-toggle').length) {\n $(this).parent().next().children('a').trigger('focus');\n }\n\n if ($(this).is('ul.sub-menu .dropdown-toggle') && $(this).parent().next().children('.dropdown-toggle').length) {\n $(this).parent().next().children('.dropdown-toggle').trigger('focus');\n }\n\n break;\n\n case 'ArrowUp':\n // Up key\n e.preventDefault();\n e.stopPropagation();\n\n if ($(this).parent().prev().length) {\n $(this).parent().prev().children('a').trigger('focus');\n } else {\n $(this).parents('ul').first().prev('.dropdown-toggle.toggled-on').trigger('focus');\n }\n\n if ($(this).is('ul.sub-menu .dropdown-toggle') && $(this).parent().prev().children('.dropdown-toggle').length) {\n $(this).parent().prev().children('.dropdown-toggle').trigger('focus');\n }\n\n break;\n }\n });\n container = document.getElementById('nav');\n\n if (!container) {\n return;\n }\n\n button = document.getElementById('nav-toggle');\n\n if (typeof button === 'undefined') {\n return;\n } // Set vars.\n\n\n html = document.getElementsByTagName('html')[0];\n body = document.getElementsByTagName('body')[0];\n menu = container.getElementsByTagName('ul')[0];\n menuWrapper = document.getElementById('main-navigation-wrapper');\n\n function mobileNav() {\n var mobileNavInstance; // Toggles the menu button\n\n if (!menuToggle.length) {\n return;\n } // Do not set aria-expanded false on desktop\n\n\n if (window.innerWidth < responsivenav) {\n menuToggle.add(siteNavigation).attr('aria-expanded', 'false');\n }\n\n menuToggle.on('click', function () {\n $(this).add(siteHeaderMenu).toggleClass('toggled-on'); // Change screen reader expanded state\n\n $(this).attr('aria-expanded', $(this).attr('aria-expanded') === 'false' ? 'true' : 'false'); // Change screen reader open/close labels\n\n $('#nav-toggle-label').text( // eslint-disable-next-line no-undef\n $('#nav-toggle-label').text() === air_light_screenReaderText.expand_toggle ? air_light_screenReaderText.collapse_toggle : air_light_screenReaderText.expand_toggle);\n $(this).attr('aria-label', $(this).attr('aria-label') === air_light_screenReaderText.expand_toggle ? air_light_screenReaderText.collapse_toggle : air_light_screenReaderText.expand_toggle); // jscs:disable\n\n $(this).add(siteNavigation).attr('aria-expanded', $(this).add(siteNavigation).attr('aria-expanded') === 'false' ? 'true' : 'false'); // jscs:enable\n }); // Hide menu toggle button if menu is empty and return early.\n\n if (typeof menu === 'undefined') {\n button.style.display = 'none';\n return;\n } // Do not set aria-expanded false on desktop\n\n\n if (window.innerWidth < responsivenav) {\n menu.setAttribute('aria-expanded', 'false');\n }\n\n if (menu.className.indexOf('nav-menu') === -1) {\n menu.className += ' nav-menu';\n } // Focus trap for mobile navigation\n\n\n if (window.innerWidth < responsivenav) {\n firstFocusableElement = null;\n lastFocusableElement = null; // Select nav items\n\n var navElements = container.querySelectorAll(['.nav-primary a[href]', '.nav-primary button']); // Listen for key events on nav elements and the toggle button\n // to trigger focus trap\n\n for (var ii = 0; ii < navElements.length; ii++) {\n navElements[ii].addEventListener('keydown', focusTrap);\n }\n } // What happens when clicking menu toggle\n\n\n button.onclick = function () {\n if (container.className.indexOf('is-active') !== -1) {\n closeMenu(); // Close menu.\n } else {\n html.className += ' disable-scroll';\n body.className += ' js-nav-active';\n container.className += ' is-active';\n button.className += ' is-active';\n button.setAttribute('aria-expanded', 'true');\n menu.setAttribute('aria-expanded', 'true'); // Add focus trap when menu open\n\n button.addEventListener('keydown', focusTrap, false);\n }\n }; // Close menu using Esc key.\n\n\n document.addEventListener('keyup', function (event) {\n if (event.code == 'Escape' || event.code == 'Esc') {\n if (container.className.indexOf('is-active') !== -1) {\n closeMenu(); // Close menu.\n }\n }\n }); // Close menu clicking menu wrapper area.\n\n menuWrapper.onclick = function (e) {\n if (e.target == menuWrapper && container.className.indexOf('is-active') !== -1) {\n closeMenu(); // Close menu.\n }\n };\n }\n\n if (window.innerWidth < responsivenav) {\n mobileNav(); // fire right away for mobile devices\n } // Close menu function.\n\n\n function closeMenu() {\n button.removeEventListener('keydown', focusTrap, false);\n html.className = html.className.replace(' disable-scroll', '');\n body.className = body.className.replace(' js-nav-active', '');\n container.className = container.className.replace(' is-active', '');\n button.className = button.className.replace(' is-active', '');\n button.setAttribute('aria-expanded', 'false');\n menu.setAttribute('aria-expanded', 'false');\n $('#nav-toggle-label').text(air_light_screenReaderText.expand_toggle); // Return focus to nav-toggle\n\n button.focus();\n } // Get all the link elements within the menu.\n\n\n links = menu.getElementsByTagName('a');\n subMenus = menu.getElementsByTagName('ul'); // Each time a menu link is focused or blurred, toggle focus.\n\n for (i = 0, len = links.length; i < len; i++) {\n links[i].addEventListener('focus', toggleFocus, true);\n links[i].addEventListener('blur', toggleFocus, true);\n }\n /**\n * Sets or removes .focus class on an element.\n */\n\n\n function toggleFocus() {\n var self = this; // Move up through the ancestors of the current link until we hit .nav-menu.\n\n while (self.className.indexOf('nav-menu') === -1) {\n // On li elements toggle the class .focus.\n if (self.tagName.toLowerCase() === 'li') {\n if (self.className.indexOf('focus') !== -1) {\n self.className = self.className.replace(' focus', '');\n } else {\n self.className += ' focus';\n }\n }\n\n self = self.parentElement;\n }\n }\n\n function focusTrap(e) {\n // Set focusable elements inside main navigation.\n focusableElements = _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(container.querySelectorAll('a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])')).filter(function (el) {\n return !el.hasAttribute('disabled');\n }).filter(function (el) {\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n });\n firstFocusableElement = focusableElements[0];\n lastFocusableElement = focusableElements[focusableElements.length - 1]; // Redirect last Tab to first focusable element.\n\n if (lastFocusableElement === e.target && e.code === 'Tab' && !e.shiftKey) {\n e.preventDefault();\n button.focus(); // Set focus on first element - that's actually close menu button.\n } // Redirect first Shift+Tab to toggle button element.\n\n\n if (firstFocusableElement === e.target && e.code === 'Tab' && e.shiftKey) {\n e.preventDefault();\n button.focus(); // Set focus on last element.\n } // Redirect Shift+Tab from the toggle button to last focusable element.\n\n\n if (button === e.target && e.code === 'Tab' && e.shiftKey) {\n e.preventDefault();\n lastFocusableElement.focus(); // Set focus on last element.\n }\n }\n\n $(window).on('resize', function () {\n if (window.innerWidth > responsivenav && body.className.indexOf('js-nav-active') !== -1) {\n closeMenu(); // Close menu.\n } else if (window.innerWidth < responsivenav && typeof window.mobileNavInstance == 'undefined') {\n mobileNav();\n }\n });\n})(jQuery);\n\n//# sourceURL=webpack:///./js/src/modules/navigation.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/arrayLikeToArray.js": /*!*****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayLikeToArray.js ***! \*****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("function _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++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/iterableToArray.js": /*!****************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/iterableToArray.js ***! \****************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/nonIterableSpread.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/nonIterableSpread.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("function _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\nmodule.exports = _nonIterableSpread;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/toConsumableArray.js": /*!******************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/toConsumableArray.js ***! \******************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("var arrayWithoutHoles = __webpack_require__(/*! ./arrayWithoutHoles */ \"./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js\");\n\nvar iterableToArray = __webpack_require__(/*! ./iterableToArray */ \"./node_modules/@babel/runtime/helpers/iterableToArray.js\");\n\nvar unsupportedIterableToArray = __webpack_require__(/*! ./unsupportedIterableToArray */ \"./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = __webpack_require__(/*! ./nonIterableSpread */ \"./node_modules/@babel/runtime/helpers/nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/typeof.js": /*!*******************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***! \*******************************************************/ /*! no static exports found */ /***/ (function(module, exports) { eval("function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(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\nmodule.exports = _typeof;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/typeof.js?"); /***/ }), /***/ "./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js": /*!***************************************************************************!*\ !*** ./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js ***! \***************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("var arrayLikeToArray = __webpack_require__(/*! ./arrayLikeToArray */ \"./node_modules/@babel/runtime/helpers/arrayLikeToArray.js\");\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\nmodule.exports = _unsupportedIterableToArray;\n\n//# sourceURL=webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?"); /***/ }), /***/ "./node_modules/moveto/dist/moveTo.js": /*!********************************************!*\ !*** ./node_modules/moveto/dist/moveTo.js ***! \********************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*!\n * MoveTo - A lightweight scroll animation javascript library without any dependency.\n * Version 1.8.2 (28-06-2019 14:30)\n * Licensed under MIT\n * Copyright 2019 Hasan Aydoğdu \n */\n\n\n\nvar MoveTo = function () {\n /**\n * Defaults\n * @type {object}\n */\n var defaults = {\n tolerance: 0,\n duration: 800,\n easing: 'easeOutQuart',\n container: window,\n callback: function callback() {}\n };\n /**\n * easeOutQuart Easing Function\n * @param {number} t - current time\n * @param {number} b - start value\n * @param {number} c - change in value\n * @param {number} d - duration\n * @return {number} - calculated value\n */\n\n function easeOutQuart(t, b, c, d) {\n t /= d;\n t--;\n return -c * (t * t * t * t - 1) + b;\n }\n /**\n * Merge two object\n *\n * @param {object} obj1\n * @param {object} obj2\n * @return {object} merged object\n */\n\n\n function mergeObject(obj1, obj2) {\n var obj3 = {};\n Object.keys(obj1).forEach(function (propertyName) {\n obj3[propertyName] = obj1[propertyName];\n });\n Object.keys(obj2).forEach(function (propertyName) {\n obj3[propertyName] = obj2[propertyName];\n });\n return obj3;\n }\n\n ;\n /**\n * Converts camel case to kebab case\n * @param {string} val the value to be converted\n * @return {string} the converted value\n */\n\n function kebabCase(val) {\n return val.replace(/([A-Z])/g, function ($1) {\n return '-' + $1.toLowerCase();\n });\n }\n\n ;\n /**\n * Count a number of item scrolled top\n * @param {Window|HTMLElement} container\n * @return {number}\n */\n\n function countScrollTop(container) {\n if (container instanceof HTMLElement) {\n return container.scrollTop;\n }\n\n return container.pageYOffset;\n }\n\n ;\n /**\n * MoveTo Constructor\n * @param {object} options Options\n * @param {object} easeFunctions Custom ease functions\n */\n\n function MoveTo() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var easeFunctions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.options = mergeObject(defaults, options);\n this.easeFunctions = mergeObject({\n easeOutQuart: easeOutQuart\n }, easeFunctions);\n }\n /**\n * Register a dom element as trigger\n * @param {HTMLElement} dom Dom trigger element\n * @param {function} callback Callback function\n * @return {function|void} unregister function\n */\n\n\n MoveTo.prototype.registerTrigger = function (dom, callback) {\n var _this = this;\n\n if (!dom) {\n return;\n }\n\n var href = dom.getAttribute('href') || dom.getAttribute('data-target'); // The element to be scrolled\n\n var target = href && href !== '#' ? document.getElementById(href.substring(1)) : document.body;\n var options = mergeObject(this.options, _getOptionsFromTriggerDom(dom, this.options));\n\n if (typeof callback === 'function') {\n options.callback = callback;\n }\n\n var listener = function listener(e) {\n e.preventDefault();\n\n _this.move(target, options);\n };\n\n dom.addEventListener('click', listener, false);\n return function () {\n return dom.removeEventListener('click', listener, false);\n };\n };\n /**\n * Move\n * Scrolls to given element by using easeOutQuart function\n * @param {HTMLElement|number} target Target element to be scrolled or target position\n * @param {object} options Custom options\n */\n\n\n MoveTo.prototype.move = function (target) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (target !== 0 && !target) {\n return;\n }\n\n options = mergeObject(this.options, options);\n var distance = typeof target === 'number' ? target : target.getBoundingClientRect().top;\n var from = countScrollTop(options.container);\n var startTime = null;\n var lastYOffset;\n distance -= options.tolerance; // rAF loop\n\n var loop = function loop(currentTime) {\n var currentYOffset = countScrollTop(_this2.options.container);\n\n if (!startTime) {\n // To starts time from 1, we subtracted 1 from current time\n // If time starts from 1 The first loop will not do anything,\n // because easing value will be zero\n startTime = currentTime - 1;\n }\n\n var timeElapsed = currentTime - startTime;\n\n if (lastYOffset) {\n if (distance > 0 && lastYOffset > currentYOffset || distance < 0 && lastYOffset < currentYOffset) {\n return options.callback(target);\n }\n }\n\n lastYOffset = currentYOffset;\n\n var val = _this2.easeFunctions[options.easing](timeElapsed, from, distance, options.duration);\n\n options.container.scroll(0, val);\n\n if (timeElapsed < options.duration) {\n window.requestAnimationFrame(loop);\n } else {\n options.container.scroll(0, distance + from);\n options.callback(target);\n }\n };\n\n window.requestAnimationFrame(loop);\n };\n /**\n * Adds custom ease function\n * @param {string} name Ease function name\n * @param {function} fn Ease function\n */\n\n\n MoveTo.prototype.addEaseFunction = function (name, fn) {\n this.easeFunctions[name] = fn;\n };\n /**\n * Returns options which created from trigger dom element\n * @param {HTMLElement} dom Trigger dom element\n * @param {object} options The instance's options\n * @return {object} The options which created from trigger dom element\n */\n\n\n function _getOptionsFromTriggerDom(dom, options) {\n var domOptions = {};\n Object.keys(options).forEach(function (key) {\n var value = dom.getAttribute(\"data-mt-\".concat(kebabCase(key)));\n\n if (value) {\n domOptions[key] = isNaN(value) ? value : parseInt(value, 10);\n }\n });\n return domOptions;\n }\n\n return MoveTo;\n}();\n\nif (true) {\n module.exports = MoveTo;\n} else {}\n\n//# sourceURL=webpack:///./node_modules/moveto/dist/moveTo.js?"); /***/ }), /***/ "./node_modules/reframe.js/dist/reframe.es.js": /*!****************************************************!*\ !*** ./node_modules/reframe.js/dist/reframe.es.js ***! \****************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/**\n reframe.js - Reframe.js: responsive iframes for embedded content\n @version v3.0.2\n @link https://github.com/yowainwright/reframe.ts#readme\n @author Jeff Wainwright (http://jeffry.in)\n @license MIT\n**/\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\n/**\n * REFRAME.TS 🖼\n * ---\n * @param target\n * @param cName\n * @summary defines the height/width ratio of the targeted \n */\nfunction reframe(target, cName) {\n if (cName === void 0) { cName = 'js-reframe'; }\n var frames = typeof target === 'string' ? __spreadArrays(document.querySelectorAll(target)) : 'length' in target ? __spreadArrays(target) : [target];\n return frames.forEach(function (frame) {\n var _a, _b;\n var hasClass = frame.className.split(' ').indexOf(cName) !== -1;\n if (hasClass || frame.style.width.indexOf('%') > -1) {\n return;\n }\n // get height width attributes\n var height = frame.getAttribute('height') || frame.offsetHeight;\n var width = frame.getAttribute('width') || frame.offsetWidth;\n var heightNumber = typeof height === 'string' ? parseInt(height) : height;\n var widthNumber = typeof width === 'string' ? parseInt(width) : width;\n // general targeted sizes\n var padding = (heightNumber / widthNumber) * 100;\n // created element of general reframed item\n // => set necessary styles of created element \n var div = document.createElement('div');\n div.className = cName;\n var divStyles = div.style;\n divStyles.position = 'relative';\n divStyles.width = '100%';\n divStyles.paddingTop = padding + \"%\";\n // set necessary styles of targeted \n var frameStyle = frame.style;\n frameStyle.position = 'absolute';\n frameStyle.width = '100%';\n frameStyle.height = '100%';\n frameStyle.left = '0';\n frameStyle.top = '0';\n // reframe targeted \n (_a = frame.parentNode) === null || _a === void 0 ? void 0 : _a.insertBefore(div, frame);\n (_b = frame.parentNode) === null || _b === void 0 ? void 0 : _b.removeChild(frame);\n div.appendChild(frame);\n });\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (reframe);\n\n\n//# sourceURL=webpack:///./node_modules/reframe.js/dist/reframe.es.js?"); /***/ }), /***/ "./node_modules/vanilla-lazyload/dist/lazyload.min.js": /*!************************************************************!*\ !*** ./node_modules/vanilla-lazyload/dist/lazyload.min.js ***! \************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("!function(t,n){ true?module.exports=n():undefined}(this,(function(){\"use strict\";function t(){return(t=Object.assign||function(t){for(var n=1;n1,a={elements_selector:\".lazy\",container:e||n?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},c=function(n){return t({},a,n)},s=function(t,n){var e,i=\"LazyLoad::Initialized\",o=new t(n);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(t){(e=document.createEvent(\"CustomEvent\")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)},l=\"loading\",u=\"loaded\",d=\"applied\",f=\"error\",_=\"native\",g=\"data-\",v=\"ll-status\",p=function(t,n){return t.getAttribute(g+n)},b=function(t){return p(t,v)},h=function(t,n){return function(t,n,e){var i=\"data-ll-status\";null!==e?t.setAttribute(i,e):t.removeAttribute(i)}(t,0,n)},m=function(t){return h(t,null)},E=function(t){return null===b(t)},y=function(t){return b(t)===_},A=[l,u,d,f],I=function(t,n,e,i){t&&(void 0===i?void 0===e?t(n):t(n,e):t(n,e,i))},L=function(t,n){o?t.classList.add(n):t.className+=(t.className?\" \":\"\")+n},w=function(t,n){o?t.classList.remove(n):t.className=t.className.replace(new RegExp(\"(^|\\\\s+)\"+n+\"(\\\\s+|$)\"),\" \").replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")},k=function(t){return t.llTempImage},O=function(t,n){if(n){var e=n._observer;e&&e.unobserve(t)}},x=function(t,n){t&&(t.loadingCount+=n)},z=function(t,n){t&&(t.toLoadCount=n)},C=function(t){for(var n,e=[],i=0;n=t.children[i];i+=1)\"SOURCE\"===n.tagName&&e.push(n);return e},N=function(t,n,e){e&&t.setAttribute(n,e)},M=function(t,n){t.removeAttribute(n)},R=function(t){return!!t.llOriginalAttrs},G=function(t){if(!R(t)){var n={};n.src=t.getAttribute(\"src\"),n.srcset=t.getAttribute(\"srcset\"),n.sizes=t.getAttribute(\"sizes\"),t.llOriginalAttrs=n}},T=function(t){if(R(t)){var n=t.llOriginalAttrs;N(t,\"src\",n.src),N(t,\"srcset\",n.srcset),N(t,\"sizes\",n.sizes)}},j=function(t,n){N(t,\"sizes\",p(t,n.data_sizes)),N(t,\"srcset\",p(t,n.data_srcset)),N(t,\"src\",p(t,n.data_src))},D=function(t){M(t,\"src\"),M(t,\"srcset\"),M(t,\"sizes\")},F=function(t,n){var e=t.parentNode;e&&\"PICTURE\"===e.tagName&&C(e).forEach(n)},P={IMG:function(t,n){F(t,(function(t){G(t),j(t,n)})),G(t),j(t,n)},IFRAME:function(t,n){N(t,\"src\",p(t,n.data_src))},VIDEO:function(t,n){!function(t,e){C(t).forEach((function(t){N(t,\"src\",p(t,n.data_src))}))}(t),N(t,\"poster\",p(t,n.data_poster)),N(t,\"src\",p(t,n.data_src)),t.load()}},S=function(t,n){var e=P[t.tagName];e&&e(t,n)},V=function(t,n,e){x(e,1),L(t,n.class_loading),h(t,l),I(n.callback_loading,t,e)},U=[\"IMG\",\"IFRAME\",\"VIDEO\"],$=function(t,n){!n||function(t){return t.loadingCount>0}(n)||function(t){return t.toLoadCount>0}(n)||I(t.callback_finish,n)},q=function(t,n,e){t.addEventListener(n,e),t.llEvLisnrs[n]=e},H=function(t,n,e){t.removeEventListener(n,e)},B=function(t){return!!t.llEvLisnrs},J=function(t){if(B(t)){var n=t.llEvLisnrs;for(var e in n){var i=n[e];H(t,e,i)}delete t.llEvLisnrs}},K=function(t,n,e){!function(t){delete t.llTempImage}(t),x(e,-1),function(t){t&&(t.toLoadCount-=1)}(e),w(t,n.class_loading),n.unobserve_completed&&O(t,e)},Q=function(t,n,e){var i=k(t)||t;B(i)||function(t,n,e){B(t)||(t.llEvLisnrs={});var i=\"VIDEO\"===t.tagName?\"loadeddata\":\"load\";q(t,i,n),q(t,\"error\",e)}(i,(function(o){!function(t,n,e,i){var o=y(n);K(n,e,i),L(n,e.class_loaded),h(n,u),I(e.callback_loaded,n,i),o||$(e,i)}(0,t,n,e),J(i)}),(function(o){!function(t,n,e,i){var o=y(n);K(n,e,i),L(n,e.class_error),h(n,f),I(e.callback_error,n,i),o||$(e,i)}(0,t,n,e),J(i)}))},W=function(t,n,e){!function(t){t.llTempImage=document.createElement(\"IMG\")}(t),Q(t,n,e),function(t,n,e){var i=p(t,n.data_bg),o=p(t,n.data_bg_hidpi),a=r&&o?o:i;a&&(t.style.backgroundImage='url(\"'.concat(a,'\")'),k(t).setAttribute(\"src\",a),V(t,n,e))}(t,n,e),function(t,n,e){var i=p(t,n.data_bg_multi),o=p(t,n.data_bg_multi_hidpi),a=r&&o?o:i;a&&(t.style.backgroundImage=a,function(t,n,e){L(t,n.class_applied),h(t,d),n.unobserve_completed&&O(t,n),I(n.callback_applied,t,e)}(t,n,e))}(t,n,e)},X=function(t,n,e){!function(t){return U.indexOf(t.tagName)>-1}(t)?W(t,n,e):function(t,n,e){Q(t,n,e),S(t,n),V(t,n,e)}(t,n,e)},Y=[\"IMG\",\"IFRAME\"],Z=function(t){return t.use_native&&\"loading\"in HTMLImageElement.prototype},tt=function(t,n,e){t.forEach((function(t){return function(t){return t.isIntersecting||t.intersectionRatio>0}(t)?function(t,n,e,i){h(t,\"entered\"),L(t,e.class_entered),w(t,e.class_exited),function(t,n,e){n.unobserve_entered&&O(t,e)}(t,e,i),I(e.callback_enter,t,n,i),function(t){return A.indexOf(b(t))>=0}(t)||X(t,e,i)}(t.target,t,n,e):function(t,n,e,i){E(t)||(L(t,e.class_exited),function(t,n,e,i){e.cancel_on_exit&&function(t){return b(t)===l}(t)&&\"IMG\"===t.tagName&&(J(t),function(t){F(t,(function(t){D(t)})),D(t)}(t),function(t){F(t,(function(t){T(t)})),T(t)}(t),w(t,e.class_loading),x(i,-1),m(t),I(e.callback_cancel,t,n,i))}(t,n,e,i),I(e.callback_exit,t,n,i))}(t.target,t,n,e)}))},nt=function(t){return Array.prototype.slice.call(t)},et=function(t){return t.container.querySelectorAll(t.elements_selector)},it=function(t){return function(t){return b(t)===f}(t)},ot=function(t,n){return function(t){return nt(t).filter(E)}(t||et(n))},rt=function(t,e){var o=c(t);this._settings=o,this.loadingCount=0,function(t,n){i&&!Z(t)&&(n._observer=new IntersectionObserver((function(e){tt(e,t,n)}),function(t){return{root:t.container===document?null:t.container,rootMargin:t.thresholds||t.threshold+\"px\"}}(t)))}(o,this),function(t,e){n&&window.addEventListener(\"online\",(function(){!function(t,n){var e;(e=et(t),nt(e).filter(it)).forEach((function(n){w(n,t.class_error),m(n)})),n.update()}(t,e)}))}(o,this),this.update(e)};return rt.prototype={update:function(t){var n,o,r=this._settings,a=ot(t,r);z(this,a.length),!e&&i?Z(r)?function(t,n,e){t.forEach((function(t){-1!==Y.indexOf(t.tagName)&&(t.setAttribute(\"loading\",\"lazy\"),function(t,n,e){Q(t,n,e),S(t,n),h(t,_)}(t,n,e))})),z(e,0)}(a,r,this):(o=a,function(t){t.disconnect()}(n=this._observer),function(t,n){n.forEach((function(n){t.observe(n)}))}(n,o)):this.loadAll(a)},destroy:function(){this._observer&&this._observer.disconnect(),et(this._settings).forEach((function(t){delete t.llOriginalAttrs})),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var n=this,e=this._settings;ot(t,e).forEach((function(t){O(t,n),X(t,e,n)}))}},rt.load=function(t,n){var e=c(n);X(t,e)},rt.resetStatus=function(t){m(t)},n&&function(t,n){if(n)if(n.length)for(var e,i=0;e=n[i];i+=1)s(t,e);else s(t,n)}(rt,window.lazyLoadOptions),rt}));\n\n\n//# sourceURL=webpack:///./node_modules/vanilla-lazyload/dist/lazyload.min.js?"); /***/ }), /***/ "./node_modules/what-input/dist/what-input.js": /*!****************************************************!*\ !*** ./node_modules/what-input/dist/what-input.js ***! \****************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.10\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(true)\n\t\tmodule.exports = factory();\n\telse {}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = 'false';\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true } : false;\n\n\t document.addEventListener('DOMContentLoaded', setPersist);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput);\n\t window.addEventListener('pointermove', setIntent);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput);\n\t window.addEventListener('MSPointerMove', setIntent);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput);\n\t window.addEventListener('mousemove', setIntent);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput);\n\t window.addEventListener('keyup', setInput);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement);\n\t window.addEventListener('focusout', clearElement);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;\n\n//# sourceURL=webpack:///./node_modules/what-input/dist/what-input.js?"); /***/ }), /***/ 1: /*!***********************************!*\ !*** multi ./js/src/front-end.js ***! \***********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("module.exports = __webpack_require__(/*! /Users/rolle/Projects/airdev/content/themes/air-light/js/src/front-end.js */\"./js/src/front-end.js\");\n\n\n//# sourceURL=webpack:///multi_./js/src/front-end.js?"); /***/ }) /******/ });