{"version":3,"file":"javascripts/chunks/22d11eb23ae2f41144b6.navigation.js","mappings":"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","sources":["webpack:///./components/navigation/javascripts/navigation.js","webpack:///./javascripts/helpers/inViewport.js","webpack:///./store/navigation.ts","webpack:///../.yarn/__virtual__/zustand-virtual-3c3a7485b4/0/cache/zustand-npm-3.7.2-4cb33a3ae6-18f025b1b6.zip/node_modules/zustand/esm/vanilla.js","webpack:///../.yarn/cache/body-scroll-lock-npm-3.1.5-fbe946063b-52c25b81d6.zip/node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/array-sort.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/create-html.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/engine-ff-version.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/engine-webkit-version.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/internals/string-html-forced.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.array.find.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.array.includes.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.array.sort.js","webpack:///../.yarn/unplugged/core-js-npm-3.19.3-6f11d9f8bc/node_modules/core-js/modules/es.string.link.js"],"sourcesContent":["import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\n\nimport BaseModule from '../../../javascripts/helpers/baseModule';\nimport inViewport from '../../../javascripts/helpers/inViewport';\nimport navigation from '../../../store/navigation.ts';\nimport watchlist from '../../../store/watchlist';\n\nexport default class Navigation extends BaseModule {\n constructor(element) {\n super(element, element.getAttribute('data-js-module'));\n this.getElements([\n {\n id: 'link',\n selector: 'link'\n },\n {\n id: 'watchlistButton',\n selector: 'watchlist-button'\n },\n {\n id: 'close',\n selector: 'close'\n },\n {\n id: 'layerInner',\n selector: 'layer-inner'\n },\n {\n id: 'mainNavButton',\n selector: 'main-nav-button'\n },\n {\n id: 'mainNavBackButton',\n selector: 'main-nav-back-button'\n },\n {\n id: 'submenu',\n selector: 'sub-menu'\n }\n ]);\n\n this.navigationLayerActive = false;\n\n this.watchlistNotificationCount = 0;\n this.watchlistButtons = this.elements.self.querySelectorAll(\n \"[aria-controls='watchlist']\"\n );\n\n this.bindEvents();\n }\n\n addWatchlistNotification(count) {\n this.watchlistNotificationCount = count;\n\n this.watchlistButtons.forEach((button) => {\n if (count > 0) {\n button.setAttribute('data-notification-count', count);\n } else {\n button.removeAttribute('data-notification-count');\n }\n });\n }\n\n closeNavigation() {\n this.elements.link.forEach((i) => i.setAttribute('aria-expanded', 'false'));\n\n this.elements.self.removeAttribute('data-active-layer');\n this.elements.self.classList.remove('navigation--expanded');\n navigation.getState().setActiveLayer(null);\n enableBodyScroll(this.elements.layerInner);\n }\n\n openNavigation(button) {\n disableBodyScroll(this.elements.layerInner, { reserveScrollBarGap: true });\n\n const type = button.getAttribute('aria-controls');\n\n if (type === 'watchlist') {\n watchlist.getState().getItems();\n watchlist.getState().resetNotificationCount();\n }\n\n if (!this.elements.self.classList.contains('navigation--expanded')) {\n this.elements.self.classList.add('navigation--expanded');\n }\n\n this.elements.link.forEach((i) =>\n i.setAttribute('aria-expanded', i.getAttribute('aria-controls') === type)\n );\n\n this.elements.self.setAttribute('data-active-layer', type);\n navigation.getState().setActiveLayer(type);\n \n if (type === 'search' && document.getElementsByClassName('autocomplete__input').length > 0) {\n setTimeout(function(){\n document.getElementsByClassName('autocomplete__input')[0].focus();\n }, 600); \n } \n }\n\n closeSubmenu(e) {\n const subMenuId = e.currentTarget.getAttribute('aria-controls');\n e.currentTarget.setAttribute('aria-expanded', 'false');\n e.currentTarget\n .closest('.navigation__main-nav-list')\n .classList.remove('navigation__main-nav-list--hidden');\n\n this.elements.self\n .querySelector(\n `.navigation__main-nav-button[aria-controls='${subMenuId}']`\n )\n .setAttribute('aria-expanded', 'false');\n }\n\n openSubmenu(e) {\n const subMenuId = e.currentTarget.getAttribute('aria-controls');\n e.currentTarget.setAttribute('aria-expanded', 'true');\n e.currentTarget\n .closest('.navigation__main-nav-list')\n .classList.add('navigation__main-nav-list--hidden');\n\n this.elements.self\n .querySelector(\n `.navigation__main-nav-back-button[aria-controls='${subMenuId}']`\n )\n .setAttribute('aria-expanded', 'true');\n }\n\n bindEvents() {\n this.elements.link.forEach((element) => {\n element.addEventListener('click', () => this.openNavigation(element));\n\n if (element.getAttribute('aria-controls') === 'watchlist') {\n watchlist.subscribe(({ notificationCount }) => {\n if (notificationCount !== this.watchlistNotificationCount) {\n this.addWatchlistNotification(notificationCount);\n }\n });\n }\n });\n\n this.elements.close.addEventListener(\n 'click',\n this.closeNavigation.bind(this)\n );\n\n inViewport(this.elements.self, 0.1, (entries) => {\n if (!entries[0].isIntersecting) {\n this.elements.self.classList.add('navigation--detached');\n } else {\n this.elements.self.classList.remove('navigation--detached');\n }\n });\n\n this.elements.mainNavButton.asList.forEach((element) => {\n element.addEventListener('click', this.openSubmenu.bind(this));\n });\n\n this.elements.mainNavBackButton.asList.forEach((element) => {\n element.addEventListener('click', this.closeSubmenu.bind(this));\n });\n\n document.addEventListener('keydown', (event) => {\n if (\n event.code === 'Escape' &&\n this.elements.self.classList.contains('navigation--expanded')\n ) {\n this.closeNavigation();\n }\n });\n }\n}\n","/**\n * Makes use of the observer API to check when an element\n * enters the viewport and applys a class\n * @param {element} element Element to check\n * @param {number} threshold Determines how much of the element has to be visibile\n * @param {func} callback Callback function\n * @returns {void}\n */\nexport default (element, threshold, callback) => {\n let observer = null;\n\n const intersectionObserverOptions = {\n threshold\n };\n\n observer = new IntersectionObserver(callback, intersectionObserverOptions);\n observer.observe(element);\n};\n","import create from 'zustand/vanilla';\n\nexport type NavigationState = {\n /**\n * Active navigation layer\n */\n activeLayer: null | string;\n\n /**\n * Set the next active navigation layer\n *\n * @param activeLayer Active navigation layer\n * @returns {void}\n */\n setActiveLayer: (activeLayer: null | string) => void;\n};\n\nconst navigation = create((set) => ({\n activeLayer: null,\n\n setActiveLayer: (activeLayer) => set({ activeLayer })\n}));\n\nexport default navigation;\n","function createStore(createState) {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (nextState !== state) {\n const previousState = state;\n state = replace ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const subscribeWithSelector = (listener, selector = getState, equalityFn = Object.is) => {\n console.warn(\"[DEPRECATED] Please use `subscribeWithSelector` middleware\");\n let currentSlice = selector(state);\n function listenerToAdd() {\n const nextSlice = selector(state);\n if (!equalityFn(currentSlice, nextSlice)) {\n const previousSlice = currentSlice;\n listener(currentSlice = nextSlice, previousSlice);\n }\n }\n listeners.add(listenerToAdd);\n return () => listeners.delete(listenerToAdd);\n };\n const subscribe = (listener, selector, equalityFn) => {\n if (selector || equalityFn) {\n return subscribeWithSelector(listener, selector, equalityFn);\n }\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => listeners.clear();\n const api = { setState, getState, subscribe, destroy };\n state = createState(setState, getState, api);\n return api;\n}\n\nexport { createStore as default };\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n } else {\n setOverflowHidden(options);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n } else if (!locks.length) {\n restoreOverflowSetting();\n }\n};\n\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar un$Sort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? un$Sort(array) : un$Sort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.es/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n"],"names":["Navigation","element","getAttribute","getElements","id","selector","navigationLayerActive","watchlistNotificationCount","watchlistButtons","elements","self","querySelectorAll","bindEvents","count","this","forEach","button","setAttribute","removeAttribute","link","i","classList","remove","navigation","setActiveLayer","enableBodyScroll","layerInner","disableBodyScroll","reserveScrollBarGap","type","watchlist","getItems","resetNotificationCount","contains","add","document","getElementsByClassName","length","setTimeout","focus","e","subMenuId","currentTarget","closest","querySelector","addEventListener","openNavigation","notificationCount","addWatchlistNotification","close","closeNavigation","bind","inViewport","entries","isIntersecting","mainNavButton","asList","openSubmenu","mainNavBackButton","closeSubmenu","event","code","BaseModule","threshold","callback","IntersectionObserver","observe","create","set","activeLayer","createStore","createState","state","listeners","Set","setState","partial","replace","nextState","previousState","Object","assign","listener","getState","api","subscribe","equalityFn","is","console","warn","currentSlice","listenerToAdd","nextSlice","previousSlice","delete","subscribeWithSelector","destroy","clear","hasPassiveEvents","window","passiveTestOptions","passive","removeEventListener","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","some","lock","options","preventDefault","rawEvent","target","touches","targetElement","concat","arr","Array","isArray","arr2","from","_toConsumableArray","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","undefined","_reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","body","style","paddingRight","overflow","setOverflowHidden","error","filter","arraySlice","floor","Math","mergeSort","array","comparefn","middle","insertionSort","merge","j","left","right","llength","rlength","lindex","rindex","module","exports","uncurryThis","requireObjectCoercible","toString","quot","string","tag","attribute","value","S","p1","firefox","match","UA","webkit","fails","METHOD_NAME","toLowerCase","split","$","$find","addToUnscopables","FIND","SKIPS_HOLES","proto","forced","find","callbackfn","arguments","$includes","includes","aCallable","toObject","lengthOfArrayLike","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","un$Sort","sort","push","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","chr","index","result","String","fromCharCode","k","v","a","b","charAt","itemsLength","items","arrayLength","x","y","getSortCompare","createHTML","forcedStringHTMLMethod","url"],"sourceRoot":""}