{"version":3,"sources":["webpack:///../node_modules/scroll-lock/dist/scroll-lock.js","webpack:///../node_modules/conditioner-core/conditioner-core.js","webpack:///../node_modules/whatwg-fetch/fetch.js","webpack:///../node_modules/abortcontroller-polyfill/dist/abortcontroller-polyfill-only.js","webpack:///../node_modules/webpack/buildin/global.js"],"names":["factory","modules","installedModules","__webpack_require__","moduleId","exports","module","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","argumentAsArray","argument","Array","isArray","isElement","target","Node","eachNode","nodeList","callback","NodeList","isElementList","length","throwError","message","console","error","concat","arrayAsSelector","array","join","nodeListAsArray","nodes","node","push","findParentBySelector","$el","selector","self","arguments","undefined","$root","document","querySelectorAll","indexOf","parentElement","elementHasSelector","has","elementHasOverflowHidden","getComputedStyle","overflow","elementScrollTopOnStart","scrollTop","elementScrollTopOnEnd","scrollHeight","offsetHeight","elementScrollLeftOnStart","scrollLeft","elementScrollLeftOnEnd","scrollWidth","offsetWidth","elementIsScrollableField","elementIsInputRange","_defineProperty","obj","configurable","writable","disablePageScroll","enablePageScroll","getScrollState","clearQueueScrollLocks","scroll_lock_getTargetScrollBarWidth","scroll_lock_getCurrentTargetScrollBarWidth","getPageScrollBarWidth","getCurrentPageScrollBarWidth","scroll_lock_addScrollableTarget","scroll_lock_removeScrollableTarget","scroll_lock_addScrollableSelector","scroll_lock_removeScrollableSelector","scroll_lock_addLockableTarget","scroll_lock_addLockableSelector","scroll_lock_setFillGapMethod","scroll_lock_addFillGapTarget","scroll_lock_removeFillGapTarget","scroll_lock_addFillGapSelector","scroll_lock_removeFillGapSelector","refillGaps","FILL_GAP_AVAILABLE_METHODS","state","scroll","queue","scrollableSelectors","lockableSelectors","fillGapSelectors","fillGapMethod","startTouchY","startTouchX","scroll_lock_hideLockableOverflow","fillGaps","scroll_lock_showLockableOverflow","unfillGaps","$target","onlyExists","currentOverflowYProperty","style","overflowY","getAttribute","width","body","documentWidth","documentElement","clientWidth","window","innerWidth","borderLeftWidthCurrentProperty","borderLeftWidth","borderRightWidthCurrentProperty","borderRightWidth","_currentWidth","map","$targets","setAttribute","removeAttribute","filter","sSelector","method","methods","scroll_lock_fillGapTarget","scroll_lock_unfillGapTarget","scroll_lock_fillGapSelector","fSelector","scroll_lock_unfillGapSelector","scroll_lock_hideLockableOverflowSelector","scroll_lock_showLockableOverflowSelector","scroll_lock_hideLockableOverflowTarget","scroll_lock_showLockableOverflowTarget","computedStyle","isLockable","scrollBarWidth","$lockableParent","currentMargin","parseFloat","marginRight","maxWidth","currentPadding","paddingRight","currentFillGapMethod","addEventListener","e","touches","clientY","clientX","currentClientY","currentClientX","direction","up","down","left","right","directionWithOffset","handle","skip","parentScrollableEl","prevent","cancelable","preventDefault","passive","deprecatedMethods","hide","show","toggle","getState","getWidth","getCurrentWidth","setScrollableTargets","setFillGapSelectors","setFillGapTargets","clearQueue","scrollLock","source","ownKeys","keys","getOwnPropertySymbols","sym","getOwnPropertyDescriptor","forEach","_objectSpread","getTargetScrollBarWidth","getCurrentTargetScrollBarWidth","addScrollableSelector","removeScrollableSelector","addScrollableTarget","removeScrollableTarget","addLockableSelector","addLockableTarget","addFillGapSelector","removeFillGapSelector","addFillGapTarget","removeFillGapTarget","setFillGapMethod","_state","_slicedToArray","arr","iterator","_arr","_n","_d","_e","_s","_i","next","done","err","sliceIterator","TypeError","_toConsumableArray","arr2","from","queryParamsRegex","queryRegex","toContextValue","extractParams","query","_query$match","match","_query$match2","retain","invert","decorateMonitor","monitor","matched","getContextMonitor","element","context","getPlugins","find","Error","contextMonitor","matches","active","onchange","start","monitorSets","monitorSet","addListener","onMonitorEvent","stop","removeListener","destroy","split","subQuery","parseQuery","params","apply","splice","reduce","createContextualModule","boundModule","moduleMonitor","mount","unmount","createModule","unbind","alias","runPlugin","chainPlugins","destruct","mounting","mounted","eachPlugins","onunmount","then","onmount","catch","onmounterror","ondestroy","bindModule","plugins","hydrate","addPlugin","plugin","type","_len","args","_key","_len2","_key2","shift","_len3","_key3","pop","moduleSelector","moduleGetContext","dataset","moduleImport","Promise","resolve","reject","moduleGetConstructor","moduleGetDestructor","moduleExports","moduleSetConstructorArguments","moduleGetName","matchMedia","support","Blob","viewClasses","isArrayBufferView","ArrayBuffer","isView","toString","normalizeName","String","test","toLowerCase","normalizeValue","iteratorFor","items","Headers","headers","this","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","onload","result","onerror","readBlobAsArrayBuffer","blob","FileReader","promise","readAsArrayBuffer","bufferClone","buf","slice","view","Uint8Array","byteLength","set","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","text","readAsText","chars","fromCharCode","readArrayBufferAsText","formData","decode","json","JSON","parse","oldValue","thisArg","values","entries","Request","input","options","upcased","url","credentials","signal","toUpperCase","referrer","form","trim","bytes","replace","decodeURIComponent","Response","bodyInit","status","ok","statusText","clone","response","redirectStatuses","redirect","RangeError","location","DOMException","stack","constructor","fetch","init","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","line","parts","responseURL","responseText","ontimeout","onabort","open","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","removeEventListener","send","polyfill","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_isNativeReflectConstruct","Super","NewTarget","_get","receiver","base","_superPropBase","desc","Emitter","listeners","event","stackToCall","listener","once","defaultPrevented","AbortSignal","_Emitter","subClass","superClass","_inherits","_super","_this","AbortController","Event","createEvent","initEvent","createEventObject","bubbles","dispatchEvent","__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL","log","polyfillNeeded","global","g","Function"],"mappings":"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","file":"vendors~app.8b5f22b51d3914d73d7e.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"scrollLock\"] = factory();\n\telse\n\t\troot[\"scrollLock\"] = factory();\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/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./src/tools.js\nvar argumentAsArray = function argumentAsArray(argument) {\n return Array.isArray(argument) ? argument : [argument];\n};\nvar isElement = function isElement(target) {\n return target instanceof Node;\n};\nvar isElementList = function isElementList(nodeList) {\n return nodeList instanceof NodeList;\n};\nvar eachNode = function eachNode(nodeList, callback) {\n if (nodeList && callback) {\n nodeList = isElementList(nodeList) ? nodeList : [nodeList];\n\n for (var i = 0; i < nodeList.length; i++) {\n if (callback(nodeList[i], i, nodeList.length) === true) {\n break;\n }\n }\n }\n};\nvar throwError = function throwError(message) {\n return console.error(\"[scroll-lock] \".concat(message));\n};\nvar arrayAsSelector = function arrayAsSelector(array) {\n if (Array.isArray(array)) {\n var selector = array.join(', ');\n return selector;\n }\n};\nvar nodeListAsArray = function nodeListAsArray(nodeList) {\n var nodes = [];\n eachNode(nodeList, function (node) {\n return nodes.push(node);\n });\n return nodes;\n};\nvar findParentBySelector = function findParentBySelector($el, selector) {\n var self = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var $root = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document;\n\n if (self && nodeListAsArray($root.querySelectorAll(selector)).indexOf($el) !== -1) {\n return $el;\n }\n\n while (($el = $el.parentElement) && nodeListAsArray($root.querySelectorAll(selector)).indexOf($el) === -1) {\n ;\n }\n\n return $el;\n};\nvar elementHasSelector = function elementHasSelector($el, selector) {\n var $root = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n var has = nodeListAsArray($root.querySelectorAll(selector)).indexOf($el) !== -1;\n return has;\n};\nvar elementHasOverflowHidden = function elementHasOverflowHidden($el) {\n if ($el) {\n var computedStyle = getComputedStyle($el);\n var overflowIsHidden = computedStyle.overflow === 'hidden';\n return overflowIsHidden;\n }\n};\nvar elementScrollTopOnStart = function elementScrollTopOnStart($el) {\n if ($el) {\n if (elementHasOverflowHidden($el)) {\n return true;\n }\n\n var scrollTop = $el.scrollTop;\n return scrollTop <= 0;\n }\n};\nvar elementScrollTopOnEnd = function elementScrollTopOnEnd($el) {\n if ($el) {\n if (elementHasOverflowHidden($el)) {\n return true;\n }\n\n var scrollTop = $el.scrollTop;\n var scrollHeight = $el.scrollHeight;\n var scrollTopWithHeight = scrollTop + $el.offsetHeight;\n return scrollTopWithHeight >= scrollHeight;\n }\n};\nvar elementScrollLeftOnStart = function elementScrollLeftOnStart($el) {\n if ($el) {\n if (elementHasOverflowHidden($el)) {\n return true;\n }\n\n var scrollLeft = $el.scrollLeft;\n return scrollLeft <= 0;\n }\n};\nvar elementScrollLeftOnEnd = function elementScrollLeftOnEnd($el) {\n if ($el) {\n if (elementHasOverflowHidden($el)) {\n return true;\n }\n\n var scrollLeft = $el.scrollLeft;\n var scrollWidth = $el.scrollWidth;\n var scrollLeftWithWidth = scrollLeft + $el.offsetWidth;\n return scrollLeftWithWidth >= scrollWidth;\n }\n};\nvar elementIsScrollableField = function elementIsScrollableField($el) {\n var selector = 'textarea, [contenteditable=\"true\"]';\n return elementHasSelector($el, selector);\n};\nvar elementIsInputRange = function elementIsInputRange($el) {\n var selector = 'input[type=\"range\"]';\n return elementHasSelector($el, selector);\n};\n// CONCATENATED MODULE: ./src/scroll-lock.js\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"disablePageScroll\", function() { return disablePageScroll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enablePageScroll\", function() { return enablePageScroll; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getScrollState\", function() { return getScrollState; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"clearQueueScrollLocks\", function() { return clearQueueScrollLocks; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getTargetScrollBarWidth\", function() { return scroll_lock_getTargetScrollBarWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCurrentTargetScrollBarWidth\", function() { return scroll_lock_getCurrentTargetScrollBarWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getPageScrollBarWidth\", function() { return getPageScrollBarWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getCurrentPageScrollBarWidth\", function() { return getCurrentPageScrollBarWidth; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addScrollableTarget\", function() { return scroll_lock_addScrollableTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeScrollableTarget\", function() { return scroll_lock_removeScrollableTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addScrollableSelector\", function() { return scroll_lock_addScrollableSelector; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeScrollableSelector\", function() { return scroll_lock_removeScrollableSelector; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addLockableTarget\", function() { return scroll_lock_addLockableTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addLockableSelector\", function() { return scroll_lock_addLockableSelector; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setFillGapMethod\", function() { return scroll_lock_setFillGapMethod; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addFillGapTarget\", function() { return scroll_lock_addFillGapTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeFillGapTarget\", function() { return scroll_lock_removeFillGapTarget; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"addFillGapSelector\", function() { return scroll_lock_addFillGapSelector; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"removeFillGapSelector\", function() { return scroll_lock_removeFillGapSelector; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"refillGaps\", function() { return refillGaps; });\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\nvar FILL_GAP_AVAILABLE_METHODS = ['padding', 'margin', 'width', 'max-width', 'none'];\nvar TOUCH_DIRECTION_DETECT_OFFSET = 3;\nvar state = {\n scroll: true,\n queue: 0,\n scrollableSelectors: ['[data-scroll-lock-scrollable]'],\n lockableSelectors: ['body', '[data-scroll-lock-lockable]'],\n fillGapSelectors: ['body', '[data-scroll-lock-fill-gap]', '[data-scroll-lock-lockable]'],\n fillGapMethod: FILL_GAP_AVAILABLE_METHODS[0],\n //\n startTouchY: 0,\n startTouchX: 0\n};\nvar disablePageScroll = function disablePageScroll(target) {\n if (state.queue <= 0) {\n state.scroll = false;\n scroll_lock_hideLockableOverflow();\n fillGaps();\n }\n\n scroll_lock_addScrollableTarget(target);\n state.queue++;\n};\nvar enablePageScroll = function enablePageScroll(target) {\n state.queue > 0 && state.queue--;\n\n if (state.queue <= 0) {\n state.scroll = true;\n scroll_lock_showLockableOverflow();\n unfillGaps();\n }\n\n scroll_lock_removeScrollableTarget(target);\n};\nvar getScrollState = function getScrollState() {\n return state.scroll;\n};\nvar clearQueueScrollLocks = function clearQueueScrollLocks() {\n state.queue = 0;\n};\nvar scroll_lock_getTargetScrollBarWidth = function getTargetScrollBarWidth($target) {\n var onlyExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isElement($target)) {\n var currentOverflowYProperty = $target.style.overflowY;\n\n if (onlyExists) {\n if (!getScrollState()) {\n $target.style.overflowY = $target.getAttribute('data-scroll-lock-saved-overflow-y-property');\n }\n } else {\n $target.style.overflowY = 'scroll';\n }\n\n var width = scroll_lock_getCurrentTargetScrollBarWidth($target);\n $target.style.overflowY = currentOverflowYProperty;\n return width;\n } else {\n return 0;\n }\n};\nvar scroll_lock_getCurrentTargetScrollBarWidth = function getCurrentTargetScrollBarWidth($target) {\n if (isElement($target)) {\n if ($target === document.body) {\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n var currentWidth = windowWidth - documentWidth;\n return currentWidth;\n } else {\n var borderLeftWidthCurrentProperty = $target.style.borderLeftWidth;\n var borderRightWidthCurrentProperty = $target.style.borderRightWidth;\n $target.style.borderLeftWidth = '0px';\n $target.style.borderRightWidth = '0px';\n\n var _currentWidth = $target.offsetWidth - $target.clientWidth;\n\n $target.style.borderLeftWidth = borderLeftWidthCurrentProperty;\n $target.style.borderRightWidth = borderRightWidthCurrentProperty;\n return _currentWidth;\n }\n } else {\n return 0;\n }\n};\nvar getPageScrollBarWidth = function getPageScrollBarWidth() {\n var onlyExists = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return scroll_lock_getTargetScrollBarWidth(document.body, onlyExists);\n};\nvar getCurrentPageScrollBarWidth = function getCurrentPageScrollBarWidth() {\n return scroll_lock_getCurrentTargetScrollBarWidth(document.body);\n};\nvar scroll_lock_addScrollableTarget = function addScrollableTarget(target) {\n if (target) {\n var targets = argumentAsArray(target);\n targets.map(function ($targets) {\n eachNode($targets, function ($target) {\n if (isElement($target)) {\n $target.setAttribute('data-scroll-lock-scrollable', '');\n } else {\n throwError(\"\\\"\".concat($target, \"\\\" is not a Element.\"));\n }\n });\n });\n }\n};\nvar scroll_lock_removeScrollableTarget = function removeScrollableTarget(target) {\n if (target) {\n var targets = argumentAsArray(target);\n targets.map(function ($targets) {\n eachNode($targets, function ($target) {\n if (isElement($target)) {\n $target.removeAttribute('data-scroll-lock-scrollable');\n } else {\n throwError(\"\\\"\".concat($target, \"\\\" is not a Element.\"));\n }\n });\n });\n }\n};\nvar scroll_lock_addScrollableSelector = function addScrollableSelector(selector) {\n if (selector) {\n var selectors = argumentAsArray(selector);\n selectors.map(function (selector) {\n state.scrollableSelectors.push(selector);\n });\n }\n};\nvar scroll_lock_removeScrollableSelector = function removeScrollableSelector(selector) {\n if (selector) {\n var selectors = argumentAsArray(selector);\n selectors.map(function (selector) {\n state.scrollableSelectors = state.scrollableSelectors.filter(function (sSelector) {\n return sSelector !== selector;\n });\n });\n }\n};\nvar scroll_lock_addLockableTarget = function addLockableTarget(target) {\n if (target) {\n var targets = argumentAsArray(target);\n targets.map(function ($targets) {\n eachNode($targets, function ($target) {\n if (isElement($target)) {\n $target.setAttribute('data-scroll-lock-lockable', '');\n } else {\n throwError(\"\\\"\".concat($target, \"\\\" is not a Element.\"));\n }\n });\n });\n\n if (!getScrollState()) {\n scroll_lock_hideLockableOverflow();\n }\n }\n};\nvar scroll_lock_addLockableSelector = function addLockableSelector(selector) {\n if (selector) {\n var selectors = argumentAsArray(selector);\n selectors.map(function (selector) {\n state.lockableSelectors.push(selector);\n });\n\n if (!getScrollState()) {\n scroll_lock_hideLockableOverflow();\n }\n\n scroll_lock_addFillGapSelector(selector);\n }\n};\nvar scroll_lock_setFillGapMethod = function setFillGapMethod(method) {\n if (method) {\n if (FILL_GAP_AVAILABLE_METHODS.indexOf(method) !== -1) {\n state.fillGapMethod = method;\n refillGaps();\n } else {\n var methods = FILL_GAP_AVAILABLE_METHODS.join(', ');\n throwError(\"\\\"\".concat(method, \"\\\" method is not available!\\nAvailable fill gap methods: \").concat(methods, \".\"));\n }\n }\n};\nvar scroll_lock_addFillGapTarget = function addFillGapTarget(target) {\n if (target) {\n var targets = argumentAsArray(target);\n targets.map(function ($targets) {\n eachNode($targets, function ($target) {\n if (isElement($target)) {\n $target.setAttribute('data-scroll-lock-fill-gap', '');\n\n if (!state.scroll) {\n scroll_lock_fillGapTarget($target);\n }\n } else {\n throwError(\"\\\"\".concat($target, \"\\\" is not a Element.\"));\n }\n });\n });\n }\n};\nvar scroll_lock_removeFillGapTarget = function removeFillGapTarget(target) {\n if (target) {\n var targets = argumentAsArray(target);\n targets.map(function ($targets) {\n eachNode($targets, function ($target) {\n if (isElement($target)) {\n $target.removeAttribute('data-scroll-lock-fill-gap');\n\n if (!state.scroll) {\n scroll_lock_unfillGapTarget($target);\n }\n } else {\n throwError(\"\\\"\".concat($target, \"\\\" is not a Element.\"));\n }\n });\n });\n }\n};\nvar scroll_lock_addFillGapSelector = function addFillGapSelector(selector) {\n if (selector) {\n var selectors = argumentAsArray(selector);\n selectors.map(function (selector) {\n if (state.fillGapSelectors.indexOf(selector) === -1) {\n state.fillGapSelectors.push(selector);\n\n if (!state.scroll) {\n scroll_lock_fillGapSelector(selector);\n }\n }\n });\n }\n};\nvar scroll_lock_removeFillGapSelector = function removeFillGapSelector(selector) {\n if (selector) {\n var selectors = argumentAsArray(selector);\n selectors.map(function (selector) {\n state.fillGapSelectors = state.fillGapSelectors.filter(function (fSelector) {\n return fSelector !== selector;\n });\n\n if (!state.scroll) {\n scroll_lock_unfillGapSelector(selector);\n }\n });\n }\n};\nvar refillGaps = function refillGaps() {\n if (!state.scroll) {\n fillGaps();\n }\n};\n\nvar scroll_lock_hideLockableOverflow = function hideLockableOverflow() {\n var selector = arrayAsSelector(state.lockableSelectors);\n scroll_lock_hideLockableOverflowSelector(selector);\n};\n\nvar scroll_lock_showLockableOverflow = function showLockableOverflow() {\n var selector = arrayAsSelector(state.lockableSelectors);\n scroll_lock_showLockableOverflowSelector(selector);\n};\n\nvar scroll_lock_hideLockableOverflowSelector = function hideLockableOverflowSelector(selector) {\n var $targets = document.querySelectorAll(selector);\n eachNode($targets, function ($target) {\n scroll_lock_hideLockableOverflowTarget($target);\n });\n};\n\nvar scroll_lock_showLockableOverflowSelector = function showLockableOverflowSelector(selector) {\n var $targets = document.querySelectorAll(selector);\n eachNode($targets, function ($target) {\n scroll_lock_showLockableOverflowTarget($target);\n });\n};\n\nvar scroll_lock_hideLockableOverflowTarget = function hideLockableOverflowTarget($target) {\n if (isElement($target) && $target.getAttribute('data-scroll-lock-locked') !== 'true') {\n var computedStyle = window.getComputedStyle($target);\n $target.setAttribute('data-scroll-lock-saved-overflow-y-property', computedStyle.overflowY);\n $target.setAttribute('data-scroll-lock-saved-inline-overflow-property', $target.style.overflow);\n $target.setAttribute('data-scroll-lock-saved-inline-overflow-y-property', $target.style.overflowY);\n $target.style.overflow = 'hidden';\n $target.setAttribute('data-scroll-lock-locked', 'true');\n }\n};\n\nvar scroll_lock_showLockableOverflowTarget = function showLockableOverflowTarget($target) {\n if (isElement($target) && $target.getAttribute('data-scroll-lock-locked') === 'true') {\n $target.style.overflow = $target.getAttribute('data-scroll-lock-saved-inline-overflow-property');\n $target.style.overflowY = $target.getAttribute('data-scroll-lock-saved-inline-overflow-y-property');\n $target.removeAttribute('data-scroll-lock-saved-overflow-property');\n $target.removeAttribute('data-scroll-lock-saved-inline-overflow-property');\n $target.removeAttribute('data-scroll-lock-saved-inline-overflow-y-property');\n $target.removeAttribute('data-scroll-lock-locked');\n }\n};\n\nvar fillGaps = function fillGaps() {\n state.fillGapSelectors.map(function (selector) {\n scroll_lock_fillGapSelector(selector);\n });\n};\n\nvar unfillGaps = function unfillGaps() {\n state.fillGapSelectors.map(function (selector) {\n scroll_lock_unfillGapSelector(selector);\n });\n};\n\nvar scroll_lock_fillGapSelector = function fillGapSelector(selector) {\n var $targets = document.querySelectorAll(selector);\n var isLockable = state.lockableSelectors.indexOf(selector) !== -1;\n eachNode($targets, function ($target) {\n scroll_lock_fillGapTarget($target, isLockable);\n });\n};\n\nvar scroll_lock_fillGapTarget = function fillGapTarget($target) {\n var isLockable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isElement($target)) {\n var scrollBarWidth;\n\n if ($target.getAttribute('data-scroll-lock-lockable') === '' || isLockable) {\n scrollBarWidth = scroll_lock_getTargetScrollBarWidth($target, true);\n } else {\n var $lockableParent = findParentBySelector($target, arrayAsSelector(state.lockableSelectors));\n scrollBarWidth = scroll_lock_getTargetScrollBarWidth($lockableParent, true);\n }\n\n if ($target.getAttribute('data-scroll-lock-filled-gap') === 'true') {\n scroll_lock_unfillGapTarget($target);\n }\n\n var computedStyle = window.getComputedStyle($target);\n $target.setAttribute('data-scroll-lock-filled-gap', 'true');\n $target.setAttribute('data-scroll-lock-current-fill-gap-method', state.fillGapMethod);\n\n if (state.fillGapMethod === 'margin') {\n var currentMargin = parseFloat(computedStyle.marginRight);\n $target.style.marginRight = \"\".concat(currentMargin + scrollBarWidth, \"px\");\n } else if (state.fillGapMethod === 'width') {\n $target.style.width = \"calc(100% - \".concat(scrollBarWidth, \"px)\");\n } else if (state.fillGapMethod === 'max-width') {\n $target.style.maxWidth = \"calc(100% - \".concat(scrollBarWidth, \"px)\");\n } else if (state.fillGapMethod === 'padding') {\n var currentPadding = parseFloat(computedStyle.paddingRight);\n $target.style.paddingRight = \"\".concat(currentPadding + scrollBarWidth, \"px\");\n }\n }\n};\n\nvar scroll_lock_unfillGapSelector = function unfillGapSelector(selector) {\n var $targets = document.querySelectorAll(selector);\n eachNode($targets, function ($target) {\n scroll_lock_unfillGapTarget($target);\n });\n};\n\nvar scroll_lock_unfillGapTarget = function unfillGapTarget($target) {\n if (isElement($target)) {\n if ($target.getAttribute('data-scroll-lock-filled-gap') === 'true') {\n var currentFillGapMethod = $target.getAttribute('data-scroll-lock-current-fill-gap-method');\n $target.removeAttribute('data-scroll-lock-filled-gap');\n $target.removeAttribute('data-scroll-lock-current-fill-gap-method');\n\n if (currentFillGapMethod === 'margin') {\n $target.style.marginRight = \"\";\n } else if (currentFillGapMethod === 'width') {\n $target.style.width = \"\";\n } else if (currentFillGapMethod === 'max-width') {\n $target.style.maxWidth = \"\";\n } else if (currentFillGapMethod === 'padding') {\n $target.style.paddingRight = \"\";\n }\n }\n }\n};\n\nvar onResize = function onResize(e) {\n refillGaps();\n};\n\nvar onTouchStart = function onTouchStart(e) {\n if (!state.scroll) {\n state.startTouchY = e.touches[0].clientY;\n state.startTouchX = e.touches[0].clientX;\n }\n};\n\nvar scroll_lock_onTouchMove = function onTouchMove(e) {\n if (!state.scroll) {\n var startTouchY = state.startTouchY,\n startTouchX = state.startTouchX;\n var currentClientY = e.touches[0].clientY;\n var currentClientX = e.touches[0].clientX;\n\n if (e.touches.length < 2) {\n var selector = arrayAsSelector(state.scrollableSelectors);\n var direction = {\n up: startTouchY < currentClientY,\n down: startTouchY > currentClientY,\n left: startTouchX < currentClientX,\n right: startTouchX > currentClientX\n };\n var directionWithOffset = {\n up: startTouchY + TOUCH_DIRECTION_DETECT_OFFSET < currentClientY,\n down: startTouchY - TOUCH_DIRECTION_DETECT_OFFSET > currentClientY,\n left: startTouchX + TOUCH_DIRECTION_DETECT_OFFSET < currentClientX,\n right: startTouchX - TOUCH_DIRECTION_DETECT_OFFSET > currentClientX\n };\n\n var handle = function handle($el) {\n var skip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if ($el) {\n var parentScrollableEl = findParentBySelector($el, selector, false);\n\n if (elementIsInputRange($el)) {\n return false;\n }\n\n if (skip || elementIsScrollableField($el) && findParentBySelector($el, selector) || elementHasSelector($el, selector)) {\n var prevent = false;\n\n if (elementScrollLeftOnStart($el) && elementScrollLeftOnEnd($el)) {\n if (direction.up && elementScrollTopOnStart($el) || direction.down && elementScrollTopOnEnd($el)) {\n prevent = true;\n }\n } else if (elementScrollTopOnStart($el) && elementScrollTopOnEnd($el)) {\n if (direction.left && elementScrollLeftOnStart($el) || direction.right && elementScrollLeftOnEnd($el)) {\n prevent = true;\n }\n } else if (directionWithOffset.up && elementScrollTopOnStart($el) || directionWithOffset.down && elementScrollTopOnEnd($el) || directionWithOffset.left && elementScrollLeftOnStart($el) || directionWithOffset.right && elementScrollLeftOnEnd($el)) {\n prevent = true;\n }\n\n if (prevent) {\n if (parentScrollableEl) {\n handle(parentScrollableEl, true);\n } else {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n }\n } else {\n handle(parentScrollableEl);\n }\n } else {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n\n handle(e.target);\n }\n }\n};\n\nvar onTouchEnd = function onTouchEnd(e) {\n if (!state.scroll) {\n state.startTouchY = 0;\n state.startTouchX = 0;\n }\n};\n\nif (typeof window !== 'undefined') {\n window.addEventListener('resize', onResize);\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('touchstart', onTouchStart);\n document.addEventListener('touchmove', scroll_lock_onTouchMove, {\n passive: false\n });\n document.addEventListener('touchend', onTouchEnd);\n}\n\nvar deprecatedMethods = {\n hide: function hide(target) {\n throwError('\"hide\" is deprecated! Use \"disablePageScroll\" instead. \\n https://github.com/FL3NKEY/scroll-lock#disablepagescrollscrollabletarget');\n disablePageScroll(target);\n },\n show: function show(target) {\n throwError('\"show\" is deprecated! Use \"enablePageScroll\" instead. \\n https://github.com/FL3NKEY/scroll-lock#enablepagescrollscrollabletarget');\n enablePageScroll(target);\n },\n toggle: function toggle(target) {\n throwError('\"toggle\" is deprecated! Do not use it.');\n\n if (getScrollState()) {\n disablePageScroll();\n } else {\n enablePageScroll(target);\n }\n },\n getState: function getState() {\n throwError('\"getState\" is deprecated! Use \"getScrollState\" instead. \\n https://github.com/FL3NKEY/scroll-lock#getscrollstate');\n return getScrollState();\n },\n getWidth: function getWidth() {\n throwError('\"getWidth\" is deprecated! Use \"getPageScrollBarWidth\" instead. \\n https://github.com/FL3NKEY/scroll-lock#getpagescrollbarwidth');\n return getPageScrollBarWidth();\n },\n getCurrentWidth: function getCurrentWidth() {\n throwError('\"getCurrentWidth\" is deprecated! Use \"getCurrentPageScrollBarWidth\" instead. \\n https://github.com/FL3NKEY/scroll-lock#getcurrentpagescrollbarwidth');\n return getCurrentPageScrollBarWidth();\n },\n setScrollableTargets: function setScrollableTargets(target) {\n throwError('\"setScrollableTargets\" is deprecated! Use \"addScrollableTarget\" instead. \\n https://github.com/FL3NKEY/scroll-lock#addscrollabletargetscrollabletarget');\n scroll_lock_addScrollableTarget(target);\n },\n setFillGapSelectors: function setFillGapSelectors(selector) {\n throwError('\"setFillGapSelectors\" is deprecated! Use \"addFillGapSelector\" instead. \\n https://github.com/FL3NKEY/scroll-lock#addfillgapselectorfillgapselector');\n scroll_lock_addFillGapSelector(selector);\n },\n setFillGapTargets: function setFillGapTargets(target) {\n throwError('\"setFillGapTargets\" is deprecated! Use \"addFillGapTarget\" instead. \\n https://github.com/FL3NKEY/scroll-lock#addfillgaptargetfillgaptarget');\n scroll_lock_addFillGapTarget(target);\n },\n clearQueue: function clearQueue() {\n throwError('\"clearQueue\" is deprecated! Use \"clearQueueScrollLocks\" instead. \\n https://github.com/FL3NKEY/scroll-lock#clearqueuescrolllocks');\n clearQueueScrollLocks();\n }\n};\n\nvar scrollLock = _objectSpread({\n disablePageScroll: disablePageScroll,\n enablePageScroll: enablePageScroll,\n getScrollState: getScrollState,\n clearQueueScrollLocks: clearQueueScrollLocks,\n getTargetScrollBarWidth: scroll_lock_getTargetScrollBarWidth,\n getCurrentTargetScrollBarWidth: scroll_lock_getCurrentTargetScrollBarWidth,\n getPageScrollBarWidth: getPageScrollBarWidth,\n getCurrentPageScrollBarWidth: getCurrentPageScrollBarWidth,\n addScrollableSelector: scroll_lock_addScrollableSelector,\n removeScrollableSelector: scroll_lock_removeScrollableSelector,\n addScrollableTarget: scroll_lock_addScrollableTarget,\n removeScrollableTarget: scroll_lock_removeScrollableTarget,\n addLockableSelector: scroll_lock_addLockableSelector,\n addLockableTarget: scroll_lock_addLockableTarget,\n addFillGapSelector: scroll_lock_addFillGapSelector,\n removeFillGapSelector: scroll_lock_removeFillGapSelector,\n addFillGapTarget: scroll_lock_addFillGapTarget,\n removeFillGapTarget: scroll_lock_removeFillGapTarget,\n setFillGapMethod: scroll_lock_setFillGapMethod,\n refillGaps: refillGaps,\n _state: state\n}, deprecatedMethods);\n\n/* harmony default export */ var scroll_lock = __webpack_exports__[\"default\"] = (scrollLock);\n\n/***/ })\n/******/ ])[\"default\"];\n});","/* conditioner-core 2.3.3 */\n(function (global, factory) {\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(['exports'], factory);\n\t} else if (typeof exports !== \"undefined\") {\n\t\tfactory(exports);\n\t} else {\n\t\tvar mod = {\n\t\t\texports: {}\n\t\t};\n\t\tfactory(mod.exports);\n\t\tglobal.conditioner = mod.exports;\n\t}\n})(this, function (exports) {\n\t'use strict';\n\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\n\tvar _slicedToArray = function () {\n\t\tfunction sliceIterator(arr, i) {\n\t\t\tvar _arr = [];\n\t\t\tvar _n = true;\n\t\t\tvar _d = false;\n\t\t\tvar _e = undefined;\n\n\t\t\ttry {\n\t\t\t\tfor (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n\t\t\t\t\t_arr.push(_s.value);\n\n\t\t\t\t\tif (i && _arr.length === i) break;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\t_d = true;\n\t\t\t\t_e = err;\n\t\t\t} finally {\n\t\t\t\ttry {\n\t\t\t\t\tif (!_n && _i[\"return\"]) _i[\"return\"]();\n\t\t\t\t} finally {\n\t\t\t\t\tif (_d) throw _e;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn _arr;\n\t\t}\n\n\t\treturn function (arr, i) {\n\t\t\tif (Array.isArray(arr)) {\n\t\t\t\treturn arr;\n\t\t\t} else if (Symbol.iterator in Object(arr)) {\n\t\t\t\treturn sliceIterator(arr, i);\n\t\t\t} else {\n\t\t\t\tthrow new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n\t\t\t}\n\t\t};\n\t}();\n\n\tfunction _toConsumableArray(arr) {\n\t\tif (Array.isArray(arr)) {\n\t\t\tfor (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n\t\t\t\tarr2[i] = arr[i];\n\t\t\t}\n\n\t\t\treturn arr2;\n\t\t} else {\n\t\t\treturn Array.from(arr);\n\t\t}\n\t}\n\n\t// links the module to the element and exposes a callback api object\n\tvar bindModule = function bindModule(element, unbind) {\n\t\t// gets the name of the module from the element, we assume the name is an alias\n\t\tvar alias = runPlugin('moduleGetName', element);\n\n\t\t// sets the name of the plugin, this does nothing by default but allows devs to turn an alias into the actual module name\n\t\tvar name = chainPlugins('moduleSetName', alias);\n\n\t\t// internal state\n\t\tvar state = {\n\t\t\tdestruct: null, // holder for unload method (function returned by module constructor)\n\t\t\tmounting: false\n\t\t};\n\n\t\t// api wrapped around module object\n\t\tvar boundModule = {\n\t\t\t// original name as found on the element\n\t\t\talias: alias,\n\n\t\t\t// transformed name\n\t\t\tname: name,\n\n\t\t\t// reference to the element the module is bound to\n\t\t\telement: element,\n\n\t\t\t// is the module currently mounted?\n\t\t\tmounted: false,\n\n\t\t\t// unmounts the module\n\t\t\tunmount: function unmount() {\n\t\t\t\t// can't be unmounted if no destroy method has been supplied\n\t\t\t\t// can't be unmounted if not mounted\n\t\t\t\tif (!state.destruct || !boundModule.mounted) return;\n\n\t\t\t\t// about to unmount the module\n\t\t\t\teachPlugins('moduleWillUnmount', boundModule);\n\n\t\t\t\t// clean up\n\t\t\t\tstate.destruct();\n\n\t\t\t\t// no longer mounted\n\t\t\t\tboundModule.mounted = false;\n\n\t\t\t\t// done unmounting the module\n\t\t\t\teachPlugins('moduleDidUnmount', boundModule);\n\n\t\t\t\t// done unmounting\n\t\t\t\tboundModule.onunmount.apply(element);\n\t\t\t},\n\n\t\t\t// requests and loads the module\n\t\t\tmount: function mount() {\n\t\t\t\t// can't mount an already mounted module\n\t\t\t\t// can't mount a module that is currently mounting\n\t\t\t\tif (boundModule.mounted || state.mounting) return;\n\n\t\t\t\t// now mounting module\n\t\t\t\tstate.mounting = true;\n\n\t\t\t\t// about to mount the module\n\t\t\t\teachPlugins('moduleWillMount', boundModule);\n\n\t\t\t\t// get the module\n\t\t\t\trunPlugin('moduleImport', name).then(function (module) {\n\t\t\t\t\t// initialise the module, module can return a destroy mehod\n\t\t\t\t\tstate.destruct = runPlugin('moduleGetDestructor', runPlugin('moduleGetConstructor', module).apply(undefined, _toConsumableArray(runPlugin('moduleSetConstructorArguments', name, element))));\n\n\t\t\t\t\t// no longer mounting\n\t\t\t\t\tstate.mounting = false;\n\n\t\t\t\t\t// module is now mounted\n\t\t\t\t\tboundModule.mounted = true;\n\n\t\t\t\t\t// did mount the module\n\t\t\t\t\teachPlugins('moduleDidMount', boundModule);\n\n\t\t\t\t\t// module has now loaded lets fire the onload event so everyone knows about it\n\t\t\t\t\tboundModule.onmount.apply(element, [boundModule]);\n\t\t\t\t}).catch(function (error) {\n\t\t\t\t\t// failed to mount so no longer mounting\n\t\t\t\t\tstate.mounting = false;\n\n\t\t\t\t\t// failed to mount the module\n\t\t\t\t\teachPlugins('moduleDidCatch', error, boundModule);\n\n\t\t\t\t\t// callback for this specific module\n\t\t\t\t\tboundModule.onmounterror.apply(element, [error, boundModule]);\n\n\t\t\t\t\t// let dev know\n\t\t\t\t\tthrow new Error('Conditioner: ' + error);\n\t\t\t\t});\n\n\t\t\t\t// return state object\n\t\t\t\treturn boundModule;\n\t\t\t},\n\n\t\t\t// unmounts the module and destroys the attached monitors\n\t\t\tdestroy: function destroy() {\n\n\t\t\t\t// about to destroy the module\n\t\t\t\teachPlugins('moduleWillDestroy', boundModule);\n\n\t\t\t\t// not implemented yet\n\t\t\t\tboundModule.unmount();\n\n\t\t\t\t// did destroy the module\n\t\t\t\teachPlugins('moduleDidDestroy', boundModule);\n\n\t\t\t\t// call public ondestroy so dev can handle it as well\n\t\t\t\tboundModule.ondestroy.apply(element);\n\n\t\t\t\t// call the destroy callback so monitor can be removed as well\n\t\t\t\tunbind();\n\t\t\t},\n\n\t\t\t// called when fails to bind the module\n\t\t\tonmounterror: function onmounterror() {},\n\n\t\t\t// called when the module is loaded, receives the state object, scope is set to element\n\t\t\tonmount: function onmount() {},\n\n\t\t\t// called when the module is unloaded, scope is set to element\n\t\t\tonunmount: function onunmount() {},\n\n\t\t\t// called when the module is destroyed\n\t\t\tondestroy: function ondestroy() {}\n\t\t};\n\n\t\t// done!\n\t\treturn boundModule;\n\t};\n\n\tvar queryParamsRegex = /(was)? ?(not)? ?@([a-z]+) ?(.*)?/;\n\tvar queryRegex = /(?:was )?(?:not )?@[a-z]+ ?.*?(?:(?= and (?:was )?(?:not )?@[a-z])|$)/g;\n\n\t// convert context values to booleans if value is undefined or a boolean described as string\n\tvar toContextValue = function toContextValue(value) {\n\t\treturn typeof value === 'undefined' || value === 'true' ? true : value === 'false' ? false : value;\n\t};\n\n\tvar extractParams = function extractParams(query) {\n\t\tvar _query$match = query.match(queryParamsRegex),\n\t\t _query$match2 = _slicedToArray(_query$match, 5),\n\t\t retain = _query$match2[1],\n\t\t invert = _query$match2[2],\n\t\t name = _query$match2[3],\n\t\t value = _query$match2[4];\n\n\t\t// extract groups, we ignore the first array index which is the entire matches string\n\t\treturn [name, toContextValue(value), invert === 'not', retain === 'was'];\n\t};\n\n\t// @media (min-width:30em) and was @visible true -> [ ['media', '(min-width:30em)', false, false], ['visible', 'true', false, true] ]\n\tvar parseQuery = function parseQuery(query) {\n\t\treturn query.match(queryRegex).map(extractParams);\n\t};\n\n\t// add intert and retain properties to monitor\n\tvar decorateMonitor = function decorateMonitor(monitor, invert, retain) {\n\t\tmonitor.invert = invert;\n\t\tmonitor.retain = retain;\n\t\tmonitor.matched = false;\n\t\treturn monitor;\n\t};\n\n\t// finds monitor plugins and calls the create method on the first found monitor\n\tvar getContextMonitor = function getContextMonitor(element, name, context) {\n\t\tvar monitor = getPlugins('monitor').find(function (monitor) {\n\t\t\treturn monitor.name === name;\n\t\t});\n\t\t// @exclude\n\t\tif (!monitor) {\n\t\t\tthrow new Error('Conditioner: Cannot find monitor with name \"@' + name + '\". Only the \"@media\" monitor is always available. Custom monitors can be added with the `addPlugin` method using the `monitors` key. The name of the custom monitor should not include the \"@\" symbol.');\n\t\t}\n\t\t// @endexclude\n\t\treturn monitor.create(context, element);\n\t};\n\n\t// test if monitor contexts are currently valid\n\tvar matchMonitors = function matchMonitors(monitors) {\n\t\treturn monitors.reduce(function (matches, monitor) {\n\t\t\t// an earlier monitor returned false, so current context will no longer be suitable\n\t\t\tif (!matches) return false;\n\n\t\t\t// get current match state, takes \"not\" into account\n\t\t\tvar matched = monitor.invert ? !monitor.matches : monitor.matches;\n\n\t\t\t// mark monitor as has been matched in the past\n\t\t\tif (matched) monitor.matched = true;\n\n\t\t\t// if retain is enabled with \"was\" and the monitor has been matched in the past, there's a match\n\t\t\tif (monitor.retain && monitor.matched) return true;\n\n\t\t\t// return current match state\n\t\t\treturn matched;\n\t\t},\n\n\t\t// initial value is always match\n\t\ttrue);\n\t};\n\n\tvar monitor = exports.monitor = function monitor(query, element) {\n\t\t// setup monitor api\n\t\tvar contextMonitor = {\n\t\t\tmatches: false,\n\t\t\tactive: false,\n\t\t\tonchange: function onchange() {},\n\t\t\tstart: function start() {\n\t\t\t\t// cannot be activated when already active\n\t\t\t\tif (contextMonitor.active) return;\n\n\t\t\t\t// now activating\n\t\t\t\tcontextMonitor.active = true;\n\n\t\t\t\t// listen for context changes\n\t\t\t\tmonitorSets.forEach(function (monitorSet) {\n\t\t\t\t\treturn monitorSet.forEach(function (monitor) {\n\t\t\t\t\t\treturn monitor.addListener(onMonitorEvent);\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\t// get initial state\n\t\t\t\tonMonitorEvent();\n\t\t\t},\n\t\t\tstop: function stop() {\n\t\t\t\t// disable the monitor\n\t\t\t\tcontextMonitor.active = false;\n\n\t\t\t\t// disable\n\t\t\t\tmonitorSets.forEach(function (monitorSet) {\n\t\t\t\t\treturn monitorSet.forEach(function (monitor) {\n\t\t\t\t\t\t// stop listening (if possible)\n\t\t\t\t\t\tif (!monitor.removeListener) return;\n\t\t\t\t\t\tmonitor.removeListener(onMonitorEvent);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tdestroy: function destroy() {\n\t\t\t\tcontextMonitor.stop();\n\t\t\t\tmonitorSets.length = 0;\n\t\t\t}\n\t\t};\n\n\t\t// get different monitor sets (each 'or' creates a separate monitor set) > get monitors for each query\n\t\tvar monitorSets = query.split(' or ').map(function (subQuery) {\n\t\t\treturn parseQuery(subQuery).map(function (params) {\n\t\t\t\treturn decorateMonitor.apply(undefined, [getContextMonitor.apply(undefined, [element].concat(_toConsumableArray(params)))].concat(_toConsumableArray(params.splice(2))));\n\t\t\t});\n\t\t});\n\n\t\t// if all monitors return true for .matches getter, we mount the module\n\t\tvar onMonitorEvent = function onMonitorEvent() {\n\t\t\t// will keep returning false if one of the monitors does not match, else checks matches property\n\t\t\tvar matches = monitorSets.reduce(function (matches, monitorSet) {\n\t\t\t\treturn (\n\t\t\t\t\t// if one of the sets is true, it's all fine, no need to match the other sets\n\t\t\t\t\tmatches ? true : matchMonitors(monitorSet)\n\t\t\t\t);\n\t\t\t}, false);\n\n\t\t\t// store new state\n\t\t\tcontextMonitor.matches = matches;\n\n\t\t\t// if matches we mount the module, else we unmount\n\t\t\tcontextMonitor.onchange(matches);\n\t\t};\n\n\t\treturn contextMonitor;\n\t};\n\n\t// handles contextual loading and unloading\n\tvar createContextualModule = function createContextualModule(query, boundModule) {\n\t\t// setup query monitor\n\t\tvar moduleMonitor = monitor(query, boundModule.element);\n\t\tmoduleMonitor.onchange = function (matches) {\n\t\t\treturn matches ? boundModule.mount() : boundModule.unmount();\n\t\t};\n\n\t\t// start monitoring\n\t\tmoduleMonitor.start();\n\n\t\t// export monitor\n\t\treturn moduleMonitor;\n\t};\n\n\t// pass in an element and outputs a bound module object, will wrap bound module in a contextual module if required\n\tvar createModule = function createModule(element) {\n\n\t\t// called when the module is destroyed\n\t\tvar unbindModule = function unbindModule() {\n\t\t\treturn monitor && monitor.destroy();\n\t\t};\n\n\t\t// bind the module to the element and receive the module wrapper API\n\t\tvar boundModule = bindModule(element, unbindModule);\n\n\t\t// get context requirements for this module (if any have been defined)\n\t\tvar query = runPlugin('moduleGetContext', element);\n\n\t\t// wait for the right context or load the module immidiately if no context supplied\n\t\tvar monitor = query && createContextualModule(query, boundModule);\n\n\t\t// return module\n\t\treturn query ? boundModule : boundModule.mount();\n\t};\n\n\t// parse a certain section of the DOM and load bound modules\n\tvar hydrate = exports.hydrate = function hydrate(context) {\n\t\treturn [].concat(_toConsumableArray(runPlugin('moduleSelector', context))).map(createModule);\n\t};\n\n\t// all registered plugins\n\tvar plugins = [];\n\n\t// array includes 'polyfill', Array.prototype.includes was the only feature not supported on Edge\n\tvar includes = function includes(arr, value) {\n\t\treturn arr.indexOf(value) > -1;\n\t};\n\n\t// plugins are stored in an array as multiple plugins can subscribe to one hook\n\tvar addPlugin = exports.addPlugin = function addPlugin(plugin) {\n\t\treturn plugins.push(plugin);\n\t};\n\n\t// returns the plugins that match the requested type, as plugins can subscribe to multiple hooks we need to loop over the plugin keys to see if it matches\n\tvar getPlugins = function getPlugins(type) {\n\t\treturn plugins.filter(function (plugin) {\n\t\t\treturn includes(Object.keys(plugin), type);\n\t\t}).map(function (plugin) {\n\t\t\treturn plugin[type];\n\t\t});\n\t};\n\n\t// run for each of the registered plugins\n\tvar eachPlugins = function eachPlugins(type) {\n\t\tfor (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t\t\targs[_key - 1] = arguments[_key];\n\t\t}\n\n\t\treturn getPlugins(type).forEach(function (plugin) {\n\t\t\treturn plugin.apply(undefined, args);\n\t\t});\n\t};\n\n\t// run registered plugins but chain input -> output (sync)\n\tvar chainPlugins = function chainPlugins(type) {\n\t\tfor (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n\t\t\targs[_key2 - 1] = arguments[_key2];\n\t\t}\n\n\t\treturn getPlugins(type).reduce(function (args, plugin) {\n\t\t\treturn [plugin.apply(undefined, _toConsumableArray(args))];\n\t\t}, args).shift();\n\t};\n\n\t// run on last registered plugin\n\tvar runPlugin = function runPlugin(type) {\n\t\tfor (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n\t\t\targs[_key3 - 1] = arguments[_key3];\n\t\t}\n\n\t\treturn getPlugins(type).pop().apply(undefined, args);\n\t};\n\n\t// default plugin configuration\n\taddPlugin({\n\t\t// select all elements that have modules assigned to them\n\t\tmoduleSelector: function moduleSelector(context) {\n\t\t\treturn context.querySelectorAll('[data-module]');\n\t\t},\n\n\t\t// returns the context query as defined on the element\n\t\tmoduleGetContext: function moduleGetContext(element) {\n\t\t\treturn element.dataset.context;\n\t\t},\n\n\t\t// load the referenced module, by default searches global scope for module name\n\t\tmoduleImport: function moduleImport(name) {\n\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\tif (self[name]) return resolve(self[name]);\n\t\t\t\t// @exclude\n\t\t\t\treject('Cannot find module with name \"' + name + '\". By default Conditioner will import modules from the global scope, make sure a function named \"' + name + '\" is defined on the window object. The scope of a function defined with `let` or `const` is limited to the