{"version":3,"file":"Scripts/main.js","mappings":"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","sources":["webpack://opten.association/./app/components/dialog/component.ts","webpack://opten.association/./app/components/input/component.ts","webpack://opten.association/./app/components/map-extended/component.ts","webpack://opten.association/./app/components/menu/menu-collapse.ts","webpack://opten.association/./app/components/tooltip/index.ts","webpack://opten.association/./libs/gin-tonic/components/collapse/component.ts","webpack://opten.association/./libs/gin-tonic/components/collapse/index.ts","webpack://opten.association/./libs/gin-tonic/components/cookie-banner/component.ts","webpack://opten.association/./libs/gin-tonic/components/cookie-banner/index.ts","webpack://opten.association/./libs/gin-tonic/components/hamburger/component.ts","webpack://opten.association/./libs/gin-tonic/components/hamburger/index.ts","webpack://opten.association/./libs/gin-tonic/components/map-extended/index.ts","webpack://opten.association/./libs/gin-tonic/components/player/component.ts","webpack://opten.association/./libs/gin-tonic/components/player/index.ts","webpack://opten.association/./libs/gin-tonic/components/search/component.ts","webpack://opten.association/./libs/gin-tonic/components/search/index.ts","webpack://opten.association/./libs/gin-tonic/components/select/component.ts","webpack://opten.association/./libs/gin-tonic/components/select/index.ts","webpack://opten.association/./libs/gin-tonic/components/snackbar/component.ts","webpack://opten.association/./libs/gin-tonic/components/snackbar/index.ts","webpack://opten.association/./libs/gin-tonic/components/sticky/index.ts","webpack://opten.association/./libs/gin-tonic/components/tooltip/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/add-animation-end-listener/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-circ/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-cubic/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-expo/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-circ/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-cubic/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-expo/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-quad/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-quart/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-quint/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-out-sine/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-quad/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-quart/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-quint/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-in-sine/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-circ/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-cubic/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-expo/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-quad/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-quart/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-quint/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/ease-out-sine/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/get-animation-end-event-name/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/animation/linear-tween/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/common/format-css-unit/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/common/merge-options/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/common/new-guid/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/common/throttleTimeout/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/compiler/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/cookie/get/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/cookie/has/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/cookie/set/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/datetime/add-days/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/clicked-inside-element-with-class/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/create-node/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-css/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-document-height/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-document-width/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-left-offset/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-offset/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-selector-element-from-element/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-selector-from-element/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-styles/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-top-offset/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-trigger-elements-form-element/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/get-window-scroll-top/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/initialize-click-elements/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/is-ancestor-of-class/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/is-html-element/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/dom/safe-apply-css-value/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/events/event-dispatcher/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/events/event-listener-or-timeout/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/events/event-namespace-factory/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/keycodes/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/number/get-parsed-css-unit.ts","webpack://opten.association/./libs/gin-tonic/helpers/number/parse-css-unit.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/overlay-implementation.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/overlay-options.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/overlay.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/position/connected-position-strategy.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/position/global-position-strategy.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/position/overlay-position-builder.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/scroll/base-scroll-strategy.ts","webpack://opten.association/./libs/gin-tonic/helpers/overlay/scroll/reposition-scroll-strategy.ts","webpack://opten.association/./libs/gin-tonic/helpers/scroll/scroll-to-element/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/scroll/scroll-to-offset/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/scroll/scroll-to/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/transition/add-transition-end-listener/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/transition/get-transition-end-event-name/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/calculate-overlay/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-above-of-viewport/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-below-of-viewport/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-element-clipped-by-scrolling/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-element-outside-window/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-element-scrolled-outside-view/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-inside-of-viewport/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-left-of-viewport/index.ts","webpack://opten.association/./libs/gin-tonic/helpers/viewport/is-right-of-viewport/index.ts","webpack://opten.association/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/createClass.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/inherits.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack://opten.association/./node_modules/@babel/runtime/helpers/typeof.js","webpack://opten.association/../node_modules/fast-deep-equal/index.js","webpack://opten.association/../src/index.ts","webpack://opten.association/./node_modules/stickybits/dist/stickybits.es.js","webpack://opten.association/webpack/bootstrap","webpack://opten.association/webpack/runtime/make namespace object","webpack://opten.association/./app/main.ts"],"sourcesContent":["import { Component } from '../../../libs/gin-tonic/helpers/compiler';\r\nimport { getTriggerElementsFromElement } from '../../../libs/gin-tonic/helpers/dom/get-trigger-elements-form-element';\r\n\r\n@Component({ className: 'js-dialog' })\r\nexport class DialogComponent {\r\n\ttriggers: HTMLElement[];\r\n\tdisableClose = false;\r\n\r\n\tconstructor(private element: HTMLDialogElement) {\r\n\t\tthis.triggers = getTriggerElementsFromElement(this.element);\r\n\r\n\t\tthis.triggers.forEach((trigger) =>\r\n\t\t\ttrigger.addEventListener('click', (e) => {\r\n\t\t\t\tthis.toggle();\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tthis.disableClose =\r\n\t\t\tthis.element.hasAttribute('data-disable-close') &&\r\n\t\t\tthis.element.getAttribute('data-disable-close').toUpperCase() == 'TRUE';\r\n\r\n\t\tif (!this.disableClose) {\r\n\t\t\tthis.element.addEventListener('click', (event) => {\r\n\t\t\t\tconst element = event.target as HTMLElement;\r\n\r\n\t\t\t\t// HACK FOR FIREFOX because clientX and clientY is 0\r\n\t\t\t\tif (element.nodeName === 'SELECT' || element.nodeName === 'OPTION') {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst rect = element.getBoundingClientRect();\r\n\t\t\t\tconst outsideClick =\r\n\t\t\t\t\trect.left > event.clientX ||\r\n\t\t\t\t\trect.right < event.clientX ||\r\n\t\t\t\t\trect.top > event.clientY ||\r\n\t\t\t\t\trect.bottom < event.clientY;\r\n\r\n\t\t\t\tif (outsideClick) {\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.element.addEventListener('op10.open', () => {\r\n\t\t\tif (!this.element.open) {\r\n\t\t\t\tthis.open();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.element.addEventListener('op10.close', () => {\r\n\t\t\tif (this.element.open) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tif (this.element.open) {\r\n\t\t\tthis.close();\r\n\t\t} else {\r\n\t\t\tthis.open();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.element.showModal();\r\n\t\tthis.addClass('is-opening');\r\n\t\tthis.removeClass('is-closing');\r\n\t\tthis.removeClass('is-closed');\r\n\r\n\t\tconst eventHandler = () => {\r\n\t\t\tthis.removeClass('is-opening');\r\n\t\t\tthis.addClass('is-open');\r\n\t\t\tthis.element.removeEventListener('animationend', eventHandler, false);\r\n\t\t};\r\n\r\n\t\tthis.element.addEventListener('animationend', eventHandler, false);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.addClass('is-closing');\r\n\t\tthis.removeClass('is-opening');\r\n\t\tthis.removeClass('is-open');\r\n\r\n\t\tconst eventHandler = () => {\r\n\t\t\tthis.removeClass('is-closing');\r\n\t\t\tthis.element.close();\r\n\t\t\tthis.addClass('is-closed');\r\n\t\t\tthis.element.removeEventListener('animationend', eventHandler, false);\r\n\t\t};\r\n\r\n\t\tthis.element.addEventListener('animationend', eventHandler, false);\r\n\t}\r\n\r\n\taddClass(...tokens: string[]) {\r\n\t\tthis.element.classList.add(...tokens);\r\n\t\tthis.triggers.forEach((trigger) => trigger.classList.add(...tokens));\r\n\t}\r\n\r\n\tremoveClass(...tokens: string[]) {\r\n\t\tthis.element.classList.remove(...tokens);\r\n\t\tthis.triggers.forEach((trigger) => trigger.classList.remove(...tokens));\r\n\t}\r\n}\r\n","import { Component } from '@opten/gin-tonic/helpers/compiler';\r\n\r\n@Component({className: 'js-input-password'})\r\nexport class InputPasswordComponent {\r\n\tprivate readonly input;\r\n\tprivate readonly trigger;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.input = this.element.querySelector('.js-input-password-item');\r\n\t\tthis.trigger = this.element.querySelector('.js-input-password-trigger');\r\n\r\n\t\tif(this.input && this.trigger) {\r\n\t\t\tthis.trigger.addEventListener('click', () => {\r\n\t\t\t\tthis.input.type = this.input.type == 'text' ? 'password' : 'text';\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { MapExtended } from '../../../libs/gin-tonic/components/map-extended';\r\nimport { Component } from '../../../libs/gin-tonic/helpers/compiler';\r\nimport { Loader } from '@googlemaps/js-api-loader';\r\n\r\n@Component({className: 'js-map-extended', observe: true})\r\nexport class MapExtendedComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew Loader({\r\n\t\t\tapiKey: this.element.dataset.mapApiKey,\r\n\t\t\tversion: 'weekly',\r\n\t\t\tlibraries: ['marker']\r\n\t\t})\r\n\t\t\t.load()\r\n\t\t\t.then(google => {\r\n\t\t\t\twindow.google = google;\r\n\t\t\t\tthis.init();\r\n\t\t\t});\r\n\t}\r\n\r\n\tinit() {\r\n\t\tconst showMapMarkerClasses = this.element.getAttribute(\r\n\t\t\t\t'data-show-marker-classes',\r\n\t\t);\r\n\t\tconst mapStyle = this.element.getAttribute(\r\n\t\t\t\t'data-map-style',\r\n\t\t);\r\n\t\tconst showMapMarkerClassesList =\r\n\t\t\t\tshowMapMarkerClasses.length > 0\r\n\t\t\t\t\t\t? showMapMarkerClasses.split(',')\r\n\t\t\t\t\t\t: [];\r\n\t\tconst mapMarkerInformations = Array.from(\r\n\t\t\t\tthis.element.getElementsByClassName('c-map-extended__information'),\r\n\t\t);\r\n\t\tlet mapMarkerClasses = [];\r\n\t\tif(mapMarkerInformations != null) {\r\n\t\t\tmapMarkerInformations.forEach(e => {\r\n\t\t\t\tmapMarkerClasses.push(e.getAttribute('data-marker-class'));\r\n\t\t\t});\r\n\t\t\tmapMarkerClasses = mapMarkerClasses.filter(\r\n\t\t\t\t\t(v, i, a) => a.indexOf(v) === i,\r\n\t\t\t);\r\n\t\t}\r\n\t\tnew MapExtended(this.element, {\r\n\t\t\tshowMapMarkerClasses: showMapMarkerClassesList,\r\n\t\t\tmapMarkerClasses: mapMarkerClasses,\r\n\t\t\tmapTypes: [\r\n\t\t\t\tgoogle.maps.MapTypeId.ROADMAP,\r\n\t\t\t\tgoogle.maps.MapTypeId.TERRAIN,\r\n\t\t\t\tgoogle.maps.MapTypeId.SATELLITE,\r\n\t\t\t\tgoogle.maps.MapTypeId.HYBRID,\r\n\t\t\t],\r\n\t\t\tenforceZoomLevel: true,\r\n\t\t\tzoom: +this.element.dataset.zoom\r\n\t\t});\r\n\t}\r\n}\r\n","import { Component } from '@opten/gin-tonic/helpers/compiler';\r\n\r\n@Component({ className: 'js-menu-collapse' })\r\nexport class MenuCollapseComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew MenuCollapse(this.element);\r\n\t}\r\n}\r\n\r\nexport class MenuCollapse {\r\n\tprivate toggleClass = 'is-open';\r\n\tprivate backdrop: Element | null = null;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst hasBackdrop = this.element.getAttribute('data-backdrop') !== null;\r\n\t\tif (hasBackdrop) {\r\n\t\t\tthis.backdrop = document.getElementsByClassName('js-backdrop')[0] || null;\r\n\t\t\tthis.backdrop.classList.remove(this.toggleClass);\r\n\t\t}\r\n\r\n\t\t// Register globally otherwise there'll be problems with Blazor (because Blazor does not redirect)!\r\n\t\tdocument.addEventListener(\r\n\t\t\t'mouseover',\r\n\t\t\t(event) => {\r\n\t\t\t\tconst { button, details } = this.getElements(event);\r\n\r\n\t\t\t\tif (button && details) {\r\n\t\t\t\t\tthis.toggleMenuOpen(button, details, true);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfalse\r\n\t\t);\r\n\r\n\t\tdocument.addEventListener(\r\n\t\t\t'mouseout',\r\n\t\t\t(event) => {\r\n\t\t\t\tconst { button, details } = this.getElements(event);\r\n\r\n\t\t\t\tif (button && details) {\r\n\t\t\t\t\tthis.toggleMenuOpen(button, details, false);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tfalse\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getElements(event: Event) {\r\n\t\tconst trigger = event.target as HTMLElement;\r\n\r\n\t\tif (trigger && trigger.closest) {\r\n\t\t\tconst button = trigger.closest('.js-menu-collapse-button');\r\n\t\t\tconst details = trigger.closest('.js-menu-collapse-detail');\r\n\r\n\t\t\tif (button) {\r\n\t\t\t\tconst target = button.attributes.getNamedItem('aria-controls');\r\n\r\n\t\t\t\tlet element: HTMLElement | undefined | null;\r\n\r\n\t\t\t\tif (target) {\r\n\t\t\t\t\telement = document.getElementById(target.value);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\treturn { button, details: element };\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (details) {\r\n\t\t\t\tconst element = document.querySelector(\r\n\t\t\t\t\t`[aria-controls='${details.id}']`\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\treturn { button: element, details };\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn { button: null, details: null };\r\n\t}\r\n\r\n\tprivate toggleMenuOpen(\r\n\t\ttrigger: Element,\r\n\t\tdetails: HTMLElement | undefined | null,\r\n\t\tentered: boolean\r\n\t) {\r\n\t\tif (entered) {\r\n\t\t\tthis.element.classList.add(this.toggleClass);\r\n\t\t\tthis.backdrop?.classList.add(this.toggleClass);\r\n\t\t\ttrigger.classList.add(this.toggleClass);\r\n\t\t\tdetails?.classList.add(this.toggleClass);\r\n\t\t} else {\r\n\t\t\tthis.element.classList.remove(this.toggleClass);\r\n\t\t\tthis.backdrop?.classList.remove(this.toggleClass);\r\n\t\t\ttrigger.classList.remove(this.toggleClass);\r\n\t\t\tdetails?.classList.remove(this.toggleClass);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Tooltip } from '../../../libs/gin-tonic/components/tooltip';\r\nimport { Component } from '../../../libs/gin-tonic/helpers/compiler';\r\n\r\n@Component({ className: 'js-tooltip' })\r\nexport class TooltipComponent {\r\n\tconstructor(element: HTMLElement) {\r\n\t\tnew Tooltip(element);\r\n\t}\r\n}\r\n","import { Collapse } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-collapse' })\r\nexport class CollapseComponent {\r\n\tconstructor(public element: HTMLElement) {\r\n\t\tconst closeSiblings = !(element.getAttribute('data-collapse-close-siblings') === 'false');\r\n\r\n\t\tnew Collapse(element, { closeSiblings: closeSiblings });\r\n\t}\r\n}\r\n","import { mergeOptions } from '../../helpers/common/merge-options';\r\nimport { getSelectorElementFromElement } from '../../helpers/dom/get-selector-element-from-element';\r\nimport { getTriggerElementsFromElement } from '../../helpers/dom/get-trigger-elements-form-element';\r\nimport { EventDispatcher } from '../../helpers/events/event-dispatcher';\r\nimport { eventNamespaceFactory } from '../../helpers/events/event-namespace-factory';\r\nimport { addTransitionEndListener } from '../../helpers/transition/add-transition-end-listener';\r\n\r\nconst stringCollapse = 'Collapse';\r\n\r\ndeclare global {\r\n\tinterface Element {\r\n\t\t[stringCollapse]: Collapse | undefined;\r\n\t}\r\n}\r\n\r\nexport interface CollapseOptions {\r\n\tcomponentClass: string;\r\n\tactiveClass: string;\r\n\tactiveParentClass: string;\r\n\tshowClass: string;\r\n\tshowClassDesktop: string;\r\n\tdesktopWidth: number;\r\n\tcollapsingClass: string;\r\n\ttransitionDuration: number;\r\n\tanimateProp: 'height' | 'width' | false;\r\n\tisHideable: boolean;\r\n\tcloseSiblings: boolean;\r\n\tuseShowClassDesktop: boolean;\r\n\tdataParentSelector: string;\r\n\tdataTargetSelector: string;\r\n\tdataToggleSelector: string;\r\n}\r\n\r\nexport class Collapse {\r\n\tstatic options: CollapseOptions = {\r\n\t\tactiveClass: 'is-active',\r\n\t\tactiveParentClass: 'is-active',\r\n\t\tanimateProp: 'height',\r\n\t\tcollapsingClass: 'collapse--collapsing',\r\n\t\tcomponentClass: 'collapse',\r\n\t\tshowClass: 'collapse--show',\r\n\t\tshowClassDesktop: 'collapse--md-show',\r\n\t\tdesktopWidth: 1024,\r\n\t\ttransitionDuration: 600,\r\n\t\tisHideable: true,\r\n\t\tcloseSiblings: true,\r\n\t\tuseShowClassDesktop: false,\r\n\t\tdataParentSelector: 'data-parent',\r\n\t\tdataTargetSelector: 'data-target',\r\n\t\tdataToggleSelector: 'data-toggle'\r\n\t};\r\n\r\n\tprivate options: CollapseOptions;\r\n\tprivate parent: HTMLElement | null;\r\n\tprivate triggers: HTMLElement[];\r\n\tprivate target: Element | undefined;\r\n\tprivate isTransitioning = false;\r\n\tpublic showing = new EventDispatcher();\r\n\tpublic hiding = new EventDispatcher();\r\n\tpublic shown = new EventDispatcher();\r\n\tpublic hidden = new EventDispatcher();\r\n\tprivate eventNamespaceFn = eventNamespaceFactory('opten.collapse');\r\n\r\n\tconstructor(public element: HTMLElement, options?: Partial) {\r\n\t\tthis.options = mergeOptions(Collapse, options, element);\r\n\r\n\t\tthis.parent = getSelectorElementFromElement(\r\n\t\t\telement,\r\n\t\t\tthis.options.dataParentSelector,\r\n\t\t\tfalse\r\n\t\t);\r\n\r\n\t\tthis.triggers = getTriggerElementsFromElement(this.element, this.options.dataTargetSelector);\r\n\r\n\t\t// todo: why do we need that?\r\n\t\tconst toggles = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"]`\r\n\t\t\t)\r\n\t\t);\r\n\t\tfor (const toggle of toggles) {\r\n\t\t\tconst target = getSelectorElementFromElement(\r\n\t\t\t\ttoggle,\r\n\t\t\t\tthis.options.dataTargetSelector\r\n\t\t\t);\r\n\t\t\tif (target !== null && target === this.element) {\r\n\t\t\t\tthis.target = target;\r\n\t\t\t\tthis.triggers.push(toggle as HTMLElement);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!(stringCollapse in this.element)) {\r\n\t\t\t// prevent adding event handlers twice\r\n\t\t\tthis.triggers.forEach((trigger) =>\r\n\t\t\t\ttrigger.addEventListener('click', this.handleClick, false)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (this.parent) {\r\n\t\t\tArray.from(\r\n\t\t\t\tthis.parent.querySelectorAll(\r\n\t\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"][${this.options.dataParentSelector}=\"#${this.parent.id}\"]`\r\n\t\t\t\t)\r\n\t\t\t).forEach((element) => {\r\n\t\t\t\tthis._addAriaAndCollapsedClass(\r\n\t\t\t\t\tgetSelectorElementFromElement(\r\n\t\t\t\t\t\telement,\r\n\t\t\t\t\t\tthis.options.dataTargetSelector\r\n\t\t\t\t\t),\r\n\t\t\t\t\t[element]\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis._addAriaAndCollapsedClass(this.element, this.triggers);\r\n\t\t}\r\n\r\n\t\tthis.element.classList.add(this.options.componentClass);\r\n\r\n\t\tthis.element[stringCollapse] = this;\r\n\t}\r\n\r\n\tstatic getInstance(\r\n\t\telement: HTMLElement,\r\n\t\toptions?: CollapseOptions,\r\n\t\tcreate = true\r\n\t) {\r\n\t\tlet data = element[stringCollapse] as Collapse;\r\n\r\n\t\tif (!data && create) {\r\n\t\t\tdata = new Collapse(element, options);\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tisOpen() {\r\n\t\tif (\r\n\t\t\tthis.options.useShowClassDesktop &&\r\n\t\t\twindow.outerWidth >= this.options.desktopWidth &&\r\n\t\t\tthis.element.classList.contains(this.options.showClassDesktop)\r\n\t\t) {\r\n\t\t\tthis.element.classList.add(this.options.showClass);\r\n\t\t}\r\n\t\tthis.element.classList.remove(this.options.showClassDesktop);\r\n\t\treturn this.element.classList.contains(this.options.showClass);\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\tif (this.isOpen()) {\r\n\t\t\tthis.hide();\r\n\t\t} else {\r\n\t\t\tthis.show();\r\n\t\t}\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (this.isTransitioning || this.isOpen()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (this.options.closeSiblings && this.parent) {\r\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\r\n\t\t\tconst actives = Array.from(\r\n\t\t\t\tthis.parent.querySelectorAll(\r\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\r\n\t\t\t\t)\r\n\t\t\t).filter((active) => active !== this.target);\r\n\r\n\t\t\tif (actives && actives.length) {\r\n\t\t\t\tconst anyTransitioning = actives.filter((active) => {\r\n\t\t\t\t\tconst collapseInstance = active[stringCollapse] as Collapse;\r\n\t\t\t\t\treturn collapseInstance && collapseInstance.isTransitioning;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (anyTransitioning.length) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tactives.forEach((active) =>\r\n\t\t\t\t\tCollapse.getInstance(active as HTMLElement).hide()\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._handleShow(this.element, this.triggers);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (this.isTransitioning || !this.isOpen() || !this.options.isHideable) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._handleClose(this.element, this.triggers);\r\n\t}\r\n\r\n\tdestroy() {\r\n\t\tconst element = this.element;\r\n\r\n\t\tif (element[stringCollapse]) {\r\n\t\t\telement[stringCollapse] = undefined;\r\n\r\n\t\t\telement.classList.remove(this.options.componentClass);\r\n\t\t\telement.classList.remove(this.options.collapsingClass);\r\n\t\t\telement.classList.remove(this.options.showClass);\r\n\r\n\t\t\tif (this.options.animateProp) {\r\n\t\t\t\telement.style[this.options.animateProp] = '';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleClick = (event: Event) => {\r\n\t\t// preventDefault only for elements (which change the URL) not inside the collapsible element\r\n\t\tconst trigger = event?.currentTarget as HTMLElement;\r\n\t\tif (trigger && trigger.tagName === 'A') {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tconst target = getSelectorElementFromElement(\r\n\t\t\ttrigger,\r\n\t\t\tthis.options.dataTargetSelector\r\n\t\t);\r\n\t\tlet data = target ? target[stringCollapse] as Collapse : null;\r\n\r\n\t\tif (!data) {\r\n\t\t\tdata = trigger[stringCollapse] as Collapse;\r\n\t\t}\r\n\r\n\t\tif (target) {\r\n\t\t\tCollapse.getInstance(target, data.options).toggle();\r\n\t\t}\r\n\t};\r\n\r\n\tprivate _handleShow(collapseElement: HTMLElement, triggers?: Element[]) {\r\n\t\t\r\n\t\tthis.showing.dispatch();\r\n\t\tthis.eventNamespaceFn(collapseElement, 'show');\r\n\r\n\t\tcollapseElement.classList.remove(this.options.componentClass);\r\n\t\tcollapseElement.classList.add(this.options.collapsingClass);\r\n\t\tif (this.options.animateProp) {\r\n\t\t\tcollapseElement.style[this.options.animateProp] =\r\n\t\t\t\tcollapseElement.scrollHeight + 'px';\r\n\t\t}\r\n\r\n\t\tif (triggers && triggers.length) {\r\n\t\t\ttriggers.forEach((trigger) => {\r\n\t\t\t\ttrigger.classList.add(this.options.activeClass);\r\n\t\t\t\ttrigger.setAttribute('aria-expanded', 'true');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.parent) {\r\n\t\t\tthis.parent.classList.add(this.options.activeClass);\r\n\t\t}\r\n\r\n\t\tthis.isTransitioning = true;\r\n\r\n\t\taddTransitionEndListener(\r\n\t\t\tcollapseElement,\r\n\t\t\t() => {\r\n\t\t\t\tcollapseElement.classList.remove(this.options.collapsingClass);\r\n\t\t\t\tcollapseElement.classList.add(this.options.componentClass);\r\n\t\t\t\tcollapseElement.classList.add(this.options.showClass);\r\n\r\n\t\t\t\tthis.isTransitioning = false;\r\n\t\t\t\tif (this.options.animateProp) {\r\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.shown.dispatch();\r\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'shown');\r\n\t\t\t},\r\n\t\t\tthis.options.transitionDuration\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _handleClose(collapseElement: HTMLElement, triggers?: Element[]) {\r\n\t\tthis.hiding.dispatch();\r\n\t\tthis.eventNamespaceFn(collapseElement, 'hide');\r\n\r\n\t\tif (this.options.animateProp) {\r\n\t\t\tcollapseElement.style[this.options.animateProp] =\r\n\t\t\t\tcollapseElement.scrollHeight + 'px';\r\n\t\t}\r\n\r\n\t\tcollapseElement.classList.add(this.options.collapsingClass);\r\n\t\tcollapseElement.classList.remove(this.options.componentClass);\r\n\t\tcollapseElement.classList.remove(this.options.showClass);\r\n\t\t// force reflow to enable transition\r\n\t\tcollapseElement.offsetWidth; // eslint-disable-line\r\n\r\n\t\tif (triggers && triggers.length) {\r\n\t\t\ttriggers.forEach((trigger) => {\r\n\t\t\t\tconst target = getSelectorElementFromElement(\r\n\t\t\t\t\ttrigger,\r\n\t\t\t\t\tthis.options.dataTargetSelector\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (target !== null) {\r\n\t\t\t\t\tif (!target.classList.contains(this.options.showClass)) {\r\n\t\t\t\t\t\ttrigger.classList.remove(this.options.activeClass);\r\n\t\t\t\t\t\ttrigger.setAttribute('aria-expanded', 'false');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.parent) {\r\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\r\n\t\t\tconst actives = Array.from(\r\n\t\t\t\tthis.parent.querySelectorAll(\r\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\r\n\t\t\t\t)\r\n\t\t\t).filter((o) => o !== collapseElement);\r\n\r\n\t\t\tif (this.parent && actives.length === 0) {\r\n\t\t\t\tthis.parent.classList.remove(this.options.activeParentClass);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.isTransitioning = true;\r\n\t\tif (this.options.animateProp) {\r\n\t\t\tcollapseElement.style[this.options.animateProp] = '';\r\n\t\t}\r\n\r\n\t\taddTransitionEndListener(\r\n\t\t\tcollapseElement,\r\n\t\t\t() => {\r\n\t\t\t\tthis.isTransitioning = false;\r\n\r\n\t\t\t\tcollapseElement.classList.remove(this.options.collapsingClass);\r\n\t\t\t\tcollapseElement.classList.add(this.options.componentClass);\r\n\r\n\t\t\t\tif (this.options.animateProp) {\r\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.hidden.dispatch();\r\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'hidden');\r\n\t\t\t},\r\n\t\t\tthis.options.transitionDuration\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _addAriaAndCollapsedClass(\r\n\t\telement: Element | null,\r\n\t\ttriggers: Element[]\r\n\t) {\r\n\t\tif (element) {\r\n\t\t\tconst isOpen = element.classList.contains(this.options.showClass);\r\n\r\n\t\t\tif (triggers && triggers.length) {\r\n\t\t\t\ttriggers.forEach((trigger) => {\r\n\t\t\t\t\tisOpen\r\n\t\t\t\t\t\t? trigger.classList.add(this.options.activeClass)\r\n\t\t\t\t\t\t: trigger.classList.remove(this.options.activeClass);\r\n\r\n\t\t\t\t\ttrigger.setAttribute(\r\n\t\t\t\t\t\t'aria-expanded',\r\n\t\t\t\t\t\tisOpen.toString().toLowerCase()\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { CookieBanner } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-cookie-banner' })\r\nexport class CookieBannerComponent {\r\n\tconstructor(public element: HTMLElement) {\r\n\t\tnew CookieBanner(element);\r\n\t}\r\n}\r\n","import { getCookie } from '../../helpers/cookie/get';\r\nimport { setCookie } from '../../helpers/cookie/set';\r\nimport { hasCookie } from '../../helpers/cookie/has';\r\nimport { addDays } from '../../helpers/datetime/add-days';\r\nimport { addAnimationEndListener } from '../../helpers/animation/add-animation-end-listener';\r\n\r\nexport interface CookieBannerOptions {\r\n\tboxSelector: string;\r\n\trunAfterLoad?: (banner: CookieBanner) => void;\r\n\tcookieAttributeName: string;\r\n\tcookieName: string;\r\n\tacceptCookieButton: string;\r\n\tdeclineCookieButton: string;\r\n\tanimationClearBgOnDcline: string;\r\n\tanimationClearBgOnAccept: string;\r\n\tanimationDecline: string;\r\n\tanimationAccept: string;\r\n\tshowClass: string;\r\n}\r\n\r\nexport function loadGoogleTagManager(code: string | null) {\r\n\tif (!code) {\r\n\t\treturn;\r\n\t}\r\n\t(function (w, d, s, l, i) {\r\n\t\tw[l] = w[l] || [];\r\n\t\tw[l].push({\r\n\t\t\t'gtm.start': new Date().getTime(),\r\n\t\t\tevent: 'gtm.js',\r\n\t\t});\r\n\t\tconst f = d.getElementsByTagName(s)[0],\r\n\t\t\tj = d.createElement(s) as HTMLScriptElement,\r\n\t\t\tdl = l !== 'dataLayer' ? '&l=' + l : '';\r\n\t\tj.async = true;\r\n\t\tj.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\r\n\t\tf?.parentNode?.insertBefore(j, f);\r\n\t})(window, document, 'script', 'dataLayer', code);\r\n}\r\n\r\nexport class CookieBanner {\r\n\tstatic defaults: CookieBannerOptions = {\r\n\t\tboxSelector: '.js-cookie-banner-box',\r\n\t\trunAfterLoad: (banner: CookieBanner) => {\r\n\t\t\tloadGoogleTagManager(banner.banner.getAttribute('data-cookie-gtm'));\r\n\t\t},\r\n\t\tcookieAttributeName: 'data-cookie-name',\r\n\t\tcookieName: 'Opten.OPTEN_COOKIE.CONSENT',\r\n\t\tacceptCookieButton: '.js-accept-button',\r\n\t\tdeclineCookieButton: '.js-close-button',\r\n\t\tanimationClearBgOnDcline: 'is-declined',\r\n\t\tanimationClearBgOnAccept: 'is-accepted',\r\n\t\tanimationDecline: 'is-declined',\r\n\t\tanimationAccept: 'is-accepted',\r\n\t\tshowClass: 'show',\r\n\t};\r\n\r\n\tprivate approveButton: HTMLElement | null;\r\n\tprivate declineButton: HTMLElement | null;\r\n\tprivate dataBox: HTMLElement | null;\r\n\tprivate cookieName: string;\r\n\tprivate options: CookieBannerOptions;\r\n\r\n\tconstructor(\r\n\t\tpublic banner: HTMLElement,\r\n\t\toptions?: Partial\r\n\t) {\r\n\t\tthis.options = { ...CookieBanner.defaults, ...options };\r\n\t\tthis.cookieName =\r\n\t\t\tbanner.getAttribute(this.options.cookieAttributeName) ||\r\n\t\t\tthis.options.cookieName;\r\n\t\tthis.dataBox = banner.querySelector(this.options.boxSelector);\r\n\t\tthis.approveButton = banner.querySelector(this.options.acceptCookieButton);\r\n\t\tthis.declineButton = banner.querySelector(this.options.declineCookieButton);\r\n\t\tif (this.checkCookie(this.cookieName)) {\r\n\t\t\tthis.closeBannerAccept();\r\n\t\t}\r\n\t\tthis.declineButton?.addEventListener('click', () =>\r\n\t\t\tthis.onButtonCklickDecline()\r\n\t\t);\r\n\t\tthis.approveButton?.addEventListener('click', () =>\r\n\t\t\tthis.onButtonClickAccept()\r\n\t\t);\r\n\t}\r\n\r\n\tprivate closeBannerDecline() {\r\n\t\taddAnimationEndListener(this.banner, () => {\r\n\t\t\tthis.banner.classList.remove(this.options.animationClearBgOnDcline);\r\n\t\t});\r\n\t\tif (this.dataBox) {\r\n\t\t\taddAnimationEndListener(this.dataBox, () => {\r\n\t\t\t\tthis.dataBox?.classList.remove(this.options.animationDecline);\r\n\t\t\t\tthis.banner.classList.remove(this.options.showClass);\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.banner.classList.add(this.options.animationClearBgOnDcline);\r\n\t\tthis.dataBox?.classList.add(this.options.animationDecline);\r\n\t}\r\n\r\n\tprivate closeBannerAccept() {\r\n\t\taddAnimationEndListener(this.banner, () => {\r\n\t\t\tthis.banner.classList.remove(this.options.animationClearBgOnAccept);\r\n\t\t});\r\n\t\tif (this.dataBox) {\r\n\t\t\taddAnimationEndListener(this.dataBox, () => {\r\n\t\t\t\tthis.dataBox?.classList.remove(this.options.animationAccept);\r\n\t\t\t\tthis.banner.classList.remove(this.options.showClass);\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.banner.classList.add(this.options.animationClearBgOnAccept);\r\n\t\tthis.dataBox?.classList.add(this.options.animationAccept);\r\n\t}\r\n\r\n\tprivate checkCookie(name: string) {\r\n\t\tif (hasCookie(name)) {\r\n\t\t\tconst value = getCookie(this.cookieName);\r\n\t\t\treturn (value && value === 'true') || value === 'false';\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate onButtonCklickDecline() {\r\n\t\tsetCookie(this.cookieName, 'false', addDays(new Date(Date.now()), 15));\r\n\t\tthis.closeBannerDecline();\r\n\t}\r\n\r\n\tprivate onButtonClickAccept() {\r\n\t\tsetCookie(this.cookieName, 'true', addDays(new Date(Date.now()), 365));\r\n\t\tthis.closeBannerAccept();\r\n\t\tif (this.options.runAfterLoad) {\r\n\t\t\tthis.options.runAfterLoad(this);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Hamburger } from \".\";\r\nimport { Component } from \"../../helpers/compiler\";\r\n\r\n@Component({ className: 'js-hamburger' })\r\nexport class HamburgerComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew Hamburger(this.element);\r\n\t}\r\n}\r\n","export class Hamburger {\r\n\tprivate toggleClass = 'is-active';\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst hamburgerButton = this.element.getElementsByClassName('js-hamburger-toggler');\r\n\t\tif (hamburgerButton && hamburgerButton.length) {\r\n\t\t\thamburgerButton[0].addEventListener('click', () => {\r\n\t\t\t\tthis.element.classList.toggle(this.toggleClass)\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { mergeOptions } from '../../helpers/common/merge-options';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ndeclare const google: any;\r\n\r\nclass MapMarkerExtended {\r\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n\tmarker: google.maps.Marker;\r\n\tclassName: string;\r\n\r\n\tconstructor(element: google.maps.Marker, className: string) {\r\n\t\tthis.marker = element;\r\n\t\tthis.className = className;\r\n\t}\r\n}\r\n\r\nexport interface MapExtendedOptions {\r\n\tzoom: number;\r\n\tmapCenter?: {\r\n\t\tlat: number;\r\n\t\tlng: number;\r\n\t};\r\n\tdraggable: boolean;\r\n\turlLocation?: string;\r\n\turlDatacenter?: string;\r\n\tanimation: any; //google.maps.Animation;\r\n\tmapStyles?: unknown;\r\n\tstyledMapName: string;\r\n\tmapMarkerClasses: string[];\r\n\tshowMapMarkerClasses: string[];\r\n\thasMapMarkerClassesButtonIfMultiple: boolean;\r\n\tmapMarkerClassesButtonActiveClass: string;\r\n\tmapMarkerInfoClass: string;\r\n\tmapTypes: (google.maps.MapTypeId | string)[];\r\n\tmapTypeControlStyle: any; //google.maps.MapTypeControlStyle;\r\n\tfitToBounds: boolean;\r\n\tenforceZoomLevel: boolean;\r\n}\r\n\r\nexport class MapExtended {\r\n\tstatic options: MapExtendedOptions = {\r\n\t\tzoom: 11,\r\n\t\tmapCenter: {lat: 46.905358, lng: 8.423689},\r\n\t\tdraggable: screen.width < 1025 === false,\r\n\t\tanimation: null,\r\n\t\tmapMarkerClasses: ['map-location'],\r\n\t\tshowMapMarkerClasses: ['map-location'],\r\n\t\thasMapMarkerClassesButtonIfMultiple: false,\r\n\t\tmapMarkerClassesButtonActiveClass: 'is-active',\r\n\t\tmapMarkerInfoClass: 'c-map-extended__information__marker',\r\n\t\tmapTypes: [\r\n\t\t\t'roadmap',\r\n\t\t\t'terrain',\r\n\t\t\t'satellite',\r\n\t\t\t'hybrid',\r\n\t\t],\r\n\t\tmapTypeControlStyle: null,\r\n\t\tfitToBounds: true,\r\n\t\tstyledMapName: 'Map',\r\n\t\tenforceZoomLevel: false,\r\n\t};\r\n\tprivate options: MapExtendedOptions;\r\n\tprivate mapMarkers: MapMarkerExtended[] = [];\r\n\tprivate currentInfoWindow: any = null;\r\n\tprivate bounds: google.maps.LatLngBounds;\r\n\r\n\tconstructor(\r\n\t\tprivate element: HTMLElement,\r\n\t\toptions?: Partial,\r\n\t) {\r\n\t\tthis.options = mergeOptions(MapExtended, options, element);\r\n\r\n\t\tif(!google?.maps) {\r\n\t\t\tconsole.error('Google Maps API is not included');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst id = this.element.getAttribute('data-map-id');\r\n\r\n\t\tif(!id) {\r\n\t\t\tthrow 'Map ID is not defined';\r\n\t\t}\r\n\r\n\t\tthis.bounds = new google.maps.LatLngBounds();\r\n\t\tif(this.options.mapStyles != null) {\r\n\t\t\tthis.options.mapTypes.push('map_style');\r\n\t\t}\r\n\r\n\t\tconst map = new google.maps.Map(document.getElementById(id), {\r\n\t\t\tzoom: +this.options.zoom,\r\n\t\t\tcenter: this.options.mapCenter,\r\n\t\t\tdraggable: true,\r\n\t\t\tmapTypeControlOptions: {\r\n\t\t\t\tmapTypeIds: this.options.mapTypes,\r\n\t\t\t\tstyle: this.options.mapTypeControlStyle,\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tif(this.options.mapStyles) {\r\n\t\t\tmap.mapTypes.set(\r\n\t\t\t\t'map_style',\r\n\t\t\t\tnew google.maps.StyledMapType(this.options.mapStyles, {\r\n\t\t\t\t\tname: this.options.styledMapName,\r\n\t\t\t\t}),\r\n\t\t\t);\r\n\t\t\tmap.setMapTypeId('map_style');\r\n\t\t}\r\n\r\n\t\tthis.options.mapMarkerClasses?.forEach((markerClass) => {\r\n\t\t\tconst showMarker =\r\n\t\t\t\tthis.options.showMapMarkerClasses.indexOf(markerClass) > -1;\r\n\t\t\tArray.from(this.element.getElementsByClassName(markerClass)).forEach(\r\n\t\t\t\t(markerClassInfo) =>\r\n\t\t\t\t\tthis.createMarkerClass(markerClassInfo as HTMLElement, markerClass, map, showMarker),\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\tif(this.options.fitToBounds) {\r\n\t\t\tmap.fitBounds(this.bounds);\r\n\t\t}\r\n\t\tif(this.options.zoom && this.options.enforceZoomLevel) {\r\n\t\t\tgoogle.maps.event.addListenerOnce(map, 'idle', () => {\r\n\t\t\t\tmap.setZoom(+this.options.zoom);\r\n\t\t\t});\r\n\t\t}\r\n\t\tif(\r\n\t\t\tthis.options.hasMapMarkerClassesButtonIfMultiple &&\r\n\t\t\tthis.options.mapMarkerClasses.length > 1\r\n\t\t) {\r\n\t\t\tthis.options.mapMarkerClasses\r\n\t\t\t\t.map((markerClass) => document.getElementById(markerClass))\r\n\t\t\t\t.forEach((markerElement) =>\r\n\t\t\t\t\tmarkerElement?.addEventListener('click', () => {\r\n\t\t\t\t\t\tmarkerElement.classList.toggle(\r\n\t\t\t\t\t\t\tthis.options.mapMarkerClassesButtonActiveClass,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tconst visible = markerElement.classList.contains(\r\n\t\t\t\t\t\t\tthis.options.mapMarkerClassesButtonActiveClass,\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.mapMarkers\r\n\t\t\t\t\t\t\t.filter((mapMarker) => mapMarker.className === markerElement.id)\r\n\t\t\t\t\t\t\t.forEach((mapMarker) => mapMarker.marker.setVisible(visible));\r\n\t\t\t\t\t}),\r\n\t\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tcreateMarkerClass(markerInfoData: HTMLElement, markerClass: string, map: any, showMarker: boolean) {\r\n\t\tconst {\r\n\t\t\tlat,\r\n\t\t\tlng,\r\n\t\t\tmarker,\r\n\t\t\tmarkerWidth,\r\n\t\t\tmarkerHeight,\r\n\t\t\tmarkerOriginX,\r\n\t\t\tmarkerOriginY,\r\n\t\t\tmarkerAnchorX,\r\n\t\t\tmarkerAnchorY,\r\n\t\t} = markerInfoData.dataset;\r\n\r\n\t\tconst mapMarkerInfoArray = Array.from(\r\n\t\t\tmarkerInfoData.getElementsByClassName(this.options.mapMarkerInfoClass),\r\n\t\t);\r\n\t\tlet mapMarkerInfo = '';\r\n\t\tif(mapMarkerInfoArray.length > 0) {\r\n\t\t\tmapMarkerInfo = markerInfoData.innerHTML;\r\n\t\t}\r\n\r\n\t\tconst markerEl = new google.maps.Marker({\r\n\t\t\tposition: new google.maps.LatLng(+parseFloat(lat ?? '0'), +parseFloat(lng ?? '0')),\r\n\t\t\tmap,\r\n\t\t\ticon: marker ? {\r\n\t\t\t\tsize: new google.maps.Size(+(markerWidth ?? 0), +(markerHeight ?? 0)),\r\n\t\t\t\torigin: new google.maps.Point(+(markerOriginX ?? 0), +(markerOriginY ?? 0)),\r\n\t\t\t\tanchor: new google.maps.Point(+(markerAnchorX ?? 0), +(markerAnchorY ?? 0)),\r\n\t\t\t\turl: marker,\r\n\t\t\t} : null,\r\n\t\t\tvisible: showMarker,\r\n\t\t});\r\n\t\tif(this.bounds) {\r\n\t\t\tthis.bounds.extend(markerEl.getPosition());\r\n\t\t}\r\n\t\tif(mapMarkerInfo !== '') {\r\n\t\t\tconst infoWindow = new google.maps.InfoWindow({\r\n\t\t\t\tcontent: mapMarkerInfo,\r\n\t\t\t});\r\n\t\t\tmarkerEl.addListener('click', () => {\r\n\t\t\t\tconst wasCurrentWindow =\r\n\t\t\t\t\tthis.currentInfoWindow != null &&\r\n\t\t\t\t\tthis.currentInfoWindow === infoWindow;\r\n\t\t\t\tif(this.currentInfoWindow != null) {\r\n\t\t\t\t\tthis.currentInfoWindow.close();\r\n\t\t\t\t}\r\n\t\t\t\tif(\r\n\t\t\t\t\tthis.currentInfoWindow == null ||\r\n\t\t\t\t\tthis.currentInfoWindow !== infoWindow\r\n\t\t\t\t) {\r\n\t\t\t\t\tinfoWindow.open(map, markerEl);\r\n\t\t\t\t\tthis.currentInfoWindow = infoWindow;\r\n\t\t\t\t} else if(wasCurrentWindow) {\r\n\t\t\t\t\tthis.currentInfoWindow = null;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tmarkerEl.addListener('mouseover', () => {\r\n\t\t\t\tif(\r\n\t\t\t\t\tthis.currentInfoWindow != null &&\r\n\t\t\t\t\tthis.currentInfoWindow !== infoWindow\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.currentInfoWindow.close();\r\n\t\t\t\t}\r\n\t\t\t\tif(\r\n\t\t\t\t\tthis.currentInfoWindow == null ||\r\n\t\t\t\t\t(this.currentInfoWindow !== infoWindow || this.mapMarkers.length == 1)\r\n\t\t\t\t) {\r\n\t\t\t\t\tinfoWindow.open(map, markerEl);\r\n\t\t\t\t\tthis.currentInfoWindow = infoWindow;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.mapMarkers.push(new MapMarkerExtended(markerEl, markerClass));\r\n\t}\r\n}\r\n","import { IFramePlayer } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-player' })\r\nexport class IFramePlayerComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew IFramePlayer(element);\r\n\t}\r\n}","import { mergeOptions } from '../../helpers/common/merge-options';\r\n\r\nexport interface IFramePlayerOptions {\r\n\tstartPlayerClassName: string;\r\n\tplayingClassName: string;\r\n}\r\n\r\nexport class IFramePlayer {\r\n\tprivate button: HTMLElement | null;\r\n\tprivate iframe: HTMLIFrameElement | null;\r\n\tprivate options: IFramePlayerOptions;\r\n\r\n\tstatic options: IFramePlayerOptions = {\r\n\t\tstartPlayerClassName: 'js-player-start',\r\n\t\tplayingClassName: 'is-playing',\r\n\t};\r\n\r\n\tconstructor(private element: HTMLElement, options?: IFramePlayerOptions) {\r\n\t\tthis.options = mergeOptions(IFramePlayer, options, element);\r\n\r\n\t\tthis.button = element.querySelector(\r\n\t\t\t`.${this.options.startPlayerClassName}`\r\n\t\t);\r\n\r\n\t\tthis.iframe = element.querySelector('iframe');\r\n\r\n\t\tif (this.button) {\r\n\t\t\tthis.button.addEventListener('click', () => this.play(), {\r\n\t\t\t\tonce: true,\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tplay() {\r\n\t\tif (this.iframe && this.iframe.src.indexOf('autoplay') === -1) {\r\n\t\t\tthis.iframe.src +=\r\n\t\t\t\tthis.iframe.src.indexOf('?') === -1 ? '?autoplay=1' : '&autoplay=1';\r\n\t\t\tthis.element.classList.add(this.options.playingClassName);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Search } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-search' })\r\nexport class SearchComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew Search(this.element);\r\n\t}\r\n}\r\n","import { linearTween } from '../../helpers/animation';\r\nimport { mergeOptions } from '../../helpers/common/merge-options';\r\nimport { scrollToElement } from '../../helpers/scroll/scroll-to-element';\r\nimport { isInsideOfViewport } from '../../helpers/viewport/is-inside-of-viewport';\r\n\r\nexport interface SearchOptions {\r\n\thiddenClass: string;\r\n\tvisibleClass: string;\r\n\tselectedClass: string;\r\n}\r\n\r\nexport class Search {\r\n\tstatic options: SearchOptions = {\r\n\t\thiddenClass: 'd-none',\r\n\t\tvisibleClass: 'is-visible',\r\n\t\tselectedClass: 'is-selected',\r\n\t}\r\n\r\n\tprivate options: SearchOptions;\r\n\tprivate input: HTMLInputElement;\r\n\tprivate result: HTMLElement;\r\n\tprivate empty: HTMLElement;\r\n\tprivate items: HTMLElement[];\r\n\tprivate pristine: HTMLElement;\r\n\r\n\tconstructor(element: HTMLElement, options?: Partial) {\r\n\t\tthis.options = mergeOptions(Search, options, element);\r\n\r\n\t\tthis.input = element.querySelector('.js-search-input') || new HTMLInputElement;\r\n\t\tthis.result = element.querySelector('.js-search-result') || new HTMLElement;\r\n\t\tthis.empty = element.querySelector('.js-search-empty') || new HTMLElement;\r\n\t\tthis.pristine = element.querySelector('.js-search-pristine') || new HTMLElement;\r\n\t\tthis.items = Array.from(\r\n\t\t\telement.querySelectorAll('.js-search-result-item')\r\n\t\t) || [];\r\n\r\n\t\tthis.input.addEventListener('focus', () => {\r\n\t\t\tthis.result.classList.add(this.options.visibleClass);\r\n\t\t\tthis.input?.value?.length <= 0 ? this.pristine.classList.remove(this.options.hiddenClass) : this.pristine.classList.add(this.options.hiddenClass);\r\n\r\n\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\tthis.match(item, this.input.value) ? item.classList.remove(this.options.hiddenClass) : item.classList.add(this.options.hiddenClass);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.input.addEventListener('blur', () => {\r\n\t\t\tthis.result.classList.remove(this.options.visibleClass);\r\n\t\t});\r\n\r\n\t\tthis.input.addEventListener('keydown', (evt: KeyboardEvent) => {\r\n\t\t\tif (evt.key === 'ArrowDown' || evt.key === 'ArrowUp') {\r\n\t\t\t\tthis.navigateList(evt.key);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.input.addEventListener('keyup', (evt: KeyboardEvent) => {\r\n\t\t\tif (evt.key === 'Enter') {\r\n\t\t\t\tthis.submitSelected(null);\r\n\t\t\t} else if (evt.key !== 'ArrowDown' && evt.key !== 'ArrowUp') {\r\n\t\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\t\tthis.match(item, this.input.value) ? item.classList.remove(this.options.hiddenClass) : item.classList.add(this.options.hiddenClass);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (this.input?.value?.length > 0) {\r\n\t\t\t\t\tthis.pristine.classList.add(this.options.hiddenClass);\r\n\t\t\t\t\tthis.isEmpty(this.items) ? this.empty.classList.remove(this.options.hiddenClass) : this.empty.classList.add(this.options.hiddenClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.pristine.classList.remove(this.options.hiddenClass);\r\n\t\t\t\t\tthis.empty.classList.add(this.options.hiddenClass);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.items.forEach((item) =>\r\n\t\t\titem.addEventListener('click', () => {\r\n\t\t\t\tthis.items.forEach((o) => o.classList.remove(this.options.selectedClass));\r\n\t\t\t\titem.classList.add(this.options.selectedClass);\r\n\t\t\t\tthis.input.value = item.innerText;\r\n\t\t\t\tthis.result.classList.remove(this.options.visibleClass);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tprivate submitSelected(selectedItem: HTMLElement | null) {\r\n\t\tconst current = selectedItem || this.getSelectedItem();\r\n\t\tif (current) {\r\n\t\t\tcurrent.dispatchEvent(new MouseEvent('click'));\r\n\t\t} else {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getSelectedItem() {\r\n\t\treturn this.items.find(\r\n\t\t\t(o) => !o.classList.contains(this.options.hiddenClass) && o.classList.contains(this.options.selectedClass)\r\n\t\t);\r\n\t}\r\n\r\n\tprivate navigateList(key: string) {\r\n\t\tconst items = this.items.filter((o) => !o.classList.contains(this.options.hiddenClass));\r\n\t\tconst current = items.findIndex((o) => o.classList.contains(this.options.selectedClass));\r\n\t\tif (key === 'ArrowUp') {\r\n\t\t\tthis.navigateUp(items, current);\r\n\t\t} else if (key === 'ArrowDown') {\r\n\t\t\tthis.navigateDown(items, current);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate navigateDown(items: HTMLElement[], current: number) {\r\n\t\tlet next = current < 0 ? 0 : current + 1;\r\n\t\tif (next === items.length) {\r\n\t\t\tnext = 0;\r\n\t\t}\r\n\t\tif (current > -1) {\r\n\t\t\titems[current].classList.remove(this.options.selectedClass);\r\n\t\t}\r\n\t\tif (next > -1) {\r\n\t\t\titems[next].classList.add(this.options.selectedClass);\r\n\t\t\tthis.adjustScrollPosition(items[next]);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate navigateUp(items: HTMLElement[], current: number) {\r\n\t\tlet next = current < 0 ? items.length - 1 : current - 1;\r\n\t\tif (next === -1) {\r\n\t\t\tnext = items.length - 1;\r\n\t\t}\r\n\t\tif (current > -1) {\r\n\t\t\titems[current].classList.remove(this.options.selectedClass);\r\n\t\t}\r\n\t\tif (next > -1) {\r\n\t\t\titems[next].classList.add(this.options.selectedClass);\r\n\t\t\tthis.adjustScrollPosition(items[next]);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate adjustScrollPosition(item: HTMLElement) {\r\n\t\tif (!isInsideOfViewport(item, item.parentElement, -10)) {\r\n\t\t\tscrollToElement(item, linearTween, 300, -80, item.parentElement);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate match(item: HTMLElement, value: string): boolean {\r\n\t\tif (value?.length > 0) {\r\n\t\t\tconst content = item.textContent?.toLowerCase() || '';\r\n\t\t\treturn content.indexOf(value.toLowerCase()) > -1;\r\n\t\t}\r\n\r\n\t\treturn false;\r\n\t}\r\n\r\n\tprivate isVisible = (elem: HTMLElement) =>\r\n\t\t!!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);\r\n\r\n\tprivate isEmpty = (elems: HTMLElement[]) =>\r\n\t\telems.filter((o) => this.isVisible(o)).length === 0;\r\n}\r\n","import { Select } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-select', observe: true })\r\nexport class SelectComponent {\r\n\tconstructor(private element: HTMLSelectElement) {\r\n\t\tnew Select(this.element);\r\n\t}\r\n}\r\n","import { mergeOptions } from '../../helpers/common/merge-options';\r\nimport { newGuid } from '../../helpers/common/new-guid';\r\nimport { createNode } from '../../helpers/dom/create-node';\r\nimport { getParsedCssUnit } from '../../helpers/number/get-parsed-css-unit';\r\nimport {\r\n\tConnectedPositionStrategy, Overlay, OverlayOptions,\r\n\tOverlayPositionBuilder\r\n} from '../../helpers/overlay';\r\nimport { RepositionScrollStrategy } from '../../helpers/overlay/scroll/reposition-scroll-strategy';\r\n\r\nexport interface SelectOptions {\r\n\tcomponentClassName: string;\r\n\tcomponentValueClassName: string;\r\n\tcomponentArrowClassName: string;\r\n\tpanelClassName: string;\r\n\toptionClassName: string;\r\n\tactiveClassName: string;\r\n\tselectedClassName: string;\r\n\tdisabledClassName: string;\r\n\ticonHtml?: string;\r\n}\r\n\r\nexport class Select {\r\n\tprivate overlayRef: Overlay | undefined;\r\n\tprivate position: ConnectedPositionStrategy | undefined;\r\n\tprivate select: HTMLElement;\r\n\tprivate selectedIndex: number;\r\n\tprivate activeIndex: number;\r\n\tprivate optionElements: HTMLElement[] = [];\r\n\tprivate triggerTextElement: HTMLSpanElement;\r\n\tprivate options: SelectOptions;\r\n\tprivate scrollTop = 0;\r\n\tprivate offsetY = 0;\r\n\tprivate panelOpen = false;\r\n\r\n\tstatic options: SelectOptions = {\r\n\t\tcomponentClassName: 'c-select',\r\n\t\tcomponentValueClassName: 'c-select__value',\r\n\t\tcomponentArrowClassName: 'c-select__arrow',\r\n\t\tpanelClassName: 'c-select__panel',\r\n\t\toptionClassName: 'c-select__option',\r\n\t\tactiveClassName: 'is-active',\r\n\t\tselectedClassName: 'is-selected',\r\n\t\tdisabledClassName: 'is-disabled',\r\n\t};\r\n\r\n\tconstructor(\r\n\t\tprivate element: HTMLSelectElement,\r\n\t\toptions?: Partial\r\n\t) {\r\n\t\tthis.options = mergeOptions(Select, options, element);\r\n\r\n\t\tthis.selectedIndex = this.element.selectedIndex ?? 0;\r\n\r\n\t\t// An error will be thrown if we have no selected element and the selectedIndex is -1\r\n\t\tthis.selectedIndex = Math.max(0, this.selectedIndex);\r\n\r\n\t\tconst selected =\r\n\t\t\tthis.element.querySelector('option[selected]');\r\n\r\n\t\tif (selected) {\r\n\t\t\tthis.selectedIndex = Array.from(\r\n\t\t\t\tselected.parentElement?.children ?? []\r\n\t\t\t).indexOf(selected);\r\n\t\t}\r\n\r\n\t\tthis.activeIndex = this.selectedIndex;\r\n\r\n\t\tthis.element.tabIndex = -1;\r\n\t\tthis.element.setAttribute('aria-hidden', 'true');\r\n\r\n\t\tthis.select = document.createElement('div');\r\n\t\tthis.select.id = newGuid();\r\n\t\tthis.element.setAttribute('data-select', this.select.id);\r\n\t\tthis.select.classList.add(this.options.componentClassName);\r\n\t\tthis.select.tabIndex = 0;\r\n\t\tthis.element.classList.forEach(\r\n\t\t\t(className) =>\r\n\t\t\t\t// we should never copy js classes, because afterwise we have an infinite loop on js-select if we add observe: true\r\n\t\t\t\tclassName.indexOf('js-') === -1 && this.select.classList.add(className)\r\n\t\t);\r\n\r\n\t\tthis.triggerTextElement = document.createElement('span');\r\n\t\tthis.triggerTextElement.classList.add(this.options.componentValueClassName);\r\n\t\tthis.triggerTextElement.textContent =\r\n\t\t\tthis.element.children[this.selectedIndex].textContent;\r\n\t\tthis.select.appendChild(this.triggerTextElement);\r\n\t\tthis.select.appendChild(this.triggerTextElement);\r\n\r\n\t\tconst triggerArrow = this.options.iconHtml\r\n\t\t\t? createNode(this.options.iconHtml)\r\n\t\t\t: document.createElement('span');\r\n\t\ttriggerArrow.classList.add(this.options.componentArrowClassName);\r\n\t\tthis.select.appendChild(triggerArrow);\r\n\r\n\t\tthis.element.insertAdjacentElement('afterend', this.select);\r\n\t\tthis.element.addEventListener('focus', () => {\r\n\t\t\tthis.select.focus();\r\n\t\t\tthis.open();\r\n\t\t});\r\n\r\n\t\tthis.select.addEventListener('click', (event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tthis.toggle();\r\n\t\t});\r\n\r\n\t\tthis.select.addEventListener('keydown', (event: KeyboardEvent) =>\r\n\t\t\tthis._handleKeydown(event)\r\n\t\t);\r\n\r\n\t\tthis.element.addEventListener('change', () => {\r\n\t\t\tthis.activeIndex = this.element.selectedIndex;\r\n\t\t\tthis.setSelectedValue(false);\r\n\t\t});\r\n\t}\r\n\r\n\topen(): void {\r\n\t\tif (!this.element.children.length || this.panelOpen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.panelOpen = true;\r\n\r\n\t\tif (!this.overlayRef) {\r\n\t\t\tconst panel = document.createElement('div');\r\n\t\t\tpanel.classList.add(this.options.panelClassName);\r\n\r\n\t\t\tthis.optionElements = Array.from(\r\n\t\t\t\tthis.element.children as HTMLCollectionOf\r\n\t\t\t).map((option) => {\r\n\t\t\t\tconst optionElement = document.createElement('div');\r\n\t\t\t\toptionElement.classList.add(this.options.optionClassName);\r\n\t\t\t\tif (option.classList.length > 0) {\r\n\t\t\t\t\toptionElement.classList.add(...option.classList.value.split(' '));\r\n\t\t\t\t}\r\n\t\t\t\tif (option.disabled) {\r\n\t\t\t\t\toptionElement.classList.add(this.options.disabledClassName);\r\n\t\t\t\t}\r\n\t\t\t\toptionElement.textContent = option.text;\r\n\t\t\t\treturn optionElement;\r\n\t\t\t});\r\n\r\n\t\t\tthis.optionElements.forEach((optionElement) => {\r\n\t\t\t\tpanel.appendChild(optionElement);\r\n\t\t\t});\r\n\r\n\t\t\tthis.position = OverlayPositionBuilder.connectedTo(this.select)\r\n\t\t\t\t.withOffsetY(this.offsetY)\r\n\t\t\t\t.withFallbackPosition(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toriginX: 'start',\r\n\t\t\t\t\t\toriginY: 'top',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toverlayX: 'start',\r\n\t\t\t\t\t\toverlayY: 'top',\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\t.withFallbackPosition(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toriginX: 'start',\r\n\t\t\t\t\t\toriginY: 'bottom',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toverlayX: 'start',\r\n\t\t\t\t\t\toverlayY: 'bottom',\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\tthis.overlayRef = new Overlay(\r\n\t\t\t\tpanel,\r\n\t\t\t\tnew OverlayOptions({\r\n\t\t\t\t\tscrollStrategy: new RepositionScrollStrategy(),\r\n\t\t\t\t\tpositionStrategy: this.position,\r\n\t\t\t\t\tbackdropClassName: 'c-overlay-transparent-backdrop',\r\n\t\t\t\t\thasBackdrop: true,\r\n\t\t\t\t})\r\n\t\t\t).create();\r\n\r\n\t\t\tthis.overlayRef.backdropClick.subscribe(() => this.close());\r\n\r\n\t\t\tthis.overlayRef.afterOpened.subscribe(() => {\r\n\t\t\t\tif (this.panelOpen) {\r\n\t\t\t\t\tthis.scrollTop = 0;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.position?.withOffsetX(0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.overlayRef.afterClosed.subscribe(() => {\r\n\t\t\t\tthis.overlayRef?.dispose();\r\n\t\t\t\tthis.select.focus();\r\n\t\t\t});\r\n\r\n\t\t\tthis.overlayRef.onAttached.subscribe(() => {\r\n\t\t\t\tif (!this.overlayRef || !this.position) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.overlayRef.portalElement.style.transformOrigin = 'top'; // set initial origin\r\n\t\t\t\tconst overlayRect =\r\n\t\t\t\t\tthis.overlayRef.overlayElement?.getBoundingClientRect();\r\n\t\t\t\tconst paddingWidth = Math.round(\r\n\t\t\t\t\tgetParsedCssUnit(this.element.children[0], 'padding-left') / 2\r\n\t\t\t\t);\r\n\t\t\t\tconst leftOverflow = 0 - (overlayRect?.left ?? 0);\r\n\t\t\t\tconst rightOverflow = (overlayRect?.right ?? 0) - window.innerWidth;\r\n\r\n\t\t\t\tlet offsetX = 0;\r\n\t\t\t\tif (leftOverflow > 0) {\r\n\t\t\t\t\toffsetX += leftOverflow + paddingWidth;\r\n\t\t\t\t} else if (rightOverflow > 0) {\r\n\t\t\t\t\toffsetX -= rightOverflow + paddingWidth;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.position.withOffsetX(offsetX);\r\n\t\t\t\tthis.overlayRef.updatePosition();\r\n\t\t\t\tthis.overlayRef.portalElement.scrollTop = this.scrollTop;\r\n\t\t\t});\r\n\r\n\t\t\tthis.overlayRef.onDetached.subscribe(() => (this.panelOpen = false));\r\n\r\n\t\t\tthis.optionElements.forEach((option, index) => {\r\n\t\t\t\toption.addEventListener('click', () => {\r\n\t\t\t\t\tthis.activeIndex = index;\r\n\t\t\t\t\tconst option = this.element.children[index] as HTMLOptionElement;\r\n\r\n\t\t\t\t\tif (option.disabled) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis.setSelectedValue();\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.overlayRef.open();\r\n\t\tthis._calculateOverlayPosition();\r\n\t\tthis.setActiveValue();\r\n\t}\r\n\r\n\tclose(): void {\r\n\t\tif (!this.panelOpen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.overlayRef?.close();\r\n\t\tthis.element.dispatchEvent(new Event('blur'));\r\n\t}\r\n\r\n\ttoggle(): void {\r\n\t\tthis.panelOpen ? this.close() : this.open();\r\n\t}\r\n\r\n\tprivate _handleKeydown(event: KeyboardEvent) {\r\n\t\tevent.preventDefault();\r\n\t\tevent.stopPropagation();\r\n\r\n\t\tconst delta = event.code === 'ArrowUp' ? -1 : 1;\r\n\r\n\t\tswitch (event.code) {\r\n\t\t\tcase 'Space':\r\n\t\t\t\tthis.toggle();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'ArrowUp':\r\n\t\t\tcase 'ArrowDown':\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.activeIndex + delta >= 0 &&\r\n\t\t\t\t\tthis.activeIndex + delta < this.element.children.length\r\n\t\t\t\t) {\r\n\t\t\t\t\tfor (let i = 1; i <= this.element.children.length; i++) {\r\n\t\t\t\t\t\tconst index =\r\n\t\t\t\t\t\t\t(this.activeIndex + delta * i + this.element.children.length) %\r\n\t\t\t\t\t\t\tthis.element.children.length;\r\n\r\n\t\t\t\t\t\tif (!(this.element.children[index] as HTMLOptionElement).disabled) {\r\n\t\t\t\t\t\t\tthis.activeIndex = index;\r\n\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.panelOpen) {\r\n\t\t\t\t\tthis.setActiveValue();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.setSelectedValue();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Escape':\r\n\t\t\t\tthis.close();\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'Enter':\r\n\t\t\t\tif (!this.panelOpen) {\r\n\t\t\t\t\tthis.open();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.setSelectedValue();\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setSelectedValue(shouldForwardEvent = true) {\r\n\t\tconst option = this.element.children[this.activeIndex] as HTMLOptionElement;\r\n\r\n\t\tthis.triggerTextElement.textContent = option.text;\r\n\t\tthis.select.setAttribute('data-value', option.value);\r\n\t\tthis.element.value = option.value;\r\n\t\tthis.selectedIndex = this.activeIndex;\r\n\t\tthis.element.selectedIndex = this.selectedIndex;\r\n\r\n\t\tthis.setActiveValue();\r\n\r\n\t\tif (shouldForwardEvent) {\r\n\t\t\tthis.element.dispatchEvent(new Event('change'));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setActiveValue(): void {\r\n\t\tif (this.overlayRef) {\r\n\t\t\tconst itemHeight = this.optionElements[0]?.offsetHeight ?? 0;\r\n\t\t\tconst scrollOffset = this.activeIndex * itemHeight;\r\n\t\t\tconst maxHeight = getParsedCssUnit(\r\n\t\t\t\tthis.overlayRef.portalElement,\r\n\t\t\t\t'max-height'\r\n\t\t\t);\r\n\r\n\t\t\tif (scrollOffset < this.overlayRef.portalElement.scrollTop) {\r\n\t\t\t\tthis.overlayRef.portalElement.scrollTop = scrollOffset;\r\n\t\t\t} else if (\r\n\t\t\t\tscrollOffset + itemHeight >\r\n\t\t\t\tthis.overlayRef.portalElement.scrollTop + maxHeight\r\n\t\t\t) {\r\n\t\t\t\tthis.overlayRef.portalElement.scrollTop = Math.max(\r\n\t\t\t\t\t0,\r\n\t\t\t\t\tscrollOffset - maxHeight + itemHeight\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.optionElements?.forEach((option, index) => {\r\n\t\t\toption.classList.toggle(\r\n\t\t\t\tthis.options.selectedClassName,\r\n\t\t\t\tindex === this.selectedIndex\r\n\t\t\t);\r\n\t\t\toption.classList.toggle(\r\n\t\t\t\tthis.options.activeClassName,\r\n\t\t\t\tindex === this.activeIndex\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _calculateOverlayPosition() {\r\n\t\tif (!this.overlayRef) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst itemHeight = this.optionElements[0]?.offsetHeight ?? 0;\r\n\t\tconst maxHeight = getParsedCssUnit(\r\n\t\t\tthis.overlayRef.portalElement,\r\n\t\t\t'max-height'\r\n\t\t);\r\n\t\tconst items = this.element.children.length;\r\n\t\tconst panelHeight = Math.min(items * itemHeight, maxHeight);\r\n\t\tconst scrollContainerHeight = items * itemHeight;\r\n\t\tconst maxScroll = scrollContainerHeight - panelHeight;\r\n\t\tconst scrollBuffer = panelHeight / 2;\r\n\t\tconst optionOffsetFromScrollTop = itemHeight * this.selectedIndex;\r\n\t\tconst halfOptionHeight = itemHeight / 2;\r\n\t\tconst optimalScrollPosition =\r\n\t\t\toptionOffsetFromScrollTop - scrollBuffer + halfOptionHeight;\r\n\t\tthis.scrollTop = Math.min(Math.max(0, optimalScrollPosition), maxScroll);\r\n\t\tconst triggerRect = this.select.getBoundingClientRect();\r\n\t\tconst optionHeightAdjustment = (itemHeight - triggerRect.height) / 2;\r\n\t\tconst maxOptionsDisplayed = Math.floor(maxHeight / itemHeight);\r\n\t\tlet optionOffsetFromPanelTop: number;\r\n\r\n\t\tif (this.scrollTop === 0) {\r\n\t\t\toptionOffsetFromPanelTop = this.selectedIndex * itemHeight;\r\n\t\t} else if (this.scrollTop === maxScroll) {\r\n\t\t\tconst firstDisplayedIndex = items - maxOptionsDisplayed;\r\n\t\t\tconst selectedDisplayIndex = this.selectedIndex - firstDisplayedIndex;\r\n\t\t\tconst partialItemHeight =\r\n\t\t\t\titemHeight - ((items * itemHeight - maxHeight) % itemHeight);\r\n\r\n\t\t\toptionOffsetFromPanelTop =\r\n\t\t\t\tselectedDisplayIndex * itemHeight + partialItemHeight;\r\n\t\t} else {\r\n\t\t\toptionOffsetFromPanelTop = scrollBuffer - itemHeight / 2;\r\n\t\t}\r\n\r\n\t\tthis.offsetY = optionOffsetFromPanelTop * -1 - optionHeightAdjustment;\r\n\r\n\t\tconst viewportSize = {\r\n\t\t\twidth: window.innerWidth,\r\n\t\t\theight: window.innerHeight,\r\n\t\t};\r\n\t\tconst paddingWidth = Math.round(\r\n\t\t\tgetParsedCssUnit(this.optionElements[0], 'padding-left') / 2\r\n\t\t);\r\n\r\n\t\tconst topSpaceAvailable = triggerRect.top - paddingWidth;\r\n\t\tconst bottomSpaceAvailable =\r\n\t\t\tviewportSize.height - triggerRect.bottom - paddingWidth;\r\n\r\n\t\tconst panelHeightTop = Math.abs(this.offsetY);\r\n\t\tconst totalPanelHeight = Math.min(\r\n\t\t\tthis.element.children.length * itemHeight,\r\n\t\t\tmaxHeight\r\n\t\t);\r\n\t\tconst panelHeightBottom =\r\n\t\t\ttotalPanelHeight - panelHeightTop - triggerRect.height;\r\n\r\n\t\tconst originY =\r\n\t\t\tMath.abs(this.offsetY) - optionHeightAdjustment + itemHeight / 2;\r\n\t\tconst originBasedOnOption = `50% ${originY}px 0px`;\r\n\r\n\t\tif (panelHeightBottom > bottomSpaceAvailable) {\r\n\t\t\tconst distanceBelowViewport = Math.round(\r\n\t\t\t\tpanelHeightBottom - bottomSpaceAvailable\r\n\t\t\t);\r\n\r\n\t\t\tthis.scrollTop -= distanceBelowViewport;\r\n\t\t\tthis.offsetY -= distanceBelowViewport;\r\n\t\t\tthis.overlayRef.portalElement.style.transformOrigin = originBasedOnOption;\r\n\r\n\t\t\tif (triggerRect.top + this.scrollTop <= 0) {\r\n\t\t\t\tthis.scrollTop = 0;\r\n\t\t\t\tthis.offsetY = 0;\r\n\t\t\t\tthis.overlayRef.portalElement.style.transformOrigin = '50% bottom 0px';\r\n\t\t\t}\r\n\t\t} else if (panelHeightTop > topSpaceAvailable) {\r\n\t\t\tconst distanceAboveViewport = Math.round(\r\n\t\t\t\tpanelHeightTop - topSpaceAvailable\r\n\t\t\t);\r\n\r\n\t\t\tthis.scrollTop += distanceAboveViewport;\r\n\t\t\tthis.offsetY += distanceAboveViewport;\r\n\t\t\tthis.overlayRef.portalElement.style.transformOrigin = originBasedOnOption;\r\n\r\n\t\t\tif (triggerRect.top + this.scrollTop >= maxScroll) {\r\n\t\t\t\tthis.scrollTop = maxScroll;\r\n\t\t\t\tthis.offsetY = 0;\r\n\t\t\t\tthis.overlayRef.portalElement.style.transformOrigin = '50% top 0px';\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.overlayRef.portalElement.style.transformOrigin = originBasedOnOption;\r\n\t\t}\r\n\r\n\t\tthis.position?.withOffsetY(this.offsetY);\r\n\t}\r\n}\r\n","import { Snackbar } from '.';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-snackbar' })\r\nexport class SnackbarComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tnew Snackbar(this.element);\r\n\t}\r\n}\r\n","export class Snackbar {\r\n\tprivate toggleClass = 'is-active';\r\n\tprivate duration = 5000;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst btn = this.element.getElementsByClassName('js-snackbar-btn');\r\n\t\tif (btn && btn.length) {\r\n\t\t\tbtn[0].addEventListener('click', () => {\r\n\t\t\t\tconst snackbars = document.getElementsByClassName(\"js-snackbar-item\");\r\n\t\t\t\tif (snackbars && snackbars.length) {\r\n\t\t\t\t\tconst snackbar = snackbars[0];\r\n\t\t\t\t\tthis.showSnackbar(snackbar);\r\n\r\n\t\t\t\t\tconst close = snackbar.getElementsByClassName(\"js-snackbar-close\");\r\n\t\t\t\t\tif (close && close.length) {\r\n\t\t\t\t\t\tclose[0].addEventListener('click', () => {\r\n\t\t\t\t\t\t\tthis.hideSnackbar(snackbar)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate showSnackbar(snackbar: Element) {\r\n\t\tsnackbar.classList.add(this.toggleClass);\r\n\t\tsetTimeout(() => { this.hideSnackbar(snackbar) }, this.duration);\r\n\t}\r\n\r\n\tprivate hideSnackbar(snackbar: Element) {\r\n\t\tsnackbar.classList.add('is-hidden');\r\n\t\tsetTimeout(() => {\r\n\t\t\tsnackbar.classList.remove('is-hidden')\r\n\t\t\tsnackbar.classList.remove(this.toggleClass);\r\n\t\t}, 1000);\r\n\t}\r\n}\r\n","import stickybits from 'stickybits';\r\nimport { Component } from '../../helpers/compiler';\r\n\r\n@Component({ className: 'js-sticky' })\r\nexport class StickyComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tstickybits(this.element, {\r\n\t\t\tparentClass: 'js-sticky-parent',\r\n\t\t\tstickyChangeClass: 'is-sticky-change',\r\n\t\t\tstickyClass: 'is-sticky',\r\n\t\t\tstuckClass: 'is-stuck',\r\n\t\t\tuseStickyClasses: true,\r\n\t\t});\r\n\t}\r\n}\r\n","import {\r\n\tOverlayImplementation,\r\n\tOverlayOptions,\r\n\tOverlayPositionBuilder,\r\n} from '../../helpers/overlay';\r\n\r\nexport class Tooltip extends OverlayImplementation {\r\n\tprivate cachedTitleTag: string;\r\n\r\n\tconstructor(element: HTMLElement) {\r\n\t\tsuper(element);\r\n\t\tthis.cachedTitleTag = this.element.title;\r\n\t\tthis.element.addEventListener('mouseenter', e => this.open(e.target as HTMLElement));\r\n\t\tthis.element.addEventListener('mouseleave', _ => this.close());\r\n\t}\r\n\r\n\tgetOverlayOptions(): OverlayOptions {\r\n\t\treturn {\r\n\t\t\tpositionStrategy: OverlayPositionBuilder.connectedTo(this.element)\r\n\t\t\t\t.withFallbackPosition(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toriginX: 'center',\r\n\t\t\t\t\t\toriginY: 'top',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toverlayX: 'center',\r\n\t\t\t\t\t\toverlayY: 'bottom',\r\n\t\t\t\t\t}\r\n\t\t\t\t)\r\n\t\t\t\t.withFallbackPosition(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toriginX: 'center',\r\n\t\t\t\t\t\toriginY: 'bottom',\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\toverlayX: 'center',\r\n\t\t\t\t\t\toverlayY: 'top',\r\n\t\t\t\t\t}\r\n\t\t\t\t),\r\n\t\t\toverlayClassName: 'c-tooltip__panel',\r\n\t\t\tportalClassName: 'c-tooltip',\r\n\t\t\thasBackdrop: false,\r\n\t\t\tdisposeAfterClose: true,\r\n\t\t};\r\n\t}\r\n\r\n\tinitializePortal(portal: HTMLElement): void {\r\n\t\tportal.innerHTML = this.cachedTitleTag;\r\n\t}\r\n}\r\n","import { eventListenerOrTimeout } from '../../events/event-listener-or-timeout';\r\nimport { getAnimationEndEventName } from '../get-animation-end-event-name';\r\n\r\nconst animationEndEventName = getAnimationEndEventName();\r\n\r\nexport function addAnimationEndListener(\r\n\telement: Element,\r\n\tcallback: () => void,\r\n\tfallbackDuration = 0,\r\n\tremove = true\r\n): void {\r\n\teventListenerOrTimeout(\r\n\t\tanimationEndEventName,\r\n\t\telement,\r\n\t\tcallback,\r\n\t\tfallbackDuration,\r\n\t\tremove\r\n\t);\r\n}\r\n","export function easeInCirc(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\treturn -distance * (Math.sqrt(1 - timeElapsed * timeElapsed) - 1) + start;\r\n}\r\n","export function easeInCubic(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\treturn distance * timeElapsed * timeElapsed * timeElapsed + start;\r\n}\r\n","export function easeInExpo(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn distance * Math.pow(2, 10 * (timeElapsed / duration - 1)) + start;\r\n}\r\n","export function easeInOutCirc(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (\r\n\t\t\t(-distance / 2) * (Math.sqrt(1 - timeElapsed * timeElapsed) - 1) + start\r\n\t\t);\r\n\t}\r\n\ttimeElapsed -= 2;\r\n\treturn (\r\n\t\t(distance / 2) * (Math.sqrt(1 - timeElapsed * timeElapsed) + 1) + start\r\n\t);\r\n}\r\n","export function easeInOutCubic(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (distance / 2) * timeElapsed * timeElapsed * timeElapsed + start;\r\n\t}\r\n\ttimeElapsed -= 2;\r\n\treturn (distance / 2) * (timeElapsed * timeElapsed * timeElapsed + 2) + start;\r\n}\r\n","export function easeInOutExpo(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (distance / 2) * Math.pow(2, 10 * (timeElapsed - 1)) + start;\r\n\t}\r\n\ttimeElapsed--;\r\n\treturn (distance / 2) * (-Math.pow(2, -10 * timeElapsed) + 2) + start;\r\n}\r\n","export function easeInOutQuad(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (distance / 2) * timeElapsed * timeElapsed + start;\r\n\t}\r\n\ttimeElapsed--;\r\n\treturn (-distance / 2) * (timeElapsed * (timeElapsed - 2) - 1) + start;\r\n}\r\n","export function easeInOutQuart(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (\r\n\t\t\t(distance / 2) * timeElapsed * timeElapsed * timeElapsed * timeElapsed +\r\n\t\t\tstart\r\n\t\t);\r\n\t}\r\n\ttimeElapsed -= 2;\r\n\treturn (\r\n\t\t(-distance / 2) *\r\n\t\t\t(timeElapsed * timeElapsed * timeElapsed * timeElapsed - 2) +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeInOutQuint(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration / 2;\r\n\tif (timeElapsed < 1) {\r\n\t\treturn (\r\n\t\t\t(distance / 2) *\r\n\t\t\t\ttimeElapsed *\r\n\t\t\t\ttimeElapsed *\r\n\t\t\t\ttimeElapsed *\r\n\t\t\t\ttimeElapsed *\r\n\t\t\t\ttimeElapsed +\r\n\t\t\tstart\r\n\t\t);\r\n\t}\r\n\ttimeElapsed -= 2;\r\n\treturn (\r\n\t\t(distance / 2) *\r\n\t\t\t(timeElapsed * timeElapsed * timeElapsed * timeElapsed * timeElapsed +\r\n\t\t\t\t2) +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeInOutSine(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn (\r\n\t\t(-distance / 2) * (Math.cos((Math.PI * timeElapsed) / duration) - 1) + start\r\n\t);\r\n}\r\n","export function easeInQuad(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\treturn distance * timeElapsed * timeElapsed + start;\r\n}\r\n","export function easeInQuart(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\treturn (\r\n\t\tdistance * timeElapsed * timeElapsed * timeElapsed * timeElapsed + start\r\n\t);\r\n}\r\n","export function easeInQuint(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n): number {\r\n\ttimeElapsed /= duration;\r\n\treturn (\r\n\t\tdistance *\r\n\t\t\ttimeElapsed *\r\n\t\t\ttimeElapsed *\r\n\t\t\ttimeElapsed *\r\n\t\t\ttimeElapsed *\r\n\t\t\ttimeElapsed +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeInSine(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn (\r\n\t\t-distance * Math.cos((timeElapsed / duration) * (Math.PI / 2)) +\r\n\t\tdistance +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeOutCirc(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\ttimeElapsed--;\r\n\treturn distance * Math.sqrt(1 - timeElapsed * timeElapsed) + start;\r\n}\r\n","export function easeOutCubic(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\ttimeElapsed--;\r\n\treturn distance * (timeElapsed * timeElapsed * timeElapsed + 1) + start;\r\n}\r\n","export function easeOutExpo(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn distance * (-Math.pow(2, (-10 * timeElapsed) / duration) + 1) + start;\r\n}\r\n","export function easeOutQuad(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\treturn -distance * timeElapsed * (timeElapsed - 2) + start;\r\n}\r\n","export function easeOutQuart(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\ttimeElapsed--;\r\n\treturn (\r\n\t\t-distance * (timeElapsed * timeElapsed * timeElapsed * timeElapsed - 1) +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeOutQuint(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\ttimeElapsed /= duration;\r\n\ttimeElapsed--;\r\n\treturn (\r\n\t\tdistance *\r\n\t\t\t(timeElapsed * timeElapsed * timeElapsed * timeElapsed * timeElapsed +\r\n\t\t\t\t1) +\r\n\t\tstart\r\n\t);\r\n}\r\n","export function easeOutSine(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn distance * Math.sin((timeElapsed / duration) * (Math.PI / 2)) + start;\r\n}\r\n","export function getAnimationEndEventName(): string | false {\r\n\tconst element = document.createElement('_');\r\n\tconst animations = {\r\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention\r\n\t\tWebkitTransition: 'webkitAnimationEnd',\r\n\t\ttransition: 'animationend',\r\n\t};\r\n\r\n\tfor (const animation in animations) {\r\n\t\tif (element.style[animation] !== undefined) {\r\n\t\t\treturn animations[animation];\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n","export * from './animation-function';\r\nexport * from './ease-in-circ';\r\nexport * from './ease-in-cubic';\r\nexport * from './ease-in-expo';\r\nexport * from './ease-in-out-circ';\r\nexport * from './ease-in-out-cubic';\r\nexport * from './ease-in-out-expo';\r\nexport * from './ease-in-out-quad';\r\nexport * from './ease-in-out-quart';\r\nexport * from './ease-in-out-quint';\r\nexport * from './ease-in-out-sine';\r\nexport * from './ease-in-quad';\r\nexport * from './ease-in-quart';\r\nexport * from './ease-in-quint';\r\nexport * from './ease-in-sine';\r\nexport * from './ease-out-circ';\r\nexport * from './ease-out-cubic';\r\nexport * from './ease-out-expo';\r\nexport * from './ease-out-quad';\r\nexport * from './ease-out-quart';\r\nexport * from './ease-out-quint';\r\nexport * from './ease-out-sine';\r\nexport * from './linear-tween';\r\n","export function linearTween(\r\n\ttimeElapsed: number,\r\n\tstart: number,\r\n\tdistance: number,\r\n\tduration: number\r\n) {\r\n\treturn (distance * timeElapsed) / duration + start;\r\n}\r\n","export function formatCssUnit(value: number | string) {\r\n\treturn typeof value === 'string' ? value : `${value}px`;\r\n}\r\n","export function mergeOptions(\r\n\tclassType: { options: T },\r\n\toptions: Partial | undefined,\r\n\telement?: HTMLElement\r\n): T {\r\n\treturn {\r\n\t\t...classType.options,\r\n\t\t...options,\r\n\t\t...(element?.dataset\r\n\t\t\t? Object.keys(element.dataset).reduce((acc, key) => {\r\n\t\t\t\t\tlet val: string | number | boolean | undefined = element.dataset[key];\r\n\t\t\t\t\tif (val) {\r\n\t\t\t\t\t\tif (val === 'true') {\r\n\t\t\t\t\t\t\tval = true;\r\n\t\t\t\t\t\t} else if (val === 'false') {\r\n\t\t\t\t\t\t\tval = false;\r\n\t\t\t\t\t\t} else if (isNumeric(val)) {\r\n\t\t\t\t\t\t\tval = parseFloat(val);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tacc[key] = val;\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn acc;\r\n\t\t\t }, {})\r\n\t\t\t: ({} as any)),\r\n\t};\r\n}\r\n\r\nfunction isNumeric(str: any) {\r\n\treturn !isNaN(str) && !isNaN(parseFloat(str));\r\n}\r\n","export function newGuid(): string {\r\n\treturn 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\tconst r = (Math.random() * 16) | 0,\r\n\t\t\tv = c === 'x' ? r : (r & 0x3) | 0x8;\r\n\t\treturn v.toString(16);\r\n\t});\r\n}\r\n","export function throttleTimeout(throttle: number, fn: () => void): void {\r\n\tif (throttle > 0) {\r\n\t\tsetTimeout(fn, throttle);\r\n\t} else {\r\n\t\tfn();\r\n\t}\r\n}\r\n","/* eslint-disable no-prototype-builtins */\r\nconst ANNOTATIONS = '__gt_compiler_annotations__';\r\nconst PROP_METADATA = '__gt_compiler_prop_metadata__';\r\nconst COMPONENT_CACHE = new Map();\r\n\r\ninterface ComponentConfig {\r\n\tclassName?: string;\r\n\tobserve?: boolean;\r\n}\r\n\r\nexport interface OnInit {\r\n\tonInit(): void;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\ntype ComponentImplementation = any;\r\n\r\ntype ComponentType = new (\r\n\telement: HTMLElement\r\n) => T;\r\n\r\ninterface Query {\r\n\tdescendants: boolean;\r\n\tfirst: boolean;\r\n\tselector: ComponentType;\r\n}\r\n\r\ninterface PropDecoratorConfig {\r\n\tdescendants: boolean;\r\n\tfirst: boolean;\r\n}\r\n\r\ninterface ComponentMetadata {\r\n\ttype: ComponentType;\r\n\tmetadataName: string;\r\n\tclassName: string;\r\n\tobserve: boolean;\r\n\tqueries: Record;\r\n}\r\n\r\nexport const Component = makeDecorator('Component');\r\n\r\nexport const ComponentRef = makePropDecorator('ComponentRef', {\r\n\tfirst: true,\r\n\tdescendants: false,\r\n});\r\n\r\nexport const ComponentRefs = makePropDecorator('ComponentRefs', {\r\n\tfirst: false,\r\n\tdescendants: false,\r\n});\r\n\r\nexport const ChildRef = makePropDecorator('ChildRef', {\r\n\tfirst: true,\r\n\tdescendants: true,\r\n});\r\n\r\nexport const ChildrenRef = makePropDecorator('ChildrenRef', {\r\n\tfirst: false,\r\n\tdescendants: true,\r\n});\r\n\r\nexport function factory(componentTypes: ComponentType[], observeAll = false) {\r\n\treturn function FactoryFunction(\r\n\t\trootElement: HTMLElement | Document = document\r\n\t): void {\r\n\t\tconst metadatas = componentTypes.map((componentType) =>\r\n\t\t\tresolve(componentType)\r\n\t\t);\r\n\r\n\t\tmetadatas.forEach((metadata) => {\r\n\t\t\tcompileComponent(rootElement, metadata);\r\n\t\t});\r\n\r\n\t\taddMutationObserver(\r\n\t\t\tmetadatas.filter((m) => observeAll || m.observe),\r\n\t\t\t(node, metadata) => compileComponent(node, metadata)\r\n\t\t);\r\n\t};\r\n}\r\n\r\nfunction addMutationObserver(\r\n\tmetadatas: ComponentMetadata[],\r\n\trun: (node: HTMLElement, metadata: ComponentMetadata) => void\r\n) {\r\n\tif (metadatas.length > 0) {\r\n\t\tnew MutationObserver((mutations) =>\r\n\t\t\tmutations.forEach((mutation) =>\r\n\t\t\t\tmetadatas.forEach((metadata) =>\r\n\t\t\t\t\tArray.from(mutation.addedNodes)\r\n\t\t\t\t\t\t.filter((node) => node instanceof HTMLElement)\r\n\t\t\t\t\t\t.forEach((node) => run(node as HTMLElement, metadata))\r\n\t\t\t\t)\r\n\t\t\t)\r\n\t\t).observe(document.body, {\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction makeDecorator(name: string) {\r\n\tfunction DecoratorFactory(config: ComponentConfig) {\r\n\t\treturn (cls: ComponentImplementation) => {\r\n\t\t\tif (!cls.hasOwnProperty(ANNOTATIONS)) {\r\n\t\t\t\tObject.defineProperty(cls, ANNOTATIONS, { value: [] });\r\n\t\t\t}\r\n\r\n\t\t\tcls[ANNOTATIONS].push(config);\r\n\t\t\treturn cls;\r\n\t\t};\r\n\t}\r\n\r\n\tDecoratorFactory.prototype.metadataName = name;\r\n\treturn DecoratorFactory;\r\n}\r\n\r\nfunction throwComponentNotResolvable(componentType: ComponentType) {\r\n\tthrow new Error(\r\n\t\t`No @Component annotation for ${\r\n\t\t\tcomponentType ? componentType.name : componentType\r\n\t\t} found!`\r\n\t);\r\n}\r\n\r\nfunction compileComponent(\r\n\troot: HTMLElement | Document,\r\n\tmetadata: ComponentMetadata\r\n) {\r\n\tconst comps = Array.from(root.getElementsByClassName(metadata.className));\r\n\tif (\r\n\t\troot instanceof HTMLElement &&\r\n\t\troot.classList.contains(metadata.className)\r\n\t) {\r\n\t\tcomps.push(root);\r\n\t}\r\n\tconst initializedDatasetKey = `gtComponentInitialized${metadata.type.name}`;\r\n\tcomps.forEach((node) => {\r\n\t\tif (Object.keys((node as HTMLElement).dataset).includes(initializedDatasetKey)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst constructor = new metadata.type((node as HTMLElement));\r\n\t\t(node as HTMLElement).dataset[initializedDatasetKey] = 'true';\r\n\r\n\t\tif (!COMPONENT_CACHE.has(node)) {\r\n\t\t\tCOMPONENT_CACHE.set(node, []);\r\n\t\t}\r\n\r\n\t\tCOMPONENT_CACHE.get(node)?.push(constructor);\r\n\r\n\t\tObject.keys(metadata.queries).forEach((propName) => {\r\n\t\t\tconst query = metadata.queries[propName];\r\n\r\n\t\t\tconst target = resolve(query.selector);\r\n\r\n\t\t\tif (!target) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst targetNode = query.descendants ? node : document;\r\n\t\t\tconst nodes = targetNode.getElementsByClassName(\r\n\t\t\t\ttarget.className\r\n\t\t\t) as HTMLCollectionOf;\r\n\r\n\t\t\tconst cache = Array.from(nodes).map((e) =>\r\n\t\t\t\tgetComponentFromElement(e, query.selector)\r\n\t\t\t);\r\n\r\n\t\t\tconstructor[propName] = query.first ? cache[0] : cache;\r\n\t\t});\r\n\r\n\t\tif (typeof constructor.onInit === 'function') {\r\n\t\t\tconstructor.onInit();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport function getComponentFromElement(\r\n\telement: HTMLElement,\r\n\tcomponentType: ComponentType\r\n) {\r\n\treturn COMPONENT_CACHE.get(element)?.find(\r\n\t\t(c) => c.constructor === componentType\r\n\t);\r\n}\r\n\r\nfunction makePropDecorator(name: string, config: PropDecoratorConfig) {\r\n\tfunction PropDecoratorFactory(componentClass: ComponentType) {\r\n\t\treturn function PropDecorator(\r\n\t\t\ttarget: ComponentImplementation,\r\n\t\t\tmetaName: string\r\n\t\t) {\r\n\t\t\tif (!target.constructor.hasOwnProperty(PROP_METADATA)) {\r\n\t\t\t\tObject.defineProperty(target.constructor, PROP_METADATA, {\r\n\t\t\t\t\tvalue: {},\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tconst meta = target.constructor[PROP_METADATA];\r\n\r\n\t\t\tmeta[metaName] = (meta.hasOwnProperty(metaName) && meta[metaName]) || [];\r\n\t\t\tmeta[metaName].unshift({\r\n\t\t\t\tselector: componentClass,\r\n\t\t\t\tdescendants: config.descendants,\r\n\t\t\t\tfirst: config.first,\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\tPropDecoratorFactory.prototype.metadataName = name;\r\n\treturn PropDecoratorFactory;\r\n}\r\n\r\nfunction annotations(ctor: ComponentType): ComponentConfig[] {\r\n\tif (ctor === null || typeof ctor !== 'function') {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tconst ownAnnotations = ctor.hasOwnProperty(ANNOTATIONS)\r\n\t\t? ctor[ANNOTATIONS]\r\n\t\t: [];\r\n\r\n\treturn [\r\n\t\t...annotations(Object.getPrototypeOf(ctor.prototype)?.constructor),\r\n\t\t...ownAnnotations,\r\n\t];\r\n}\r\n\r\nfunction propMetadata(ctor: ComponentType): Record {\r\n\tif (ctor === null || typeof ctor !== 'function') {\r\n\t\treturn {};\r\n\t}\r\n\r\n\tconst propMetadataVal = {\r\n\t\t...propMetadata(Object.getPrototypeOf(ctor.prototype)?.constructor),\r\n\t};\r\n\r\n\tif (ctor.hasOwnProperty(PROP_METADATA)) {\r\n\t\tObject.keys(ctor[PROP_METADATA]).forEach((propName) => {\r\n\t\t\tconst ownMetadata = propMetadataVal.hasOwnProperty(propName)\r\n\t\t\t\t? propMetadataVal[propName]\r\n\t\t\t\t: [];\r\n\r\n\t\t\tpropMetadataVal[propName] = [\r\n\t\t\t\t...ownMetadata,\r\n\t\t\t\t...ctor[PROP_METADATA][propName],\r\n\t\t\t];\r\n\t\t});\r\n\t}\r\n\r\n\treturn propMetadataVal;\r\n}\r\n\r\nfunction resolve(type: ComponentType): ComponentMetadata {\r\n\tconst metadata = getMetadata(type);\r\n\tconst queries = getQueries(type);\r\n\r\n\treturn {\r\n\t\ttype,\r\n\t\tmetadataName: 'Component',\r\n\t\tclassName: metadata.className,\r\n\t\tobserve: metadata.observe,\r\n\t\tqueries,\r\n\t};\r\n}\r\n\r\nfunction getMetadata(type: ComponentType) {\r\n\tconst typeMetadata = annotations(type);\r\n\r\n\tif (!typeMetadata || typeMetadata.length === 0) {\r\n\t\tthrowComponentNotResolvable(type);\r\n\t}\r\n\r\n\treturn typeMetadata[typeMetadata.length - 1];\r\n}\r\n\r\nfunction getQueries(type: ComponentType) {\r\n\tconst propertyMetadata = propMetadata(type);\r\n\r\n\treturn Object.keys(propertyMetadata).reduce((queries, propName) => {\r\n\t\tconst propMetadata = propertyMetadata[propName];\r\n\r\n\t\treturn {\r\n\t\t\t...queries,\r\n\t\t\t[propName]: propMetadata[propMetadata.length - 1],\r\n\t\t};\r\n\t}, {} as Record);\r\n}\r\n","export function getCookie(key: string): string | null {\r\n\tif (!key) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\tdecodeURIComponent(\r\n\t\t\tdocument.cookie.replace(\r\n\t\t\t\tnew RegExp(\r\n\t\t\t\t\t`(?:(?:^|.*;)\\\\s*${encodeURIComponent(key).replace(\r\n\t\t\t\t\t\t/[-.+*]/g,\r\n\t\t\t\t\t\t'\\\\$&'\r\n\t\t\t\t\t)}\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$`\r\n\t\t\t\t),\r\n\t\t\t\t'$1'\r\n\t\t\t)\r\n\t\t) || null\r\n\t);\r\n}\r\n","export function hasCookie(key: string): boolean {\r\n\tif (!key || /^(?:expires|max-age|path|domain|secure)$/i.test(key)) {\r\n\t\treturn false;\r\n\t}\r\n\treturn new RegExp(\r\n\t\t'(?:^|;\\\\s*)' +\r\n\t\t\tencodeURIComponent(key).replace(/[-.+*]/g, '\\\\$&') +\r\n\t\t\t'\\\\s*\\\\='\r\n\t).test(document.cookie);\r\n}\r\n","export function setCookie(\r\n\tkey: string,\r\n\tvalue: string,\r\n\tend: number | string | Date,\r\n\tpath = '/',\r\n\tdomain = '',\r\n\tsecure = false\r\n): boolean {\r\n\tif (!key || /^(?:expires|max-age|path|domain|secure)$/i.test(key)) {\r\n\t\treturn false;\r\n\t}\r\n\tlet expires = '';\r\n\tif (end) {\r\n\t\tswitch (end.constructor) {\r\n\t\t\tcase Number:\r\n\t\t\t\texpires =\r\n\t\t\t\t\tend === Infinity\r\n\t\t\t\t\t\t? '; expires=Fri, 31 Dec 9999 23:59:59 GMT'\r\n\t\t\t\t\t\t: '; max-age=' + end;\r\n\t\t\t\tbreak;\r\n\t\t\tcase String:\r\n\t\t\t\texpires = `; expires=${end}`;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Date:\r\n\t\t\t\texpires = `; expires=${(end as Date).toUTCString()}`;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\texpires = '';\r\n\t\t}\r\n\t}\r\n\tconst keyStr = encodeURIComponent(key);\r\n\tconst valueStr = encodeURIComponent(value);\r\n\tconst domainStr = `${domain ? `; domain=${domain}` : ''}`;\r\n\tconst pathStr = `${path ? `; path=${path}` : ''}`;\r\n\tconst secureStr = `${secure ? '; secure' : ''}`;\r\n\tdocument.cookie = `${keyStr}=${valueStr}${expires}${domainStr}${pathStr}${secureStr}`;\r\n\r\n\treturn true;\r\n}\r\n","export function addDays(date: Date, days: number): Date {\r\n\tdate.setDate(date.getDate() + days);\r\n\treturn date;\r\n}\r\n","import { isAncestorOfClass } from '../is-ancestor-of-class';\r\n\r\nexport function clickedInsideElementWithClass(\r\n\tevent: MouseEvent,\r\n\tclassName: string\r\n) {\r\n\treturn isAncestorOfClass(event.target as Element, className, true);\r\n}\r\n","export function createNode(html: string): HTMLElement {\r\n\tlet element = document.createElement('div') as HTMLElement;\r\n\telement.innerHTML = html;\r\n\telement = element.firstElementChild as HTMLElement;\r\n\treturn element;\r\n}\r\n","import { getStyles } from '../get-styles';\r\n\r\nexport function getCss(\r\n\telement: Element,\r\n\tname: string,\r\n\tcomputed?: CSSStyleDeclaration\r\n): string | undefined {\r\n\tcomputed = computed || getStyles(element);\r\n\r\n\tif (computed) {\r\n\t\treturn computed.getPropertyValue(name) || computed[name];\r\n\t}\r\n\r\n\treturn undefined;\r\n}\r\n","export function getDocumentHeight(element: Node): number {\r\n\treturn (\r\n\t\twindow.innerHeight ||\r\n\t\telement.ownerDocument?.documentElement.clientHeight ||\r\n\t\tdocument.body.clientHeight\r\n\t);\r\n}\r\n","export function getDocumentWidth(element: Node): number {\r\n\treturn (\r\n\t\twindow.innerWidth ||\r\n\t\telement.ownerDocument?.documentElement.clientWidth ||\r\n\t\tdocument.body.clientWidth\r\n\t);\r\n}\r\n","import { getOffset } from '../get-offset';\r\n\r\nexport function getLeftOffset(element: Element) {\r\n\treturn getOffset(element).left();\r\n}\r\n","export function getOffset(element: Element): {\r\n\ttop: () => number;\r\n\tleft: () => number;\r\n} {\r\n\tconst clientRect = element.getBoundingClientRect();\r\n\r\n\treturn {\r\n\t\ttop: () => {\r\n\t\t\tconst ownerDocument = element.ownerDocument;\r\n\t\t\tconst documentTop = window.pageYOffset || ownerDocument.body.scrollTop;\r\n\t\t\treturn (\r\n\t\t\t\tclientRect.top + documentTop - ownerDocument.documentElement.clientTop\r\n\t\t\t);\r\n\t\t},\r\n\t\tleft: () => {\r\n\t\t\tconst ownerDocument = element.ownerDocument;\r\n\t\t\tconst documentLeft = window.pageXOffset || ownerDocument.body.scrollLeft;\r\n\t\t\treturn (\r\n\t\t\t\tclientRect.left +\r\n\t\t\t\tdocumentLeft -\r\n\t\t\t\townerDocument.documentElement.clientLeft\r\n\t\t\t);\r\n\t\t},\r\n\t};\r\n}\r\n","import { getSelectorFromElement } from '../get-selector-from-element';\r\n\r\nexport function getSelectorElementFromElement(\r\n\telement: Element,\r\n\tattribute = 'data-target',\r\n\tfallbackHref = true\r\n): HTMLElement | null {\r\n\tconst selector = getSelectorFromElement(element, attribute, fallbackHref);\r\n\r\n\tif (selector && selector.indexOf('#') === 0) {\r\n\t\treturn document.getElementById(selector.substr(1, selector.length - 1));\r\n\t}\r\n\r\n\treturn null;\r\n}\r\n","export function getSelectorFromElement(\r\n\telement: Element,\r\n\tattribute = 'data-target',\r\n\tfallbackHref = true\r\n): string {\r\n\tlet selector = element.getAttribute(attribute);\r\n\r\n\tif (!selector && fallbackHref) {\r\n\t\tselector = element.getAttribute('href') || '';\r\n\t\tselector = /^#.*/i.test(selector) ? selector : null;\r\n\t}\r\n\r\n\treturn selector;\r\n}\r\n","export function getStyles(element: Element) {\r\n\tlet view = element.ownerDocument.defaultView;\r\n\r\n\tif (!view || !view.opener) {\r\n\t\tview = window;\r\n\t}\r\n\r\n\treturn view.getComputedStyle(element);\r\n}\r\n","import { getOffset } from '../get-offset';\r\n\r\nexport function getTopOffset(element: Element) {\r\n\treturn getOffset(element).top();\r\n}\r\n","export function getTriggerElementsFromElement(\r\n\telement: Element,\r\n\ttargetAttribute = 'data-target'\r\n) {\r\n\treturn Array.from(\r\n\t\tdocument.querySelectorAll(\r\n\t\t\t`[href=\"#${element.id}\"], [${targetAttribute}=\"#${element.id}\"]`\r\n\t\t)\r\n\t);\r\n}\r\n","export function getWindowScrollTop() {\r\n\tconst root =\r\n\t\tdocument.documentElement || document.body.parentNode || document.body;\r\n\treturn window.pageYOffset !== undefined\r\n\t\t? window.pageYOffset\r\n\t\t: (root as HTMLElement).scrollTop;\r\n}\r\n","type EventListener = (event: Event, trigger?: HTMLElement | undefined) => void;\r\ntype ElementWithListener = {\r\n\telement: HTMLElement;\r\n\tlistener: EventListener;\r\n};\r\n\r\nexport function initializeOpenElements(\r\n\troot: ParentNode | undefined,\r\n\tid: string,\r\n\tlistener: EventListener\r\n): ElementWithListener[] {\r\n\treturn initializeClickElements(\r\n\t\troot,\r\n\t\t`[href=\"#${id}\"], [data-target=\"#${id}\"]`,\r\n\t\tlistener\r\n\t);\r\n}\r\n\r\nexport function initializeDismissElements(\r\n\troot: HTMLElement | undefined,\r\n\tlistener: EventListener\r\n): ElementWithListener[] {\r\n\treturn initializeClickElements(root, '[data-dismiss]', listener);\r\n}\r\n\r\nexport function initializeClickElements(\r\n\troot: ParentNode | undefined,\r\n\tquery: string,\r\n\tlistener: EventListener\r\n): ElementWithListener[] {\r\n\tif (!root) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tconst elementsWithListener = Array.from(\r\n\t\troot.querySelectorAll(query)\r\n\t).map((element) => ({\r\n\t\telement,\r\n\t\tlistener: (e: Event) => listener(e, element),\r\n\t}));\r\n\r\n\taddClickElements(elementsWithListener);\r\n\r\n\treturn elementsWithListener;\r\n}\r\n\r\nexport function addClickElements(elements: ElementWithListener[]): void {\r\n\telements.forEach(({ element, listener }) =>\r\n\t\telement.addEventListener('click', listener)\r\n\t);\r\n}\r\n\r\nexport function removeClickElements(elements: ElementWithListener[]): void {\r\n\telements.forEach(({ element, listener }) =>\r\n\t\telement.removeEventListener('click', listener)\r\n\t);\r\n}\r\n","import { hasClass } from '../has-class';\r\n\r\nexport function isAncestorOfClass(\r\n\telement: Element,\r\n\tclassName: string,\r\n\tincludeSelf: boolean\r\n): boolean {\r\n\tlet parent = element.parentElement;\r\n\tif (includeSelf && element.classList.contains(className)) {\r\n\t\treturn true;\r\n\t}\r\n\twhile (parent && parent.nodeType && parent.nodeType === 1) {\r\n\t\tif (parent.classList.contains(className)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tparent = parent.parentElement;\r\n\t}\r\n\treturn false;\r\n}\r\n","export function isHTMLElement(o: unknown): o is HTMLElement {\r\n\treturn typeof HTMLElement === 'object'\r\n\t\t? o instanceof HTMLElement\r\n\t\t: !!o &&\r\n\t\t\t\ttypeof o === 'object' &&\r\n\t\t\t\to !== null &&\r\n\t\t\t\to instanceof Node &&\r\n\t\t\t\to.nodeType === 1 &&\r\n\t\t\t\ttypeof o.nodeName === 'string';\r\n}\r\n","import { formatCssUnit } from '../../common/format-css-unit';\r\n\r\nexport function safeApplyCssUnit(\r\n\telement: HTMLElement,\r\n\tprop: string,\r\n\tvalue: number | string | undefined\r\n) {\r\n\tif (value || value === 0) {\r\n\t\telement.style[prop] = formatCssUnit(value);\r\n\t}\r\n}\r\n","export type IEventHandler = (args: TArgs) => void;\r\n\r\nclass Subscription {\r\n\tisExecuted = false;\r\n\r\n\tconstructor(public handler: IEventHandler, public isOnce: boolean) {}\r\n\r\n\texecute(args: TArgs) {\r\n\t\tif (!this.isOnce || !this.isExecuted) {\r\n\t\t\tthis.isExecuted = true;\r\n\t\t\tthis.handler(args);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport class EventDispatcher {\r\n\tprivate subscriptions: Subscription[] = [];\r\n\r\n\tdispatch(args: TArgs): void {\r\n\t\tfor (const sub of [...this.subscriptions]) {\r\n\t\t\tsub.execute(args);\r\n\t\t\tthis.cleanup(sub);\r\n\t\t}\r\n\t}\r\n\r\n\tforward(dispatcher: EventDispatcher): void {\r\n\t\tthis.subscribe((args) => dispatcher.dispatch(args));\r\n\t}\r\n\r\n\tsubscribe(fn: IEventHandler): EventDispatcher {\r\n\t\tif (fn) {\r\n\t\t\tthis.subscriptions.push(new Subscription(fn, false));\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\tone(fn: IEventHandler): EventDispatcher {\r\n\t\tif (fn) {\r\n\t\t\tthis.subscriptions.push(new Subscription(fn, true));\r\n\t\t}\r\n\t\treturn this;\r\n\t}\r\n\r\n\thas(fn: IEventHandler): boolean {\r\n\t\tif (!fn) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn this.subscriptions.some((sub) => sub.handler === fn);\r\n\t}\r\n\r\n\tunsubscribe(fn: IEventHandler): EventDispatcher {\r\n\t\tif (!fn) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < this.subscriptions.length; i++) {\r\n\t\t\tif (this.subscriptions[i].handler === fn) {\r\n\t\t\t\tthis.subscriptions.splice(i, 1);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tclear(): void {\r\n\t\tthis.subscriptions.splice(0, this.subscriptions.length);\r\n\t}\r\n\r\n\tprivate cleanup(sub: Subscription) {\r\n\t\tif (sub.isOnce && sub.isExecuted) {\r\n\t\t\tconst i = this.subscriptions.indexOf(sub);\r\n\t\t\tif (i > -1) {\r\n\t\t\t\tthis.subscriptions.splice(i, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","export function eventListenerOrTimeout(\r\n\teventName: string | false,\r\n\telement: Element,\r\n\tcallback: () => void,\r\n\tfallbackDuration = 0,\r\n\tremove = true\r\n): void {\r\n\tif (eventName === false) {\r\n\t\tsetTimeout(() => {\r\n\t\t\tcallback();\r\n\t\t}, fallbackDuration);\r\n\t} else {\r\n\t\tlet called = false;\r\n\t\tconst listener = () => {\r\n\t\t\tcalled = true;\r\n\t\t\tif (remove) {\r\n\t\t\t\telement.removeEventListener(eventName, listener);\r\n\t\t\t}\r\n\t\t\tcallback();\r\n\t\t};\r\n\t\telement.addEventListener(eventName, listener);\r\n\t\tif (fallbackDuration) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (!called) {\r\n\t\t\t\t\telement.dispatchEvent(new CustomEvent(eventName));\r\n\t\t\t\t}\r\n\t\t\t}, fallbackDuration);\r\n\t\t}\r\n\t}\r\n}\r\n","export function eventNamespaceFactory(namespace: string) {\r\n\treturn (element: EventTarget, eventName: string): boolean =>\r\n\t\telement.dispatchEvent(new CustomEvent(eventName + '.' + namespace));\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\nexport const KEYCODES = {\r\n\tDOWN: 40,\r\n\tENTER: 13,\r\n\tESCAPE: 27,\r\n\tSPACE: 32,\r\n\tUP: 38,\r\n};\r\n","import { getCss } from '../dom/get-css';\r\nimport { parseCssUnit } from './parse-css-unit';\r\n\r\nexport function getParsedCssUnit(\r\n\telement: Element,\r\n\tname: string,\r\n\tcomputed?: CSSStyleDeclaration\r\n): number {\r\n\treturn parseCssUnit(getCss(element, name, computed));\r\n}\r\n","export function parseCssUnit(unit: string | undefined): number {\r\n\tconst units = ['px', 'rem', 'em'];\r\n\r\n\tif (!unit || !units.filter((u) => unit.indexOf(u) !== -1).length) {\r\n\t\treturn 0;\r\n\t}\r\n\r\n\tlet parsed = unit.replace(',', '.');\r\n\tunits.forEach((u) => (parsed = parsed.replace(u, '')));\r\n\r\n\treturn Number(parsed);\r\n}\r\n","export * from './position/connected-position-strategy';\r\nexport * from './position/global-position-strategy';\r\nexport * from './position/overlay-position-builder';\r\nexport * from './position/position-strategy';\r\nexport * from './overlay-options';\r\nexport * from './overlay';\r\nexport * from './overlay-implementation';\r\nexport * from './scroll/reposition-scroll-strategy';\r\n\r\n","import { newGuid } from '../common/new-guid';\r\nimport {\r\n\tinitializeDismissElements,\r\n\tinitializeOpenElements,\r\n} from '../dom/initialize-click-elements';\r\nimport { EventDispatcher } from '../events/event-dispatcher';\r\nimport { Overlay } from './overlay';\r\nimport { OverlayOptions } from './overlay-options';\r\n\r\nexport abstract class OverlayImplementation {\r\n\tprotected overlay: Overlay | null | undefined;\r\n\tprivate portalElement: HTMLDivElement;\r\n\r\n\tbeforeOpen = new EventDispatcher();\r\n\tbeforeClose = new EventDispatcher();\r\n\tafterOpened = new EventDispatcher();\r\n\tafterClosed = new EventDispatcher();\r\n\r\n\tconstructor(protected element: HTMLElement) {\r\n\t\tthis.element.id = this.element.id || newGuid();\r\n\t\tthis.portalElement = document.createElement('div');\r\n\t\tinitializeOpenElements(document, this.element.id, (event, trigger) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.toggle(trigger);\r\n\t\t});\r\n\t}\r\n\r\n\topen(trigger?: HTMLElement): void {\r\n\t\tthis.createOverlay(trigger).open();\r\n\t\tinitializeDismissElements(this.overlay?.portalElement, (event) => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.close();\r\n\t\t});\r\n\t}\r\n\r\n\tclose(): void {\r\n\t\tthis.overlay?.close();\r\n\t}\r\n\r\n\ttoggle(trigger?: HTMLElement): void {\r\n\t\tthis.overlay?.isOpen ? this.close() : this.open(trigger);\r\n\t}\r\n\r\n\tprivate createOverlay(trigger?: HTMLElement): Overlay {\r\n\t\tif (!this.overlay) {\r\n\t\t\tthis.initializePortal(this.portalElement);\r\n\r\n\t\t\tthis.overlay = new Overlay(\r\n\t\t\t\tthis.portalElement,\r\n\t\t\t\tnew OverlayOptions(this.getOverlayOptions(trigger))\r\n\t\t\t).create();\r\n\r\n\t\t\tthis.overlay.afterOpened.forward(this.afterOpened);\r\n\t\t\tthis.overlay.afterClosed.forward(this.afterClosed);\r\n\t\t\tthis.overlay.beforeOpen.forward(this.beforeOpen);\r\n\t\t\tthis.overlay.beforeClose.forward(this.beforeClose);\r\n\r\n\t\t\tthis.overlay.onDisposed.subscribe(() => {\r\n\t\t\t\tthis.overlay = null;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.updatePortalElement(this.portalElement);\r\n\t\t}\r\n\t\t\r\n\t\treturn this.overlay;\r\n\t}\r\n\r\n\tabstract getOverlayOptions(trigger?: HTMLElement): OverlayOptions;\r\n\tabstract initializePortal(portal: HTMLElement): void;\r\n\tprotected updatePortalElement(portal: HTMLElement) { return; }\r\n}\r\n","import { PositionStrategy } from './position/position-strategy';\r\nimport { ScrollStrategy } from './scroll/scroll-strategy';\r\n\r\nexport class OverlayOptions {\r\n\tpositionStrategy?: PositionStrategy;\r\n\tscrollStrategy?: ScrollStrategy;\r\n\tclassName? = 'c-overlay';\r\n\tcontainerClassName? = 'c-overlay__container';\r\n\toverlayClassName?: string;\r\n\tbackdropClassName? = 'c-overlay-dark-backdrop';\r\n\tportalClassName?: string;\r\n\thasBackdrop? = true;\r\n\twidth?: number | string;\r\n\theight?: number | string;\r\n\tminWidth?: number | string;\r\n\tminHeight?: number | string;\r\n\tmaxWidth?: number | string;\r\n\tmaxHeight?: number | string;\r\n\ttransitionDuration? = 300;\r\n\tshowingClassName? = 'is-showing';\r\n\tbaseBackdropClassName? = `c-overlay__backdrop`;\r\n\thidingClassName? = 'is-fade-out';\r\n\tvisibleClassName? = 'is-visible';\r\n\tdisposeAfterClose? = false;\r\n\tdetachBackdropBeforeClose? = false;\r\n\tcloseOnBackdropClick? = false;\r\n\tcloseOnEscPressed? = true;\r\n\tcloseOnClick? = false;\r\n\r\n\tconstructor(options?: OverlayOptions) {\r\n\t\tif (options) {\r\n\t\t\tObject.keys(options)\r\n\t\t\t\t.filter((key) => options[key] !== undefined)\r\n\t\t\t\t.forEach((key) => (this[key] = options[key]));\r\n\t\t}\r\n\t\tthis.containerClassName = `${this.className}__container`;\r\n\t\tthis.baseBackdropClassName = `${this.className}__backdrop`;\r\n\t}\r\n}\r\n","import { newGuid } from '../common/new-guid';\r\nimport { clickedInsideElementWithClass } from '../dom/clicked-inside-element-with-class';\r\nimport { safeApplyCssUnit } from '../dom/safe-apply-css-value';\r\nimport { EventDispatcher } from '../events/event-dispatcher';\r\nimport { KEYCODES } from '../keycodes';\r\nimport { addTransitionEndListener } from '../transition/add-transition-end-listener';\r\nimport { OverlayOptions } from './overlay-options';\r\n\r\nexport class Overlay {\r\n\toverlayElement: HTMLElement | undefined;\r\n\tonAttached = new EventDispatcher();\r\n\tonDetached = new EventDispatcher();\r\n\tbeforeOpen = new EventDispatcher();\r\n\tbeforeClose = new EventDispatcher();\r\n\tafterOpened = new EventDispatcher();\r\n\tafterClosed = new EventDispatcher();\r\n\tonDisposed = new EventDispatcher();\r\n\tonKeyboardEvent = new EventDispatcher();\r\n\tbackdropClick = new EventDispatcher();\r\n\toptions: OverlayOptions;\r\n\tattached = false;\r\n\tisOpen = false;\r\n\r\n\tprivate uuid = newGuid();\r\n\tprivate overlayContainerElement: HTMLElement | undefined;\r\n\tprivate backdropElement: HTMLElement | null | undefined;\r\n\r\n\tconstructor(public portalElement: HTMLElement, options?: OverlayOptions) {\r\n\t\tthis.options = new OverlayOptions(options);\r\n\t\toptions?.scrollStrategy?.attach(this);\r\n\t\tif (this.options.portalClassName) {\r\n\t\t\tthis.portalElement.classList.add(this.options.portalClassName);\r\n\t\t}\r\n\r\n\t\tif (this.options.closeOnClick) {\r\n\t\t\tthis.portalElement.addEventListener('click', () =>\r\n\t\t\t\tthis.close()\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tcreate(): Overlay {\r\n\t\tconst overlayContainerElement = document.querySelector(\r\n\t\t\t`.${this.options.containerClassName}`\r\n\t\t);\r\n\r\n\t\tif (overlayContainerElement) {\r\n\t\t\tthis.overlayContainerElement = overlayContainerElement;\r\n\t\t} else {\r\n\t\t\tthis.overlayContainerElement = document.createElement('div');\r\n\t\t\tthis.overlayContainerElement.classList.add(\r\n\t\t\t\tthis.options.containerClassName ?? ''\r\n\t\t\t);\r\n\r\n\t\t\tdocument.body.insertBefore(\r\n\t\t\t\tthis.overlayContainerElement,\r\n\t\t\t\tdocument.body.lastElementChild\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis.overlayElement = document.createElement('div');\r\n\t\tthis.overlayElement.id = `${this.options.className}-${this.uuid}`;\r\n\t\tif (this.options.className) {\r\n\t\t\tthis.overlayElement.classList.add(this.options.className);\r\n\t\t}\r\n\t\tif (this.options.overlayClassName) {\r\n\t\t\tthis.overlayElement.classList.add(this.options.overlayClassName);\r\n\t\t}\r\n\r\n\t\tthis.overlayContainerElement.appendChild(this.overlayElement);\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tdetachBackdrop() {\r\n\t\tif (!this.backdropElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst backdropToDetach = this.backdropElement;\r\n\r\n\t\tconst finishDetach = () => {\r\n\t\t\tbackdropToDetach?.parentNode?.removeChild(backdropToDetach);\r\n\r\n\t\t\tif (this.backdropElement === backdropToDetach) {\r\n\t\t\t\tthis.backdropElement = null;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tbackdropToDetach.classList.remove(this.options.showingClassName ?? '');\r\n\t\tbackdropToDetach.classList.remove(this.options.backdropClassName ?? '');\r\n\t\taddTransitionEndListener(backdropToDetach, finishDetach, 500);\r\n\t\tbackdropToDetach.style.pointerEvents = 'none';\r\n\t}\r\n\r\n\tupdatePosition() {\r\n\t\tthis.options.positionStrategy?.apply();\r\n\t}\r\n\r\n\tupdateSize(sizeConfig: OverlaySizeConfig) {\r\n\t\tthis.options = { ...this.options, ...sizeConfig };\r\n\t\tthis.updateElementSize();\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.attach();\r\n\t\tthis.updatePosition();\r\n\t\tthis.portalElement.classList.add(this.options.showingClassName ?? '');\r\n\r\n\t\tthis.beforeOpen.dispatch();\r\n\t\tthis.isOpen = true;\r\n\r\n\t\tconst finishOpen = () => {\r\n\t\t\tthis.portalElement.classList.remove(this.options.showingClassName ?? '');\r\n\t\t\tthis.portalElement.classList.add(this.options.visibleClassName ?? '');\r\n\t\t\tthis.afterOpened.dispatch();\r\n\t\t};\r\n\r\n\t\taddTransitionEndListener(\r\n\t\t\tthis.portalElement,\r\n\t\t\tfinishOpen,\r\n\t\t\tthis.options.transitionDuration\r\n\t\t);\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.detach();\r\n\r\n\t\tthis.portalElement.classList.add(this.options.hidingClassName ?? '');\r\n\t\tthis.beforeClose.dispatch();\r\n\t\tif (this.options.detachBackdropBeforeClose) {\r\n\t\t\tthis.detachBackdrop();\r\n\t\t}\r\n\r\n\t\tconst finishClose = () => {\r\n\t\t\tthis.portalElement.classList.remove(this.options.hidingClassName ?? '');\r\n\t\t\tthis.portalElement.classList.remove(this.options.showingClassName ?? '');\r\n\t\t\tthis.portalElement.classList.remove(this.options.visibleClassName ?? '');\r\n\t\t\tthis.isOpen = false;\r\n\t\t\tthis.afterClosed.dispatch();\r\n\t\t\tif (this.options.disposeAfterClose) {\r\n\t\t\t\tthis.dispose();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\taddTransitionEndListener(\r\n\t\t\tthis.portalElement,\r\n\t\t\tfinishClose,\r\n\t\t\tthis.options.transitionDuration\r\n\t\t);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tif (this.portalElement && this.portalElement.parentElement) {\r\n\t\t\tthis.portalElement.parentElement.removeChild(this.portalElement);\r\n\t\t}\r\n\r\n\t\tthis.options.positionStrategy?.dispose();\r\n\t\tthis.options.scrollStrategy?.disable();\r\n\t\tthis.detachBackdrop();\r\n\t\tdocument.body.removeEventListener('keydown', this.keydownListener, true);\r\n\t\tthis.onDisposed.dispatch();\r\n\t}\r\n\r\n\tprivate attach() {\r\n\t\tthis.options.positionStrategy?.attach(this);\r\n\t\tthis.options.scrollStrategy?.enable();\r\n\t\tthis.overlayElement?.appendChild(this.portalElement);\r\n\r\n\t\tthis.updateElementSize();\r\n\r\n\t\tif (this.overlayElement) {\r\n\t\t\tthis.overlayElement.style.pointerEvents = 'auto';\r\n\t\t}\r\n\r\n\t\tthis.attachBackdrop();\r\n\r\n\t\tthis.attached = true;\r\n\t\tdocument.body.addEventListener('keydown', this.keydownListener, true);\r\n\t\tthis.onAttached.dispatch();\r\n\t}\r\n\r\n\tprivate detach() {\r\n\t\tif (!this.attached) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.detachBackdrop();\r\n\t\tif (this.overlayElement) {\r\n\t\t\tthis.overlayElement.style.pointerEvents = 'none';\r\n\t\t}\r\n\t\tthis.options.positionStrategy?.detach();\r\n\t\tthis.options.scrollStrategy?.disable();\r\n\t\tdocument.body.removeEventListener('keydown', this.keydownListener, true);\r\n\t\tthis.onDetached.dispatch();\r\n\t}\r\n\r\n\tprivate attachBackdrop() {\r\n\t\tif (!this.options.hasBackdrop) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.backdropElement = document.createElement('div');\r\n\t\tthis.backdropElement.classList.add(\r\n\t\t\tthis.options.baseBackdropClassName ?? ''\r\n\t\t);\r\n\r\n\t\tthis.backdropElement.classList.add(this.options.backdropClassName ?? '');\r\n\t\tif (this.overlayElement) {\r\n\t\t\tthis.overlayElement.parentElement?.insertBefore(\r\n\t\t\t\tthis.backdropElement,\r\n\t\t\t\tthis.overlayElement\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tthis.backdropElement.addEventListener('click', (event) =>\r\n\t\t\tthis.handleBackdropClick(event)\r\n\t\t);\r\n\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\tthis.backdropElement?.classList.add(this.options.showingClassName ?? '');\r\n\t\t});\r\n\t}\r\n\r\n\tprivate updateElementSize() {\r\n\t\tif (!this.overlayElement) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'width', this.options.width);\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'height', this.options.height);\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'minWidth', this.options.minWidth);\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'minHeight', this.options.minHeight);\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'maxWidth', this.options.maxWidth);\r\n\t\tsafeApplyCssUnit(this.overlayElement, 'maxHeight', this.options.maxHeight);\r\n\t}\r\n\r\n\tprivate handleBackdropClick(event: MouseEvent) {\r\n\t\tif (\r\n\t\t\tthis.options.className &&\r\n\t\t\t!clickedInsideElementWithClass(event, this.options.className)\r\n\t\t) {\r\n\t\t\tthis.backdropClick.dispatch(event);\r\n\t\t\tif (this.options.closeOnBackdropClick) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate keydownListener = (event: KeyboardEvent) => {\r\n\t\tthis.onKeyboardEvent.dispatch(event);\r\n\t\tif (this.options.closeOnEscPressed) {\r\n\t\t\tif (event.keyCode === KEYCODES.ESCAPE) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nexport function overlay(element: HTMLElement, options?: OverlayOptions) {\r\n\treturn new Overlay(element, options).create();\r\n}\r\n\r\nexport interface OverlaySizeConfig {\r\n\twidth?: number | string;\r\n\theight?: number | string;\r\n\tminWidth?: number | string;\r\n\tminHeight?: number | string;\r\n\tmaxWidth?: number | string;\r\n\tmaxHeight?: number | string;\r\n}\r\n","import { EventDispatcher } from '../../events/event-dispatcher';\r\nimport {\r\n\tcalculateOverlayElementPosition,\r\n\tcalculateOverlayPoint,\r\n\tcalculatePosition,\r\n\tConnectionPositionPair,\r\n\tgetScrollVisibility,\r\n\tOriginConnectionPosition,\r\n\tOverlayConnectionPosition,\r\n\tOverlayPoint,\r\n\tScrollingVisibility,\r\n} from '../../viewport/calculate-overlay';\r\nimport { Overlay } from '../overlay';\r\nimport { PositionStrategy } from './position-strategy';\r\n\r\nexport interface ConnectedOverlayPositionChange {\r\n\tconnectionPair: ConnectionPositionPair;\r\n\tscrollableViewProperties?: ScrollingVisibility;\r\n}\r\n\r\nexport class ConnectedPositionStrategy implements PositionStrategy {\r\n\tonPositionChange = new EventDispatcher();\r\n\tprivate offsetX = 0;\r\n\tprivate offsetY = 0;\r\n\tprivate scrollables: HTMLElement[] = [];\r\n\tprivate preferredPositions: ConnectionPositionPair[] = [];\r\n\tprivate origin: HTMLElement;\r\n\tprivate pane: HTMLElement | undefined;\r\n\tprivate lastConnectedPosition: ConnectionPositionPair | undefined;\r\n\tprivate applied = false;\r\n\tprivate positionLocked = false;\r\n\tprivate portal: HTMLElement;\r\n\tprivate updateTransformOrigin = false;\r\n\r\n\tconstructor(private connectedTo: HTMLElement) {\r\n\t\tthis.origin = this.connectedTo;\r\n\t}\r\n\r\n\tget positions() {\r\n\t\treturn this.preferredPositions;\r\n\t}\r\n\r\n\tattach(overlayRef: Overlay): void {\r\n\t\tthis.pane = overlayRef.overlayElement;\r\n\t\tthis.portal = overlayRef.portalElement;\r\n\t\twindow.addEventListener('resize', this.handleResizeChange);\r\n\t}\r\n\r\n\tdetach() {\r\n\t\tthis.applied = false;\r\n\t\twindow.removeEventListener('resize', this.handleResizeChange);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis.detach();\r\n\t}\r\n\r\n\tapply() {\r\n\t\tlet overlayPoint: OverlayPoint;\r\n\t\tlet overlayPosition: ConnectionPositionPair;\r\n\t\tif (this.applied && this.positionLocked && this.lastConnectedPosition) {\r\n\t\t\toverlayPosition =\r\n\t\t\t\tthis.lastConnectedPosition || this.preferredPositions[0];\r\n\r\n\t\t\toverlayPoint = calculateOverlayPoint(\r\n\t\t\t\tthis.origin.getBoundingClientRect(),\r\n\t\t\t\tthis.pane.getBoundingClientRect(),\r\n\t\t\t\toverlayPosition,\r\n\t\t\t\tthis.offsetX,\r\n\t\t\t\tthis.offsetY\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tthis.applied = true;\r\n\r\n\t\t\tconst { isFallback, position, point } = calculatePosition(\r\n\t\t\t\tthis.origin.getBoundingClientRect(),\r\n\t\t\t\tthis.pane.getBoundingClientRect(),\r\n\t\t\t\tthis.preferredPositions,\r\n\t\t\t\tthis.offsetX,\r\n\t\t\t\tthis.offsetY\r\n\t\t\t);\r\n\r\n\t\t\toverlayPosition = position;\r\n\t\t\toverlayPoint = point;\r\n\r\n\t\t\tif (!isFallback) {\r\n\t\t\t\tthis.lastConnectedPosition = position;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst { x, y, verticalStyleProperty, horizontalStyleProperty } =\r\n\t\t\tcalculateOverlayElementPosition(\r\n\t\t\t\tthis.pane.getBoundingClientRect(),\r\n\t\t\t\toverlayPoint,\r\n\t\t\t\toverlayPosition\r\n\t\t\t);\r\n\r\n\t\tthis.pane.style.top = '';\r\n\t\tthis.pane.style.bottom = '';\r\n\t\tthis.pane.style.left = '';\r\n\t\tthis.pane.style.right = '';\r\n\r\n\t\tthis.pane.style[verticalStyleProperty] = `${y}px`;\r\n\t\tthis.pane.style[horizontalStyleProperty] = `${x}px`;\r\n\r\n\t\tthis.onPositionChange.dispatch({\r\n\t\t\tconnectionPair: overlayPosition,\r\n\t\t\tscrollableViewProperties: getScrollVisibility(\r\n\t\t\t\tthis.pane,\r\n\t\t\t\tthis.origin,\r\n\t\t\t\tthis.scrollables\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\tif (this.updateTransformOrigin) {\r\n\t\t\tconst originX = overlayPosition.overlayX !== 'start' ? 'right' : 'left';\r\n\t\t\tconst originY = overlayPosition.overlayY === 'top' ? 'top' : 'bottom';\r\n\t\t\tthis.portal.style.transformOrigin = `${originX} ${originY}`;\r\n\t\t}\r\n\t}\r\n\r\n\twithScrollableContainers(scrollables: HTMLElement[]) {\r\n\t\tthis.scrollables = scrollables;\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithFallbackPosition(\r\n\t\toriginPos: OriginConnectionPosition,\r\n\t\toverlayPos: OverlayConnectionPosition,\r\n\t\toffsetX?: number,\r\n\t\toffsetY?: number\r\n\t) {\r\n\t\tthis.preferredPositions.push(\r\n\t\t\tnew ConnectionPositionPair(originPos, overlayPos, offsetX, offsetY)\r\n\t\t);\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithOffsetX(offset: number) {\r\n\t\tthis.offsetX = offset;\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithOffsetY(offset: number) {\r\n\t\tthis.offsetY = offset;\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithLockedPosition(isLocked: boolean) {\r\n\t\tthis.positionLocked = isLocked;\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithPositions(positions: ConnectionPositionPair[]) {\r\n\t\tthis.preferredPositions = positions.slice();\r\n\t\treturn this;\r\n\t}\r\n\r\n\twithTransformOriginUpdate() {\r\n\t\tthis.updateTransformOrigin = true;\r\n\t}\r\n\r\n\tsetOrigin(origin: HTMLElement) {\r\n\t\tthis.origin = origin;\r\n\t\treturn this;\r\n\t}\r\n\r\n\tprivate handleResizeChange = () => {\r\n\t\tthis.apply();\r\n\t};\r\n}\r\n","import { PositionStrategy } from './position-strategy';\r\nimport { Overlay } from '../overlay';\r\n\r\nexport class GlobalPositionStrategy implements PositionStrategy {\r\n\tprivate overlayRef: Overlay;\r\n\tprivate cssPosition = 'static';\r\n\tprivate topOffset = '';\r\n\tprivate bottomOffset = '';\r\n\tprivate leftOffset = '';\r\n\tprivate rightOffset = '';\r\n\tprivate alignItems = '';\r\n\tprivate justifyContent = '';\r\n\tprivate width = '';\r\n\tprivate height = '';\r\n\tprivate wrapper: HTMLElement | undefined;\r\n\r\n\tdetach() {}\r\n\r\n\tattach(overlayRef: Overlay) {\r\n\t\tthis.overlayRef = overlayRef;\r\n\r\n\t\tif (this.width && !overlayRef.options.width) {\r\n\t\t\toverlayRef.updateSize({ width: this.width });\r\n\t\t}\r\n\r\n\t\tif (this.height && !overlayRef.options.height) {\r\n\t\t\toverlayRef.updateSize({ height: this.height });\r\n\t\t}\r\n\t}\r\n\r\n\ttop(value = '') {\r\n\t\tthis.bottomOffset = '';\r\n\t\tthis.topOffset = value;\r\n\t\tthis.alignItems = 'flex-start';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tleft(value = '') {\r\n\t\tthis.rightOffset = '';\r\n\t\tthis.leftOffset = value;\r\n\t\tthis.justifyContent = 'flex-start';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tbottom(value = '') {\r\n\t\tthis.topOffset = '';\r\n\t\tthis.bottomOffset = value;\r\n\t\tthis.alignItems = 'flex-end';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tright(value = '') {\r\n\t\tthis.leftOffset = '';\r\n\t\tthis.rightOffset = value;\r\n\t\tthis.justifyContent = 'flex-end';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tcenterHorizontally(offset = '') {\r\n\t\tthis.left(offset);\r\n\t\tthis.justifyContent = 'center';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tcenterVertically(offset = '') {\r\n\t\tthis.top(offset);\r\n\t\tthis.alignItems = 'center';\r\n\t\treturn this;\r\n\t}\r\n\r\n\tapply() {\r\n\t\tif (!this.overlayRef.attached) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!this.wrapper && this.overlayRef.overlayElement.parentNode) {\r\n\t\t\tthis.wrapper = document.createElement('div');\r\n\t\t\tthis.wrapper.classList.add('c-overlay__global');\r\n\t\t\tthis.overlayRef.overlayElement.parentNode.insertBefore(\r\n\t\t\t\tthis.wrapper,\r\n\t\t\t\tthis.overlayRef.overlayElement\r\n\t\t\t);\r\n\t\t\tthis.wrapper.appendChild(this.overlayRef.overlayElement);\r\n\t\t}\r\n\r\n\t\tthis.overlayRef.overlayElement.style.position = this.cssPosition;\r\n\t\tthis.overlayRef.overlayElement.style.marginLeft =\r\n\t\t\tthis.overlayRef.options.width === '100%' ? '0' : this.leftOffset;\r\n\t\tthis.overlayRef.overlayElement.style.marginTop =\r\n\t\t\tthis.overlayRef.options.height === '100%' ? '0' : this.topOffset;\r\n\t\tthis.overlayRef.overlayElement.style.marginBottom = this.bottomOffset;\r\n\t\tthis.overlayRef.overlayElement.style.marginRight = this.rightOffset;\r\n\r\n\t\tthis.overlayRef.overlayElement.parentElement.style.justifyContent =\r\n\t\t\tthis.overlayRef.options.width === '100%'\r\n\t\t\t\t? 'flex-start'\r\n\t\t\t\t: this.justifyContent;\r\n\t\tthis.overlayRef.overlayElement.parentElement.style.alignItems =\r\n\t\t\tthis.overlayRef.options.height === '100%'\r\n\t\t\t\t? 'flex-start'\r\n\t\t\t\t: this.alignItems;\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis.wrapper?.parentNode?.removeChild(this.wrapper);\r\n\t\tthis.wrapper = null;\r\n\t}\r\n}\r\n","import {\r\n\tOriginConnectionPosition,\r\n\tOverlayConnectionPosition,\r\n} from '../../viewport/calculate-overlay';\r\nimport { ConnectedPositionStrategy } from './connected-position-strategy';\r\nimport { GlobalPositionStrategy } from './global-position-strategy';\r\n\r\nexport class OverlayPositionBuilder {\r\n\tstatic global() {\r\n\t\treturn new GlobalPositionStrategy();\r\n\t}\r\n\r\n\tstatic connectedTo(\r\n\t\telementRef: HTMLElement\r\n\t) {\r\n\t\treturn new ConnectedPositionStrategy(elementRef);\r\n\t}\r\n}\r\n","import { Overlay } from '../overlay';\r\nimport { ScrollStrategy } from './scroll-strategy';\r\n\r\nexport abstract class BaseScrollStrategy implements ScrollStrategy {\r\n\tprotected overlayRef: Overlay;\r\n\tprotected applied = false;\r\n\r\n\tattach(overlayRef: Overlay) {\r\n\t\tthis.overlayRef = overlayRef;\r\n\t}\r\n\r\n\tenable() {\r\n\t\tif (!this.applied) {\r\n\t\t\tthis.handleEnable();\r\n\t\t\tthis.applied = true;\r\n\t\t}\r\n\t}\r\n\r\n\tdisable() {\r\n\t\tif (this.applied) {\r\n\t\t\tthis.handleDisable();\r\n\t\t\tthis.applied = false;\r\n\t\t}\r\n\t}\r\n\r\n\tabstract handleEnable(): void;\r\n\tabstract handleDisable(): void;\r\n}\r\n","import { throttleTimeout } from '../../common/throttleTimeout';\r\nimport { isElementOutsideWindow } from '../../viewport/is-element-outside-window';\r\nimport { BaseScrollStrategy } from './base-scroll-strategy';\r\n\r\nexport interface RepositionScrollStrategyConfig {\r\n\tscrollThrottle?: number;\r\n\tautoClose?: boolean;\r\n}\r\n\r\nexport class RepositionScrollStrategy extends BaseScrollStrategy {\r\n\tconstructor(private config?: RepositionScrollStrategyConfig) {\r\n\t\tsuper();\r\n\t}\r\n\r\n\thandleEnable() {\r\n\t\twindow.addEventListener('scroll', this.handleScroll);\r\n\t}\r\n\r\n\thandleDisable() {\r\n\t\twindow.removeEventListener('scroll', this.handleScroll);\r\n\t}\r\n\r\n\tprivate handleScroll = () => {\r\n\t\tconst autoClose = this.config ? this.config.autoClose : true;\r\n\r\n\t\tthrottleTimeout(this.config?.scrollThrottle ?? 0, () => {\r\n\t\t\tthis.overlayRef.updatePosition();\r\n\r\n\t\t\tif (autoClose) {\r\n\t\t\t\tif (isElementOutsideWindow(this.overlayRef.overlayElement)) {\r\n\t\t\t\t\tthis.disable();\r\n\t\t\t\t\tthis.overlayRef.close();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n}\r\n","import { AnimationFunction } from '../../../helpers/animation/animation-function';\r\nimport { linearTween } from '../../../helpers/animation/linear-tween';\r\nimport { scrollToOffset } from '../scroll-to-offset';\r\n\r\nexport function scrollToElement(\r\n\ttarget: Element,\r\n\tanimation: AnimationFunction = linearTween,\r\n\tduration = 300,\r\n\toffset = 0,\r\n\twrapper: HTMLElement | Window = window\r\n) {\r\n\tconst top =\r\n\t\twrapper !== window\r\n\t\t\t? (target as HTMLElement).offsetTop - (wrapper as HTMLElement).scrollTop\r\n\t\t\t: target.getBoundingClientRect().top;\r\n\r\n\treturn scrollToOffset(top, animation, duration, offset, wrapper);\r\n}\r\n","import { AnimationFunction } from '../../../helpers/animation/animation-function';\r\nimport { linearTween } from '../../../helpers/animation/linear-tween';\r\nimport { scrollTo } from '../scroll-to';\r\n\r\nexport function scrollToOffset(\r\n\tdistance: number,\r\n\tanimationFunction: AnimationFunction = linearTween,\r\n\tduration = 300,\r\n\toffset = 0,\r\n\twrapper: HTMLElement | Window = window\r\n) {\r\n\tscrollTo(distance + offset, animationFunction, duration, wrapper);\r\n}\r\n","import { AnimationFunction } from '../../../helpers/animation/animation-function';\r\nimport { getWindowScrollTop } from '../../../helpers/dom/get-window-scroll-top';\r\n\r\nexport function scrollTo(\r\n\tdistance: number,\r\n\tanimationFunction: AnimationFunction = (t, b, c, d) => (c * t) / d + b,\r\n\tduration = 300,\r\n\twrapper: HTMLElement | Window = window\r\n) {\r\n\tlet start = getWindowScrollTop();\r\n\tlet timeStart: number;\r\n\tlet timeElapsed: number;\r\n\r\n\tif (wrapper instanceof HTMLElement) {\r\n\t\tstart = wrapper.scrollTop;\r\n\t}\r\n\r\n\trequestAnimationFrame.call(window, (time) => {\r\n\t\ttimeStart = time;\r\n\t\tloop(time);\r\n\t});\r\n\r\n\tfunction loop(time) {\r\n\t\ttimeElapsed = time - timeStart;\r\n\r\n\t\tif (wrapper instanceof Window) {\r\n\t\t\twrapper.scrollTo(\r\n\t\t\t\t0,\r\n\t\t\t\tanimationFunction(timeElapsed, start, distance, duration)\r\n\t\t\t);\r\n\r\n\t\t\tif (timeElapsed < duration) {\r\n\t\t\t\trequestAnimationFrame.call(window, loop);\r\n\t\t\t} else {\r\n\t\t\t\twrapper.scrollTo(0, start + distance);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\twrapper.scrollTop = animationFunction(\r\n\t\t\t\ttimeElapsed,\r\n\t\t\t\tstart,\r\n\t\t\t\tdistance,\r\n\t\t\t\tduration\r\n\t\t\t);\r\n\r\n\t\t\tif (timeElapsed < duration) {\r\n\t\t\t\trequestAnimationFrame.call(window, loop);\r\n\t\t\t} else {\r\n\t\t\t\twrapper.scrollTop = start + distance;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { eventListenerOrTimeout } from '../../events/event-listener-or-timeout';\r\nimport { getTransitionEndEventName } from '../get-transition-end-event-name';\r\n\r\nconst transitionEndEventName = getTransitionEndEventName();\r\n\r\nexport function addTransitionEndListener(\r\n\telement: Element,\r\n\tcallback: () => void,\r\n\tfallbackDuration = 0,\r\n\tremove = true\r\n): void {\r\n\teventListenerOrTimeout(\r\n\t\ttransitionEndEventName,\r\n\t\telement,\r\n\t\tcallback,\r\n\t\tfallbackDuration,\r\n\t\tremove\r\n\t);\r\n}\r\n","export function getTransitionEndEventName(): string | false {\r\n\tconst element = document.createElement('_');\r\n\tconst transitions = {\r\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention\r\n\t\tWebkitTransition: 'webkitTransitionEnd',\r\n\t\ttransition: 'transitionend',\r\n\t};\r\n\r\n\tfor (const transition in transitions) {\r\n\t\tif (element.style[transition] !== undefined) {\r\n\t\t\treturn transitions[transition];\r\n\t\t}\r\n\t}\r\n\r\n\treturn false;\r\n}\r\n","import { isElementClippedByScrolling } from '../is-element-clipped-by-scrolling';\r\nimport { isElementScrolledOutsideView } from '../is-element-scrolled-outside-view';\r\n\r\nexport interface Point {\r\n\tx: number;\r\n\ty: number;\r\n}\r\n\r\nexport interface OverlayPoint extends Point {\r\n\tvisibleArea: number;\r\n\tfitsInViewport: boolean;\r\n}\r\n\r\nexport type HorizontalConnectionPos = 'start' | 'center' | 'end';\r\nexport type VerticalConnectionPos = 'top' | 'center' | 'bottom';\r\n\r\nexport interface OriginConnectionPosition {\r\n\toriginX: HorizontalConnectionPos;\r\n\toriginY: VerticalConnectionPos;\r\n}\r\n\r\nexport interface OverlayConnectionPosition {\r\n\toverlayX: HorizontalConnectionPos;\r\n\toverlayY: VerticalConnectionPos;\r\n}\r\n\r\nexport class ConnectionPositionPair {\r\n\toriginX: HorizontalConnectionPos;\r\n\toriginY: VerticalConnectionPos;\r\n\toverlayX: HorizontalConnectionPos;\r\n\toverlayY: VerticalConnectionPos;\r\n\r\n\tconstructor(\r\n\t\torigin: OriginConnectionPosition,\r\n\t\toverlay: OverlayConnectionPosition,\r\n\t\tpublic offsetX?: number,\r\n\t\tpublic offsetY?: number\r\n\t) {\r\n\t\tthis.originX = origin.originX;\r\n\t\tthis.originY = origin.originY;\r\n\t\tthis.overlayX = overlay.overlayX;\r\n\t\tthis.overlayY = overlay.overlayY;\r\n\t}\r\n}\r\n\r\nexport interface ScrollingVisibility {\r\n\tisOriginClipped: boolean;\r\n\tisOriginOutsideView: boolean;\r\n\tisOverlayClipped: boolean;\r\n\tisOverlayOutsideView: boolean;\r\n}\r\n\r\nexport function calculateOverlayElementPosition(\r\n\toverlayRect: ClientRect,\r\n\toverlayPoint: Point,\r\n\tpos: ConnectionPositionPair\r\n) {\r\n\tconst verticalStyleProperty = pos.overlayY === 'bottom' ? 'bottom' : 'top';\r\n\r\n\tconst y =\r\n\t\tverticalStyleProperty === 'top'\r\n\t\t\t? overlayPoint.y\r\n\t\t\t: document.documentElement.clientHeight -\r\n\t\t\t (overlayPoint.y + overlayRect.height);\r\n\r\n\tconst horizontalStyleProperty = pos.overlayX === 'end' ? 'right' : 'left';\r\n\r\n\tconst x =\r\n\t\thorizontalStyleProperty === 'left'\r\n\t\t\t? overlayPoint.x\r\n\t\t\t: document.documentElement.clientWidth -\r\n\t\t\t (overlayPoint.x + overlayRect.width);\r\n\r\n\treturn {\r\n\t\tverticalStyleProperty,\r\n\t\thorizontalStyleProperty,\r\n\t\tx,\r\n\t\ty,\r\n\t};\r\n}\r\n\r\nfunction getOriginConnectionPoint(\r\n\toriginRect: DOMRect,\r\n\tpos: ConnectionPositionPair\r\n): Point {\r\n\tconst originStartX = originRect.left;\r\n\tconst originEndX = originRect.right;\r\n\r\n\tlet x: number;\r\n\tif (pos.originX === 'center') {\r\n\t\tx = originStartX + originRect.width / 2;\r\n\t} else {\r\n\t\tx = pos.originX === 'start' ? originStartX : originEndX;\r\n\t}\r\n\r\n\tlet y: number;\r\n\tif (pos.originY === 'center') {\r\n\t\ty = originRect.top + originRect.height / 2;\r\n\t} else {\r\n\t\ty = pos.originY === 'top' ? originRect.top : originRect.bottom;\r\n\t}\r\n\r\n\treturn { x, y };\r\n}\r\n\r\nfunction getOverlayPoint(\r\n\toriginPoint: Point,\r\n\toverlayRect: ClientRect,\r\n\tpos: ConnectionPositionPair,\r\n\tbaseOffsetX: number,\r\n\tbaseOffsetY: number\r\n): OverlayPoint {\r\n\tconst viewportSize = {\r\n\t\twidth: window.innerWidth,\r\n\t\theight: window.innerHeight,\r\n\t};\r\n\r\n\tlet overlayStartX: number;\r\n\tif (pos.overlayX === 'center') {\r\n\t\toverlayStartX = -overlayRect.width / 2;\r\n\t} else if (pos.overlayX === 'start') {\r\n\t\toverlayStartX = 0;\r\n\t} else {\r\n\t\toverlayStartX = -overlayRect.width;\r\n\t}\r\n\r\n\tlet overlayStartY: number;\r\n\tif (pos.overlayY === 'center') {\r\n\t\toverlayStartY = -overlayRect.height / 2;\r\n\t} else {\r\n\t\toverlayStartY = pos.overlayY === 'top' ? 0 : -overlayRect.height;\r\n\t}\r\n\r\n\tconst offsetX = pos.offsetX === undefined ? baseOffsetX : pos.offsetX;\r\n\tconst offsetY = pos.offsetY === undefined ? baseOffsetY : pos.offsetY;\r\n\r\n\tconst x = originPoint.x + overlayStartX + offsetX;\r\n\tconst y = originPoint.y + overlayStartY + offsetY;\r\n\r\n\tconst leftOverflow = 0 - x;\r\n\tconst rightOverflow = x + overlayRect.width - viewportSize.width;\r\n\tconst topOverflow = 0 - y;\r\n\tconst bottomOverflow = y + overlayRect.height - viewportSize.height;\r\n\r\n\tconst visibleWidth = subtractOverflows(\r\n\t\toverlayRect.width,\r\n\t\tleftOverflow,\r\n\t\trightOverflow\r\n\t);\r\n\tconst visibleHeight = subtractOverflows(\r\n\t\toverlayRect.height,\r\n\t\ttopOverflow,\r\n\t\tbottomOverflow\r\n\t);\r\n\r\n\tconst visibleArea = visibleWidth * visibleHeight;\r\n\tconst fitsInViewport = overlayRect.width * overlayRect.height === visibleArea;\r\n\r\n\treturn { x, y, fitsInViewport, visibleArea };\r\n}\r\n\r\nfunction subtractOverflows(length: number, ...overflows: number[]): number {\r\n\treturn overflows.reduce((currentValue: number, currentOverflow: number) => {\r\n\t\treturn currentValue - Math.max(currentOverflow, 0);\r\n\t}, length);\r\n}\r\n\r\nexport function getScrollVisibility(\r\n\toverlay: HTMLElement,\r\n\torigin: HTMLElement,\r\n\tscrollables: HTMLElement[]\r\n): ScrollingVisibility {\r\n\tconst originBounds = origin.getBoundingClientRect();\r\n\tconst overlayBounds = overlay.getBoundingClientRect();\r\n\tconst scrollContainerBounds = scrollables.map((s) =>\r\n\t\ts.getBoundingClientRect()\r\n\t);\r\n\r\n\treturn {\r\n\t\tisOriginClipped: isElementClippedByScrolling(\r\n\t\t\toriginBounds,\r\n\t\t\tscrollContainerBounds\r\n\t\t),\r\n\t\tisOriginOutsideView: isElementScrolledOutsideView(\r\n\t\t\toriginBounds,\r\n\t\t\tscrollContainerBounds\r\n\t\t),\r\n\t\tisOverlayClipped: isElementClippedByScrolling(\r\n\t\t\toverlayBounds,\r\n\t\t\tscrollContainerBounds\r\n\t\t),\r\n\t\tisOverlayOutsideView: isElementScrolledOutsideView(\r\n\t\t\toverlayBounds,\r\n\t\t\tscrollContainerBounds\r\n\t\t),\r\n\t};\r\n}\r\n\r\nexport function calculateOverlayPoint(\r\n\toriginRect: DOMRect,\r\n\toverlayRect: DOMRect,\r\n\tpos: ConnectionPositionPair,\r\n\toffsetX: number,\r\n\toffsetY: number\r\n): OverlayPoint {\r\n\tconst originPoint = getOriginConnectionPoint(originRect, pos);\r\n\treturn getOverlayPoint(originPoint, overlayRect, pos, offsetX, offsetY);\r\n}\r\n\r\nexport function calculatePosition(\r\n\torigin: DOMRect,\r\n\toverlay: DOMRect,\r\n\tpreferredPositions: ConnectionPositionPair[],\r\n\toffsetX: number,\r\n\toffsetY: number\r\n) {\r\n\tlet fallbackPoint: OverlayPoint | undefined;\r\n\tlet fallbackPosition: ConnectionPositionPair | undefined;\r\n\r\n\tfor (const pos of preferredPositions) {\r\n\t\tconst overlayPoint = calculateOverlayPoint(\r\n\t\t\torigin,\r\n\t\t\toverlay,\r\n\t\t\tpos,\r\n\t\t\toffsetX,\r\n\t\t\toffsetY\r\n\t\t);\r\n\t\tif (overlayPoint.fitsInViewport) {\r\n\t\t\treturn {\r\n\t\t\t\tpoint: overlayPoint,\r\n\t\t\t\tposition: pos,\r\n\t\t\t\tisFallback: false,\r\n\t\t\t};\r\n\t\t} else if (\r\n\t\t\t!fallbackPoint ||\r\n\t\t\tfallbackPoint.visibleArea < overlayPoint.visibleArea\r\n\t\t) {\r\n\t\t\tfallbackPoint = overlayPoint;\r\n\t\t\tfallbackPosition = pos;\r\n\t\t}\r\n\t}\r\n\r\n\treturn {\r\n\t\tpoint: fallbackPoint,\r\n\t\tposition: fallbackPosition,\r\n\t\tisFallback: true,\r\n\t};\r\n}\r\n","import { getTopOffset } from '../../dom/get-top-offset';\r\nimport { getWindowScrollTop } from '../../dom/get-window-scroll-top';\r\nimport { isHTMLElement } from '../../dom/is-html-element';\r\n\r\nexport function isAboveOfViewport(\r\n\telement: HTMLElement,\r\n\tcontainer: Node,\r\n\tthreshold: number\r\n): boolean {\r\n\tlet fold;\r\n\tif (container === document) {\r\n\t\tfold = getWindowScrollTop();\r\n\t} else if (isHTMLElement(container)) {\r\n\t\tfold = getTopOffset(container);\r\n\t} else {\r\n\t\tthrow new DOMException(\r\n\t\t\t'container needs to be document or of type HTMLElement'\r\n\t\t);\r\n\t}\r\n\r\n\treturn fold >= getTopOffset(element) + threshold + element.offsetHeight;\r\n}\r\n","import { getDocumentHeight } from '../../dom/get-document-height';\r\nimport { getTopOffset } from '../../dom/get-top-offset';\r\nimport { getWindowScrollTop } from '../../dom/get-window-scroll-top';\r\nimport { isHTMLElement } from '../../dom/is-html-element';\r\n\r\nexport function isBelowOfViewport(\r\n\telement: Element,\r\n\tcontainer: Node,\r\n\tthreshold: number\r\n): boolean {\r\n\tlet fold;\r\n\tif (container === document) {\r\n\t\tfold = getDocumentHeight(element) + getWindowScrollTop();\r\n\t} else if (isHTMLElement(container)) {\r\n\t\tfold = getTopOffset(container) + container.offsetHeight;\r\n\t} else {\r\n\t\tthrow new DOMException(\r\n\t\t\t'container needs to be document or of type HTMLElement'\r\n\t\t);\r\n\t}\r\n\r\n\treturn fold <= getTopOffset(element) - threshold;\r\n}\r\n","/**\r\n * Gets whether an element is clipped by any of its scrolling containers.\r\n * @param element Dimensions of the element (from getBoundingClientRect)\r\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\r\n * @returns Whether the element is clipped\r\n * @docs-private\r\n */\r\nexport function isElementClippedByScrolling(\r\n\telement: DOMRect,\r\n\tscrollContainers: DOMRect[]\r\n) {\r\n\treturn scrollContainers.some((scrollContainerRect) => {\r\n\t\tconst clippedAbove = element.top < scrollContainerRect.top;\r\n\t\tconst clippedBelow = element.bottom > scrollContainerRect.bottom;\r\n\t\tconst clippedLeft = element.left < scrollContainerRect.left;\r\n\t\tconst clippedRight = element.right > scrollContainerRect.right;\r\n\r\n\t\treturn clippedAbove || clippedBelow || clippedLeft || clippedRight;\r\n\t});\r\n}\r\n","import { isElementScrolledOutsideView } from '../is-element-scrolled-outside-view';\r\n\r\nexport function isElementOutsideWindow(element: Element): boolean {\r\n\tconst overlayRect = element.getBoundingClientRect();\r\n\r\n\tconst parentRects = [\r\n\t\t{\r\n\t\t\twidth: window.innerWidth,\r\n\t\t\theight: window.innerHeight,\r\n\t\t\tbottom: window.innerHeight,\r\n\t\t\tright: window.innerWidth,\r\n\t\t\ttop: 0,\r\n\t\t\tleft: 0,\r\n\t\t},\r\n\t];\r\n\r\n\treturn isElementScrolledOutsideView(overlayRect, parentRects);\r\n}\r\n","/**\r\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\r\n * @param element Dimensions of the element (from getBoundingClientRect)\r\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\r\n * @returns Whether the element is scrolled out of view\r\n * @docs-private\r\n */\r\nexport function isElementScrolledOutsideView(\r\n\telement: DOMRect,\r\n\tscrollContainers: DOMRect[]\r\n) {\r\n\treturn scrollContainers.some((containerBounds) => {\r\n\t\tconst outsideAbove = element.bottom < containerBounds.top;\r\n\t\tconst outsideBelow = element.top > containerBounds.bottom;\r\n\t\tconst outsideLeft = element.right < containerBounds.left;\r\n\t\tconst outsideRight = element.left > containerBounds.right;\r\n\r\n\t\treturn outsideAbove || outsideBelow || outsideLeft || outsideRight;\r\n\t});\r\n}\r\n","import { isBelowOfViewport } from '../is-below-of-viewport';\r\nimport { isAboveOfViewport } from '../is-above-of-viewport';\r\nimport { isRightOfViewport } from '../is-right-of-viewport';\r\nimport { isLeftOfViewport } from '../is-left-of-viewport';\r\n\r\nexport function isInsideOfViewport(\r\n\telement: HTMLElement,\r\n\tcontainer: Node,\r\n\tthreshold: number\r\n): boolean {\r\n\treturn (\r\n\t\t!isBelowOfViewport(element, container, threshold) &&\r\n\t\t!isAboveOfViewport(element, container, threshold) &&\r\n\t\t!isRightOfViewport(element, container, threshold) &&\r\n\t\t!isLeftOfViewport(element, container, threshold)\r\n\t);\r\n}\r\n","import { getLeftOffset } from '../../dom/get-left-offset';\r\nimport { isHTMLElement } from '../../dom/is-html-element';\r\n\r\nexport function isLeftOfViewport(\r\n\telement: HTMLElement,\r\n\tcontainer: Node,\r\n\tthreshold: number\r\n): boolean {\r\n\tlet fold;\r\n\tif (container === document) {\r\n\t\tfold = window.pageXOffset || element.ownerDocument.body.scrollLeft;\r\n\t} else if (isHTMLElement(container)) {\r\n\t\tfold = getLeftOffset(container);\r\n\t} else {\r\n\t\tthrow new DOMException(\r\n\t\t\t'container needs to be document or of type HTMLElement'\r\n\t\t);\r\n\t}\r\n\r\n\treturn fold >= getLeftOffset(element) + threshold + element.offsetWidth;\r\n}\r\n","import { getDocumentWidth } from '../../dom/get-document-width';\r\nimport { getLeftOffset } from '../../dom/get-left-offset';\r\nimport { isHTMLElement } from '../../dom/is-html-element';\r\n\r\nexport function isRightOfViewport(\r\n\telement: Element,\r\n\tcontainer: Node,\r\n\tthreshold: number\r\n): boolean {\r\n\tlet fold;\r\n\tif (container === document) {\r\n\t\tfold = getDocumentWidth(element) + window.pageXOffset;\r\n\t} else {\r\n\t\tif (isHTMLElement(container)) {\r\n\t\t\tfold = getLeftOffset(container) + getDocumentWidth(element);\r\n\t\t} else {\r\n\t\t\tthrow new DOMException(\r\n\t\t\t\t'container needs to be document or of type HTMLElement'\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\treturn fold <= getLeftOffset(element) - threshold;\r\n}\r\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n",null,"/**\n stickybits - Stickybits is a lightweight alternative to `position: sticky` polyfills\n @version v3.7.11\n @link https://github.com/yowainwright/stickybits#readme\n @author Jeff Wainwright (https://jeffry.in)\n @license MIT\n**/\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/*\n STICKYBITS πŸ’‰\n --------\n > a lightweight alternative to `position: sticky` polyfills 🍬\n --------\n - each method is documented above it our view the readme\n - Stickybits does not manage polymorphic functionality (position like properties)\n * polymorphic functionality: (in the context of describing Stickybits)\n means making things like `position: sticky` be loosely supported with position fixed.\n It also means that features like `useStickyClasses` takes on styles like `position: fixed`.\n --------\n defaults πŸ”Œ\n --------\n - version = `package.json` version\n - userAgent = viewer browser agent\n - target = DOM element selector\n - noStyles = boolean\n - offset = number\n - parentClass = 'string'\n - scrollEl = window || DOM element selector || DOM element\n - stickyClass = 'string'\n - stuckClass = 'string'\n - useStickyClasses = boolean\n - useFixed = boolean\n - useGetBoundingClientRect = boolean\n - verticalPosition = 'string'\n - applyStyle = function\n --------\n propsπŸ”Œ\n --------\n - p = props {object}\n --------\n instance note\n --------\n - stickybits parent methods return this\n - stickybits instance methods return an instance item\n --------\n nomenclature\n --------\n - target => el => e\n - props => o || p\n - instance => item => it\n --------\n methods\n --------\n - .definePosition = defines sticky or fixed\n - .addInstance = an array of objects for each Stickybits Target\n - .getClosestParent = gets the parent for non-window scroll\n - .getTopPosition = gets the element top pixel position from the viewport\n - .computeScrollOffsets = computes scroll position\n - .toggleClasses = older browser toggler\n - .manageState = manages sticky state\n - .removeInstance = removes an instance\n - .cleanup = removes all Stickybits instances and cleans up dom from stickybits\n*/\nvar Stickybits = /*#__PURE__*/function () {\n function Stickybits(target, obj) {\n var _this = this;\n\n var o = typeof obj !== 'undefined' ? obj : {};\n this.version = '3.7.11';\n this.userAgent = window.navigator.userAgent || 'no `userAgent` provided by the browser';\n this.props = {\n customStickyChangeNumber: o.customStickyChangeNumber || null,\n noStyles: o.noStyles || false,\n stickyBitStickyOffset: o.stickyBitStickyOffset || 0,\n parentClass: o.parentClass || 'js-stickybit-parent',\n scrollEl: typeof o.scrollEl === 'string' ? document.querySelector(o.scrollEl) : o.scrollEl || window,\n stickyClass: o.stickyClass || 'js-is-sticky',\n stuckClass: o.stuckClass || 'js-is-stuck',\n stickyChangeClass: o.stickyChangeClass || 'js-is-sticky--change',\n useStickyClasses: o.useStickyClasses || false,\n useFixed: o.useFixed || false,\n useGetBoundingClientRect: o.useGetBoundingClientRect || false,\n verticalPosition: o.verticalPosition || 'top',\n applyStyle: o.applyStyle || function (item, style) {\n return _this.applyStyle(item, style);\n }\n };\n /*\n define positionVal after the setting of props, because definePosition looks at the props.useFixed\n ----\n - uses a computed (`.definePosition()`)\n - defined the position\n */\n\n this.props.positionVal = this.definePosition() || 'fixed';\n this.instances = [];\n var _this$props = this.props,\n positionVal = _this$props.positionVal,\n verticalPosition = _this$props.verticalPosition,\n noStyles = _this$props.noStyles,\n stickyBitStickyOffset = _this$props.stickyBitStickyOffset;\n var verticalPositionStyle = verticalPosition === 'top' && !noStyles ? stickyBitStickyOffset + \"px\" : '';\n var positionStyle = positionVal !== 'fixed' ? positionVal : '';\n this.els = typeof target === 'string' ? document.querySelectorAll(target) : target;\n if (!('length' in this.els)) this.els = [this.els];\n\n for (var i = 0; i < this.els.length; i++) {\n var _styles;\n\n var el = this.els[i];\n var instance = this.addInstance(el, this.props); // set vertical position\n\n this.props.applyStyle({\n styles: (_styles = {}, _styles[verticalPosition] = verticalPositionStyle, _styles.position = positionStyle, _styles),\n classes: {}\n }, instance);\n this.manageState(instance); // instances are an array of objects\n\n this.instances.push(instance);\n }\n }\n /*\n setStickyPosition βœ”οΈ\n --------\n β€” most basic thing stickybits does\n => checks to see if position sticky is supported\n => defined the position to be used\n => stickybits works accordingly\n */\n\n\n var _proto = Stickybits.prototype;\n\n _proto.definePosition = function definePosition() {\n var stickyProp;\n\n if (this.props.useFixed) {\n stickyProp = 'fixed';\n } else {\n var prefix = ['', '-o-', '-webkit-', '-moz-', '-ms-'];\n var test = document.head.style;\n\n for (var i = 0; i < prefix.length; i += 1) {\n test.position = prefix[i] + \"sticky\";\n }\n\n stickyProp = test.position ? test.position : 'fixed';\n test.position = '';\n }\n\n return stickyProp;\n }\n /*\n addInstance βœ”οΈ\n --------\n β€” manages instances of items\n - takes in an el and props\n - returns an item object\n ---\n - target = el\n - o = {object} = props\n - scrollEl = 'string' | object\n - verticalPosition = number\n - off = boolean\n - parentClass = 'string'\n - stickyClass = 'string'\n - stuckClass = 'string'\n ---\n - defined later\n - parent = dom element\n - state = 'string'\n - offset = number\n - stickyStart = number\n - stickyStop = number\n - returns an instance object\n */\n ;\n\n _proto.addInstance = function addInstance(el, props) {\n var _this2 = this;\n\n var item = {\n el: el,\n parent: el.parentNode,\n props: props\n };\n\n if (props.positionVal === 'fixed' || props.useStickyClasses) {\n this.isWin = this.props.scrollEl === window;\n var se = this.isWin ? window : this.getClosestParent(item.el, item.props.scrollEl);\n this.computeScrollOffsets(item);\n this.toggleClasses(item.parent, '', props.parentClass);\n item.state = 'default';\n item.stateChange = 'default';\n\n item.stateContainer = function () {\n return _this2.manageState(item);\n };\n\n se.addEventListener('scroll', item.stateContainer);\n }\n\n return item;\n }\n /*\n --------\n getParent πŸ‘¨β€\n --------\n - a helper function that gets the target element's parent selected el\n - only used for non `window` scroll elements\n - supports older browsers\n */\n ;\n\n _proto.getClosestParent = function getClosestParent(el, match) {\n // p = parent element\n var p = match;\n var e = el;\n if (e.parentElement === p) return p; // traverse up the dom tree until we get to the parent\n\n while (e.parentElement !== p) {\n e = e.parentElement;\n } // return parent element\n\n\n return p;\n }\n /*\n --------\n getTopPosition\n --------\n - a helper function that gets the topPosition of a Stickybit element\n - from the top level of the DOM\n */\n ;\n\n _proto.getTopPosition = function getTopPosition(el) {\n if (this.props.useGetBoundingClientRect) {\n return el.getBoundingClientRect().top + (this.props.scrollEl.pageYOffset || document.documentElement.scrollTop);\n }\n\n var topPosition = 0;\n\n do {\n topPosition = el.offsetTop + topPosition;\n } while (el = el.offsetParent);\n\n return topPosition;\n }\n /*\n computeScrollOffsets πŸ“Š\n ---\n computeScrollOffsets for Stickybits\n - defines\n - offset\n - start\n - stop\n */\n ;\n\n _proto.computeScrollOffsets = function computeScrollOffsets(item) {\n var it = item;\n var p = it.props;\n var el = it.el;\n var parent = it.parent;\n var isCustom = !this.isWin && p.positionVal === 'fixed';\n var isTop = p.verticalPosition !== 'bottom';\n var scrollElOffset = isCustom ? this.getTopPosition(p.scrollEl) : 0;\n var stickyStart = isCustom ? this.getTopPosition(parent) - scrollElOffset : this.getTopPosition(parent);\n var stickyChangeOffset = p.customStickyChangeNumber !== null ? p.customStickyChangeNumber : el.offsetHeight;\n var parentBottom = stickyStart + parent.offsetHeight;\n it.offset = !isCustom ? scrollElOffset + p.stickyBitStickyOffset : 0;\n it.stickyStart = isTop ? stickyStart - it.offset : 0;\n it.stickyChange = it.stickyStart + stickyChangeOffset;\n it.stickyStop = isTop ? parentBottom - (el.offsetHeight + it.offset) : parentBottom - window.innerHeight;\n }\n /*\n toggleClasses βš–οΈ\n ---\n toggles classes (for older browser support)\n r = removed class\n a = added class\n */\n ;\n\n _proto.toggleClasses = function toggleClasses(el, r, a) {\n var e = el;\n var cArray = e.className.split(' ');\n if (a && cArray.indexOf(a) === -1) cArray.push(a);\n var rItem = cArray.indexOf(r);\n if (rItem !== -1) cArray.splice(rItem, 1);\n e.className = cArray.join(' ');\n }\n /*\n manageState πŸ“\n ---\n - defines the state\n - normal\n - sticky\n - stuck\n */\n ;\n\n _proto.manageState = function manageState(item) {\n var _this3 = this;\n\n // cache object\n var it = item;\n var p = it.props;\n var state = it.state;\n var stateChange = it.stateChange;\n var start = it.stickyStart;\n var change = it.stickyChange;\n var stop = it.stickyStop; // cache props\n\n var pv = p.positionVal;\n var se = p.scrollEl;\n var sticky = p.stickyClass;\n var stickyChange = p.stickyChangeClass;\n var stuck = p.stuckClass;\n var vp = p.verticalPosition;\n var isTop = vp !== 'bottom';\n var aS = p.applyStyle;\n var ns = p.noStyles;\n /*\n requestAnimationFrame\n ---\n - use rAF\n - or stub rAF\n */\n\n var rAFStub = function rAFDummy(f) {\n f();\n };\n\n var rAF = !this.isWin ? rAFStub : window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || rAFStub;\n /*\n define scroll vars\n ---\n - scroll\n - notSticky\n - isSticky\n - isStuck\n */\n\n var scroll = this.isWin ? window.scrollY || window.pageYOffset : se.scrollTop;\n var notSticky = scroll > start && scroll < stop && (state === 'default' || state === 'stuck');\n var isSticky = isTop && scroll <= start && (state === 'sticky' || state === 'stuck');\n var isStuck = scroll >= stop && state === 'sticky';\n /*\n Unnamed arrow functions within this block\n ---\n - help wanted or discussion\n - view test.stickybits.js\n - `stickybits .manageState `position: fixed` interface` for more awareness πŸ‘€\n */\n\n if (notSticky) {\n it.state = 'sticky';\n } else if (isSticky) {\n it.state = 'default';\n } else if (isStuck) {\n it.state = 'stuck';\n }\n\n var isStickyChange = scroll >= change && scroll <= stop;\n var isNotStickyChange = scroll < change / 2 || scroll > stop;\n\n if (isNotStickyChange) {\n it.stateChange = 'default';\n } else if (isStickyChange) {\n it.stateChange = 'sticky';\n } // Only apply new styles if the state has changed\n\n\n if (state === it.state && stateChange === it.stateChange) return;\n rAF(function () {\n var _styles2, _classes, _styles3, _extends2, _classes2, _style$classes;\n\n var stateStyles = {\n sticky: {\n styles: (_styles2 = {\n position: pv,\n top: '',\n bottom: ''\n }, _styles2[vp] = p.stickyBitStickyOffset + \"px\", _styles2),\n classes: (_classes = {}, _classes[sticky] = true, _classes)\n },\n default: {\n styles: (_styles3 = {}, _styles3[vp] = '', _styles3),\n classes: {}\n },\n stuck: {\n styles: _extends((_extends2 = {}, _extends2[vp] = '', _extends2), pv === 'fixed' && !ns || !_this3.isWin ? {\n position: 'absolute',\n top: '',\n bottom: '0'\n } : {}),\n classes: (_classes2 = {}, _classes2[stuck] = true, _classes2)\n }\n };\n\n if (pv === 'fixed') {\n stateStyles.default.styles.position = '';\n }\n\n var style = stateStyles[it.state];\n style.classes = (_style$classes = {}, _style$classes[stuck] = !!style.classes[stuck], _style$classes[sticky] = !!style.classes[sticky], _style$classes[stickyChange] = isStickyChange, _style$classes);\n aS(style, item);\n });\n }\n /*\n applyStyle\n ---\n - apply the given styles and classes to the element\n */\n ;\n\n _proto.applyStyle = function applyStyle(_ref, item) {\n var styles = _ref.styles,\n classes = _ref.classes;\n // cache object\n var it = item;\n var e = it.el;\n var p = it.props;\n var stl = e.style; // cache props\n\n var ns = p.noStyles;\n var cArray = e.className.split(' '); // Disable due to bug with old versions of eslint-scope and for ... in\n // https://github.com/eslint/eslint/issues/12117\n // eslint-disable-next-line no-unused-vars\n\n for (var cls in classes) {\n var addClass = classes[cls];\n\n if (addClass) {\n if (cArray.indexOf(cls) === -1) cArray.push(cls);\n } else {\n var idx = cArray.indexOf(cls);\n if (idx !== -1) cArray.splice(idx, 1);\n }\n }\n\n e.className = cArray.join(' ');\n\n if (styles['position']) {\n stl['position'] = styles['position'];\n }\n\n if (ns) return; // eslint-disable-next-line no-unused-vars\n\n for (var key in styles) {\n stl[key] = styles[key];\n }\n };\n\n _proto.update = function update(updatedProps) {\n var _this4 = this;\n\n if (updatedProps === void 0) {\n updatedProps = null;\n }\n\n this.instances.forEach(function (instance) {\n _this4.computeScrollOffsets(instance);\n\n if (updatedProps) {\n // eslint-disable-next-line no-unused-vars\n for (var updatedProp in updatedProps) {\n instance.props[updatedProp] = updatedProps[updatedProp];\n }\n }\n });\n return this;\n }\n /*\n removes an instance πŸ‘‹\n --------\n - cleanup instance\n */\n ;\n\n _proto.removeInstance = function removeInstance(instance) {\n var _styles4, _classes3;\n\n var e = instance.el;\n var p = instance.props;\n this.applyStyle({\n styles: (_styles4 = {\n position: ''\n }, _styles4[p.verticalPosition] = '', _styles4),\n classes: (_classes3 = {}, _classes3[p.stickyClass] = '', _classes3[p.stuckClass] = '', _classes3)\n }, instance);\n this.toggleClasses(e.parentNode, p.parentClass);\n }\n /*\n cleanup πŸ›\n --------\n - cleans up each instance\n - clears instance\n */\n ;\n\n _proto.cleanup = function cleanup() {\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n\n if (instance.stateContainer) {\n instance.props.scrollEl.removeEventListener('scroll', instance.stateContainer);\n }\n\n this.removeInstance(instance);\n }\n\n this.manageState = false;\n this.instances = [];\n };\n\n return Stickybits;\n}();\n/*\n export\n --------\n exports StickBits to be used 🏁\n*/\n\n\nfunction stickybits(target, o) {\n return new Stickybits(target, o);\n}\n\nexport default stickybits;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import './../libs/gin-tonic/app/storybook.scss';\r\nimport './main.scss';\r\n\r\nimport { CookieBannerComponent } from '../libs/gin-tonic/components/cookie-banner/component';\r\nimport { HamburgerComponent } from '../libs/gin-tonic/components/hamburger/component';\r\nimport { SearchComponent } from '../libs/gin-tonic/components/search/component';\r\nimport { SelectComponent } from '../libs/gin-tonic/components/select/component';\r\nimport { SnackbarComponent } from '../libs/gin-tonic/components/snackbar/component';\r\nimport { StickyComponent } from '../libs/gin-tonic/components/sticky';\r\nimport { factory } from '../libs/gin-tonic/helpers/compiler';\r\nimport { CollapseComponent } from './../libs/gin-tonic/components/collapse/component';\r\nimport { IFramePlayerComponent } from './../libs/gin-tonic/components/player/component';\r\nimport { DialogComponent } from './components/dialog/component';\r\nimport { InputPasswordComponent } from './components/input/component';\r\nimport { MapExtendedComponent } from './components/map-extended/component';\r\nimport { MenuCollapseComponent } from './components/menu/menu-collapse';\r\nimport { TooltipComponent } from './components/tooltip';\r\n\r\nfactory([\r\n\tCookieBannerComponent,\r\n\tHamburgerComponent,\r\n\tMenuCollapseComponent,\r\n\tSearchComponent,\r\n\tSelectComponent,\r\n\tSnackbarComponent,\r\n\tStickyComponent,\r\n\tCollapseComponent,\r\n\tIFramePlayerComponent,\r\n\tMapExtendedComponent,\r\n\tDialogComponent,\r\n\tTooltipComponent,\r\n\tInputPasswordComponent,\r\n], true)(document.body);\r\n\r\nwindow['blazorDispatchJSEvent'] = (element: HTMLElement, eventName: string) => {\r\n\telement?.dispatchEvent(new Event(eventName));\r\n};\r\n\r\nwindow['blazorOpenFileStream'] = async (\r\n\tcontentStreamReference: Body,\r\n\tcontentType: string\r\n) => {\r\n\tconst arrayBuffer = await contentStreamReference.arrayBuffer();\r\n\tconst blob = new Blob([arrayBuffer], { type: contentType });\r\n\tconst url = URL.createObjectURL(blob);\r\n\twindow.open(url);\r\n};\r\n\r\nwindow['blazorDownloadFileStream'] = async (\r\n\tcontentStreamReference: Body,\r\n\tfileName: string\r\n) => {\r\n\tconst arrayBuffer = await contentStreamReference.arrayBuffer();\r\n\tconst blob = new Blob([arrayBuffer]);\r\n\tconst url = URL.createObjectURL(blob);\r\n\tconst anchorElement = document.createElement('a');\r\n\tanchorElement.href = url;\r\n\tanchorElement.download = fileName ?? '';\r\n\tanchorElement.click();\r\n\tanchorElement.remove();\r\n\tURL.revokeObjectURL(url);\r\n};\r\n\r\nwindow['googleMapsLoaded'] = () => {\r\n\tdocument.dispatchEvent(new CustomEvent('googleMapsLoaded'));\r\n};\r\n"],"names":["DialogComponent","Component","className","element","disableClose","this","triggers","getTriggerElementsFromElement","forEach","trigger","addEventListener","e","toggle","hasAttribute","getAttribute","toUpperCase","event","target","nodeName","rect","getBoundingClientRect","left","clientX","right","top","clientY","bottom","close","open","showModal","addClass","removeClass","eventHandler","removeEventListener","tokens","classList","add","remove","InputPasswordComponent","input","querySelector","type","MapExtendedComponent","observe","Loader","apiKey","dataset","mapApiKey","version","libraries","load","then","google","window","init","showMapMarkerClasses","showMapMarkerClassesList","length","split","mapMarkerInformations","Array","from","getElementsByClassName","mapMarkerClasses","push","filter","v","i","a","indexOf","MapExtended","mapTypes","maps","MapTypeId","ROADMAP","TERRAIN","SATELLITE","HYBRID","enforceZoomLevel","zoom","MenuCollapseComponent","MenuCollapse","toggleClass","backdrop","document","button","details","getElements","toggleMenuOpen","closest","attributes","getNamedItem","getElementById","value","id","entered","TooltipComponent","Tooltip","CollapseComponent","closeSiblings","Collapse","stringCollapse","options","isTransitioning","showing","EventDispatcher","hiding","shown","hidden","eventNamespaceFn","eventNamespaceFactory","handleClick","currentTarget","tagName","preventDefault","getSelectorElementFromElement","dataTargetSelector","data","getInstance","mergeOptions","parent","dataParentSelector","toggles","querySelectorAll","dataToggleSelector","_addAriaAndCollapsedClass","componentClass","useShowClassDesktop","outerWidth","desktopWidth","contains","showClassDesktop","showClass","isOpen","hide","show","selector","actives","collapsingClass","active","collapseInstance","_handleShow","isHideable","_handleClose","undefined","animateProp","style","collapseElement","dispatch","scrollHeight","activeClass","setAttribute","addTransitionEndListener","transitionDuration","offsetWidth","o","activeParentClass","toString","toLowerCase","create","CookieBannerComponent","CookieBanner","loadGoogleTagManager","code","w","d","s","l","Date","getTime","f","getElementsByTagName","j","createElement","async","src","parentNode","insertBefore","banner","defaults","cookieName","cookieAttributeName","dataBox","boxSelector","approveButton","acceptCookieButton","declineButton","declineCookieButton","checkCookie","closeBannerAccept","onButtonCklickDecline","onButtonClickAccept","addAnimationEndListener","animationClearBgOnDcline","animationDecline","animationClearBgOnAccept","animationAccept","name","hasCookie","getCookie","setCookie","addDays","now","closeBannerDecline","runAfterLoad","HamburgerComponent","Hamburger","hamburgerButton","MapMarkerExtended","marker","mapMarkers","currentInfoWindow","console","error","bounds","LatLngBounds","mapStyles","map","Map","center","mapCenter","draggable","mapTypeControlOptions","mapTypeIds","mapTypeControlStyle","set","StyledMapType","styledMapName","setMapTypeId","markerClass","showMarker","markerClassInfo","createMarkerClass","fitToBounds","fitBounds","addListenerOnce","setZoom","hasMapMarkerClassesButtonIfMultiple","markerElement","mapMarkerClassesButtonActiveClass","visible","mapMarker","setVisible","markerInfoData","lat","lng","markerWidth","markerHeight","markerOriginX","markerOriginY","markerAnchorX","markerAnchorY","mapMarkerInfo","mapMarkerInfoClass","innerHTML","markerEl","Marker","position","LatLng","parseFloat","icon","size","Size","origin","Point","anchor","url","extend","getPosition","infoWindow","InfoWindow","content","addListener","wasCurrentWindow","screen","width","animation","IFramePlayerComponent","IFramePlayer","startPlayerClassName","iframe","play","once","playingClassName","SearchComponent","Search","isVisible","elem","offsetHeight","getClientRects","isEmpty","elems","HTMLInputElement","result","HTMLElement","empty","pristine","items","visibleClass","hiddenClass","item","match","evt","key","navigateList","submitSelected","selectedClass","innerText","selectedItem","current","getSelectedItem","dispatchEvent","MouseEvent","find","findIndex","navigateUp","navigateDown","next","adjustScrollPosition","isInsideOfViewport","parentElement","scrollToElement","linearTween","textContent","SelectComponent","Select","optionElements","scrollTop","offsetY","panelOpen","selectedIndex","Math","max","selected","children","activeIndex","tabIndex","select","newGuid","componentClassName","triggerTextElement","componentValueClassName","appendChild","triggerArrow","iconHtml","createNode","componentArrowClassName","insertAdjacentElement","focus","stopPropagation","_handleKeydown","setSelectedValue","overlayRef","panel","panelClassName","option","optionElement","optionClassName","disabled","disabledClassName","text","OverlayPositionBuilder","connectedTo","withOffsetY","withFallbackPosition","originX","originY","overlayX","overlayY","Overlay","OverlayOptions","scrollStrategy","RepositionScrollStrategy","positionStrategy","backdropClassName","hasBackdrop","backdropClick","subscribe","afterOpened","withOffsetX","afterClosed","dispose","onAttached","portalElement","transformOrigin","overlayRect","overlayElement","paddingWidth","round","getParsedCssUnit","leftOverflow","rightOverflow","innerWidth","offsetX","updatePosition","onDetached","index","_calculateOverlayPosition","setActiveValue","Event","delta","shouldForwardEvent","itemHeight","scrollOffset","maxHeight","selectedClassName","activeClassName","panelHeight","min","maxScroll","scrollBuffer","optimalScrollPosition","triggerRect","optionHeightAdjustment","height","maxOptionsDisplayed","floor","optionOffsetFromPanelTop","firstDisplayedIndex","viewportSize","innerHeight","topSpaceAvailable","bottomSpaceAvailable","panelHeightTop","abs","panelHeightBottom","originBasedOnOption","distanceBelowViewport","distanceAboveViewport","SnackbarComponent","Snackbar","duration","btn","snackbars","snackbar","showSnackbar","hideSnackbar","setTimeout","StickyComponent","stickybits","parentClass","stickyChangeClass","stickyClass","stuckClass","useStickyClasses","cachedTitleTag","title","_","overlayClassName","portalClassName","disposeAfterClose","portal","OverlayImplementation","callback","fallbackDuration","eventListenerOrTimeout","animationEndEventName","getAnimationEndEventName","timeElapsed","start","distance","sqrt","pow","cos","PI","sin","animations","WebkitTransition","transition","classType","Object","keys","reduce","acc","val","str","isNaN","replace","c","r","random","throttle","fn","componentTypes","observeAll","rootElement","metadatas","componentType","resolve","metadata","compileComponent","run","MutationObserver","mutations","mutation","addedNodes","node","body","childList","subtree","addMutationObserver","m","ANNOTATIONS","PROP_METADATA","COMPONENT_CACHE","DecoratorFactory","config","cls","hasOwnProperty","defineProperty","prototype","metadataName","makeDecorator","ComponentRef","makePropDecorator","first","descendants","ComponentRefs","ChildRef","ChildrenRef","root","comps","initializedDatasetKey","includes","constructor","has","get","queries","propName","query","nodes","cache","getComponentFromElement","onInit","PropDecoratorFactory","metaName","meta","unshift","annotations","ctor","ownAnnotations","getPrototypeOf","propMetadata","propMetadataVal","ownMetadata","typeMetadata","Error","throwComponentNotResolvable","getMetadata","propertyMetadata","getQueries","decodeURIComponent","cookie","RegExp","encodeURIComponent","test","end","path","domain","secure","expires","Number","Infinity","String","toUTCString","keyStr","valueStr","domainStr","pathStr","secureStr","date","days","setDate","getDate","isAncestorOfClass","html","firstElementChild","computed","getStyles","getPropertyValue","ownerDocument","documentElement","clientHeight","clientWidth","getOffset","clientRect","documentTop","pageYOffset","clientTop","documentLeft","pageXOffset","scrollLeft","clientLeft","attribute","fallbackHref","getSelectorFromElement","substr","view","defaultView","opener","getComputedStyle","targetAttribute","initializeClickElements","listener","elementsWithListener","addClickElements","elements","includeSelf","nodeType","Node","prop","formatCssUnit","Subscription","handler","isOnce","isExecuted","args","subscriptions","sub","execute","cleanup","dispatcher","some","splice","eventName","called","CustomEvent","namespace","DOWN","ENTER","ESCAPE","SPACE","UP","parseCssUnit","getCss","unit","units","u","parsed","beforeOpen","beforeClose","initializeOpenElements","createOverlay","initializeDismissElements","overlay","updatePortalElement","initializePortal","getOverlayOptions","forward","onDisposed","containerClassName","showingClassName","baseBackdropClassName","hidingClassName","visibleClassName","detachBackdropBeforeClose","closeOnBackdropClick","closeOnEscPressed","closeOnClick","onKeyboardEvent","attached","uuid","keydownListener","keyCode","KEYCODES","attach","overlayContainerElement","lastElementChild","backdropElement","backdropToDetach","removeChild","pointerEvents","apply","sizeConfig","updateElementSize","detach","detachBackdrop","disable","enable","attachBackdrop","handleBackdropClick","requestAnimationFrame","safeApplyCssUnit","minWidth","minHeight","maxWidth","clickedInsideElementWithClass","ConnectedPositionStrategy","onPositionChange","scrollables","preferredPositions","applied","positionLocked","updateTransformOrigin","handleResizeChange","pane","overlayPoint","overlayPosition","lastConnectedPosition","calculateOverlayPoint","isFallback","point","calculatePosition","x","y","verticalStyleProperty","horizontalStyleProperty","calculateOverlayElementPosition","connectionPair","scrollableViewProperties","getScrollVisibility","originPos","overlayPos","ConnectionPositionPair","offset","isLocked","positions","slice","GlobalPositionStrategy","cssPosition","topOffset","bottomOffset","leftOffset","rightOffset","alignItems","justifyContent","updateSize","wrapper","marginLeft","marginTop","marginBottom","marginRight","elementRef","BaseScrollStrategy","handleEnable","handleDisable","handleScroll","autoClose","throttleTimeout","scrollThrottle","isElementOutsideWindow","offsetTop","scrollToOffset","animationFunction","scrollTo","timeStart","t","b","getWindowScrollTop","loop","time","Window","call","transitionEndEventName","getTransitionEndEventName","transitions","pos","fallbackPoint","fallbackPosition","fitsInViewport","visibleArea","originBounds","overlayBounds","scrollContainerBounds","isOriginClipped","isElementClippedByScrolling","isOriginOutsideView","isElementScrolledOutsideView","isOverlayClipped","isOverlayOutsideView","subtractOverflows","overflows","currentValue","currentOverflow","originRect","originPoint","originStartX","originEndX","getOriginConnectionPoint","baseOffsetX","baseOffsetY","overlayStartX","overlayStartY","topOverflow","bottomOverflow","getOverlayPoint","container","threshold","fold","isHTMLElement","DOMException","getTopOffset","getDocumentHeight","scrollContainers","scrollContainerRect","clippedAbove","clippedBelow","clippedLeft","clippedRight","parentRects","containerBounds","outsideAbove","outsideBelow","outsideLeft","outsideRight","isBelowOfViewport","isAboveOfViewport","isRightOfViewport","isLeftOfViewport","getLeftOffset","getDocumentWidth","module","exports","self","ReferenceError","__esModule","instance","Constructor","TypeError","toPropertyKey","require","_defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","obj","_getPrototypeOf","setPrototypeOf","bind","__proto__","subClass","superClass","_typeof","assertThisInitialized","_setPrototypeOf","p","hint","prim","Symbol","toPrimitive","res","arg","iterator","equal","isArray","source","flags","valueOf","DEFAULT_ID","LoaderStatus","authReferrerPolicy","channel","client","language","mapIds","nonce","region","retries","isEqual","stringify","JSON","errors","FAILURE","done","SUCCESS","loading","LOADING","INITIALIZED","CALLBACK","join","script","loadPromise","Promise","reject","loadCallback","err","callbacks","createUrl","onerror","loadErrorCallback","defer","head","deleteScript","onerrorEvent","failed","reset","delay","log","setScript","__googleMapsCallback","cb","resetIfRetryingFailed","warn","setCallback","_extends","assign","arguments","Stickybits","_this","userAgent","navigator","customStickyChangeNumber","noStyles","stickyBitStickyOffset","scrollEl","useFixed","useGetBoundingClientRect","verticalPosition","applyStyle","positionVal","definePosition","instances","_this$props","verticalPositionStyle","positionStyle","els","_styles","el","addInstance","styles","classes","manageState","_proto","stickyProp","prefix","_this2","isWin","se","getClosestParent","computeScrollOffsets","toggleClasses","state","stateChange","stateContainer","getTopPosition","topPosition","offsetParent","it","isCustom","isTop","scrollElOffset","stickyStart","stickyChangeOffset","parentBottom","stickyChange","stickyStop","cArray","rItem","_this3","change","stop","pv","sticky","stuck","vp","aS","ns","rAFStub","rAF","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","scroll","scrollY","isSticky","isStuck","isStickyChange","_styles2","_classes","_styles3","_extends2","_classes2","_style$classes","stateStyles","default","_ref","stl","idx","update","updatedProps","_this4","updatedProp","removeInstance","_styles4","_classes3","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","toStringTag","factory","contentStreamReference","contentType","arrayBuffer","blob","Blob","URL","createObjectURL","fileName","anchorElement","href","download","click","revokeObjectURL"],"sourceRoot":""}