{"version":3,"sources":["webpack://opten.radix/./app/book.ts","webpack://opten.radix/./app/components/book/book.ts","webpack://opten.radix/./app/components/shared/alert.ts","webpack://opten.radix/./app/components/shared/filter-helper.ts","webpack://opten.radix/./app/components/shared/globalvars.ts","webpack://opten.radix/./app/components/shared/input.ts","webpack://opten.radix/./app/components/shared/media-slider.ts","webpack://opten.radix/./app/components/shared/modal.ts","webpack://opten.radix/./app/components/shared/page-top.ts","webpack://opten.radix/./app/components/shared/password-reveal.ts","webpack://opten.radix/./app/components/shared/pseudo-link.ts","webpack://opten.radix/./app/components/shared/scroll-on-load.ts","webpack://opten.radix/./app/components/shared/scroll-to.ts","webpack://opten.radix/./node_modules/@opten/animation/linear-tween/index.ts","webpack://opten.radix/./node_modules/@opten/collapse/index.ts","webpack://opten.radix/./node_modules/@opten/collapse/initializer/index.ts","webpack://opten.radix/./node_modules/@opten/compiler/factory/index.ts","webpack://opten.radix/./node_modules/@opten/compiler/index.ts","webpack://opten.radix/./node_modules/@opten/compiler/metadata/component.ts","webpack://opten.radix/./node_modules/@opten/compiler/reflector/index.ts","webpack://opten.radix/./node_modules/@opten/compiler/resolver/index.ts","webpack://opten.radix/./node_modules/@opten/compiler/util/decorators.ts","webpack://opten.radix/./node_modules/@opten/compiler/util/factories.ts","webpack://opten.radix/./node_modules/@opten/compiler/util/type.ts","webpack://opten.radix/./node_modules/@opten/cookie/get/index.ts","webpack://opten.radix/./node_modules/@opten/cookie/set/index.ts","webpack://opten.radix/./node_modules/@opten/dom/add-class/index.ts","webpack://opten.radix/./node_modules/@opten/dom/as-html-element/index.ts","webpack://opten.radix/./node_modules/@opten/dom/change-class/index.ts","webpack://opten.radix/./node_modules/@opten/dom/class-regex/index.ts","webpack://opten.radix/./node_modules/@opten/dom/get-class/index.ts","webpack://opten.radix/./node_modules/@opten/dom/get-selector-element-from-element/index.ts","webpack://opten.radix/./node_modules/@opten/dom/get-selector-from-element/index.ts","webpack://opten.radix/./node_modules/@opten/dom/get-window-scroll-top/index.ts","webpack://opten.radix/./node_modules/@opten/dom/has-class/index.ts","webpack://opten.radix/./node_modules/@opten/dom/is-html-element/index.ts","webpack://opten.radix/./node_modules/@opten/dom/remove-class/index.ts","webpack://opten.radix/./node_modules/@opten/dom/toggle-class/index.ts","webpack://opten.radix/./node_modules/@opten/events/dispatch-custom-event/index.ts","webpack://opten.radix/./node_modules/@opten/events/event-namespace-factory/index.ts","webpack://opten.radix/./node_modules/@opten/reactive/debounce/index.ts","webpack://opten.radix/./node_modules/@opten/scroll/scroll-to-element/index.ts","webpack://opten.radix/./node_modules/@opten/scroll/scroll-to-offset/index.ts","webpack://opten.radix/./node_modules/@opten/scroll/scroll-to/index.ts","webpack://opten.radix/./node_modules/@opten/transition/add-transition-end-listener/index.ts","webpack://opten.radix/./node_modules/@opten/transition/get-transition-end-event-name/index.ts","webpack://opten.radix/webpack/bootstrap"],"names":["BookComponent","Component","className","element","Array","from","this","querySelectorAll","forEach","form","FilterHelper","filterControlSelector","filterFormSelector","onReset","onSubmit","submitBtn","querySelector","btnIcon","disabled","addClass","filename","contentType","formDataGrouped","FormData","filter","o","reduce","arr","ob","x","find","push","fetch","action","map","join","method","cache","credentials","headers","document","documentElement","lang","then","response","ok","Error","getFileName","get","blob","newBlob","Blob","type","window","navigator","msSaveOrOpenBlob","objUrl","URL","createObjectURL","link","createElement","href","download","click","setTimeout","revokeObjectURL","catch","error","errorSpan","classList","add","style","color","innerText","parentNode","insertBefore","remove","finally","removeClass","onRemoveFilter","value","name","disposition","utf8FilenameRegex","fileName","test","decodeURIComponent","exec","filenameStart","toLowerCase","indexOf","partialDisposition","slice","matches","AlertComponent","closer","addEventListener","e","preventDefault","close","options","filterGroups","tags","defaults","hasClass","substring","emptyState","getElementsByClassName","modals","filters","search","tagContainer","tagTemplate","closeModal","tag","removeFilterItem","toggleEmptyState","self","getAttribute","connected","filterSame","filterAll","checked","target","every","length","all","some","option","selected","innerHTML","title","addFilterItem","toggleClass","temp","cloneNode","setAttribute","appendChild","outerHTML","replace","firstChild","firstElementChild","defaultValue","show","modal","GlobalVarsComponent","setGlobalVars","debounce","setProperty","innerHeight","InputComponent","input","hasValueClass","isActiveClass","formField","closest","valueShadows","labels","setValueClass","hasData","placeholder","updateInputHeight","shadow","label","htmlFor","id","tagName","height","scrollHeight","MediaSliderComponent","autoplay","parseInt","swiper","Swiper","autoHeight","speed","navigation","nextEl","prevEl","pagination","el","clickable","keyboard","enabled","onlyInViewport","parallax","delay","updateAutoHeight","ModalComponent","cookieKey","cookieDays","getCookie","triggers","trigger","stopPropagation","closeEvent","date","Date","setDate","getDate","setCookie","PageTopComponent","wrapper","setVisibility","scrollToOffset","scrollTop","undefined","Window","clientHeight","getWindowScrollTop","PasswordRevealComponent","PseudoLinkComponent","location","navbar","hash","getElementById","offset","Collapse","getInstance","getSelectorElementFromElement","scrollToElement","ScrollToComponent","offsetString","isNaN","timeElapsed","start","distance","duration","CollapseComponent","collapse","console","data","stringCollapse","activeClass","activeParentClass","animateProp","collapsingClass","componentClass","showClass","showClassDesktop","desktopWidth","transitionDuration","isHideable","closeSiblings","useShowClassDesktop","dataParentSelector","dataTargetSelector","dataToggleSelector","hrefSelector","isTransitioning","eventNamespaceFn","eventNamespaceFactory","handleClick","event","currentTarget","toggle","parentElement","init","create","outerWidth","isOpen","hide","parent","selector","actives","active","collapseInstance","_handleShow","_handleClose","_addAriaAndCollapsedClass","collapseElement","addTransitionEndListener","offsetWidth","toString","components","rootElement","observables","Map","componentType","component","resolver","resolve","safeRootElement","body","node","compiler","compile","observe","set","size","MutationObserver","mutations","componentInitializer","mutation","key","addedNodes","isHTMLElement","asHTMLElement","comps","c","childList","subtree","reflector","Reflector","Resolver","Compiler","componentCache","constructor","has","Object","keys","queries","propName","query","nodes","descendants","acc","val","concat","f","first","isType","onInit","makeDecorator","createComponent","makeMetadataFactory","typeOrFunc","parentCtor","getParentCtor","ownAnnotations","_ownAnnotations","annotations","propMetadata","parentPropMetadata","ownPropMetadata","_ownPropMetadata","decorators","hasOwnProperty","ANNOTATIONS","PROP_METADATA","ctor","parentProto","getPrototypeOf","prototype","QUERY_METADATA_IDENTIFIERS","typeMetadata","metadata","findLast","metadataName","propertyMetadata","_mergeWithPropertyMetadata","a","i","_merge","mergedQueries","res","propertyName","_getQueryMetadata","q","read","condition","props","parentClass","chainFn","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","args","call","annotationInstance","typeDecorator","cls","defineProperty","PropDecoratorFactory","apply","decoratorInstance","metaName","meta","unshift","values","factory","isTypeOf","obj","v","Type","Function","cookie","RegExp","encodeURIComponent","end","path","domain","secure","expires","Number","Infinity","String","toUTCString","keyStr","valueStr","domainStr","pathStr","secureStr","getClass","trim","classRegexCache","attribute","fallbackHref","getSelectorFromElement","substr","pageYOffset","classRegex","HTMLElement","nodeType","nodeName","elements","removeClassFactory","regex","state","changeClass","eventName","CustomEvent","dispatchEvent","namespace","dispatchCustomEvent","func","wait","immediate","timeout","result","context","arguments","later","callNow","clearTimeout","animation","linearTween","top","offsetTop","getBoundingClientRect","animationFunction","scrollTo","timeStart","t","b","d","loop","time","requestAnimationFrame","callback","fallbackDuration","called","listener","removeEventListener","transitionEndEventName","getTransitionEndEventName","transitions","WebkitTransition","transition","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","__webpack_modules__","initialize","ScrollOnLoadComponent"],"mappings":"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","file":"Scripts/book.js","sourcesContent":["import { ScrollOnLoadComponent } from './components/shared/scroll-on-load';\r\n\r\nimport { CollapseComponent } from '@opten/collapse';\r\nimport { factory } from '@opten/compiler/factory';\r\n\r\nimport { BookComponent } from './components/book/book';\r\nimport { AlertComponent } from './components/shared/alert';\r\nimport { GlobalVarsComponent } from './components/shared/globalvars';\r\nimport { InputComponent } from './components/shared/input';\r\nimport { MediaSliderComponent } from './components/shared/media-slider';\r\nimport { ModalComponent } from './components/shared/modal';\r\nimport { PageTopComponent } from './components/shared/page-top';\r\nimport { PseudoLinkComponent } from './components/shared/pseudo-link';\r\nimport { ScrollToComponent } from './components/shared/scroll-to';\r\nimport { PasswordRevealComponent } from './components/shared/password-reveal';\r\n\r\nconst initialize = factory([\r\n\tMediaSliderComponent,\r\n\tModalComponent,\r\n\tCollapseComponent,\r\n\tScrollToComponent,\r\n\tPageTopComponent,\r\n\tBookComponent,\r\n\tInputComponent,\r\n\tPasswordRevealComponent,\r\n\tPseudoLinkComponent,\r\n\tAlertComponent,\r\n]);\r\n\r\ninitialize(document.body);\r\n\r\nconst vars = new GlobalVarsComponent();\r\nconst scrollOnLoad = new ScrollOnLoadComponent();\r\n","import { removeClass } from '@opten/dom/remove-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\n\r\nimport { FilterHelper } from '../shared/filter-helper';\r\n\r\n@Component({ className: 'js-book' })\r\nexport class BookComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst forms = Array.from(\r\n\t\t\tthis.element.querySelectorAll('.js-book-form')\r\n\t\t) as HTMLFormElement[];\r\n\t\tforms.forEach((form) => {\r\n\t\t\tnew FilterHelper(form, {\r\n\t\t\t\tfilterControlSelector: '.js-book-control',\r\n\t\t\t\tfilterFormSelector: '.js-book-form',\r\n\t\t\t\tonReset: () => {},\r\n\t\t\t\tonSubmit: () => {\r\n\t\t\t\t\tconst submitBtn = form.querySelector(\r\n\t\t\t\t\t\t'[type=\"submit\"]'\r\n\t\t\t\t\t) as HTMLButtonElement;\r\n\t\t\t\t\tconst btnIcon = submitBtn.querySelector('.icon');\r\n\t\t\t\t\tsubmitBtn.disabled = true;\r\n\t\t\t\t\tif (btnIcon) {\r\n\t\t\t\t\t\taddClass(btnIcon, 'c-spinner');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tconst formData = Array.from(new FormData(form)).filter(\r\n\t\t\t\t\t\t(o) => !!o[1]\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst formDataGrouped: any = formData.reduce(\r\n\t\t\t\t\t\t(arr: any[], ob) => {\r\n\t\t\t\t\t\t\tconst x = arr.find((o) => o[0] === ob[0]);\r\n\t\t\t\t\t\t\tx ? x[1].push(ob[1]) : arr.push([ob[0], [ob[1]]]);\r\n\t\t\t\t\t\t\treturn arr;\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t[]\r\n\t\t\t\t\t);\r\n\t\t\t\t\tlet filename;\r\n\t\t\t\t\tlet contentType;\r\n\t\t\t\t\tfetch(\r\n\t\t\t\t\t\t`${form.action}?${formDataGrouped\r\n\t\t\t\t\t\t\t.map((o) => `${o[0]}=${o[1].join(',')}`)\r\n\t\t\t\t\t\t\t.join('&')}`,\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmethod: 'get',\r\n\t\t\t\t\t\t\tcache: 'default',\r\n\t\t\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t\t\t'Content-Type':\r\n\t\t\t\t\t\t\t\t\t'application/x-www-form-urlencoded',\r\n\t\t\t\t\t\t\t\t'accept-language':\r\n\t\t\t\t\t\t\t\t\tdocument.documentElement.lang,\r\n\t\t\t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t)\r\n\t\t\t\t\t\t.then((response) => {\r\n\t\t\t\t\t\t\tif (response.ok === false) {\r\n\t\t\t\t\t\t\t\tthrow Error;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tfilename = this.getFileName(\r\n\t\t\t\t\t\t\t\tresponse.headers.get('content-disposition')\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tcontentType = response.headers.get('content-type');\r\n\t\t\t\t\t\t\treturn response.blob();\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.then((blob) => {\r\n\t\t\t\t\t\t\tconst newBlob = new Blob([blob], {\r\n\t\t\t\t\t\t\t\ttype: contentType,\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// MS Edge and IE don't allow using a blob object directly as link href, instead it is necessary to use msSaveOrOpenBlob\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\twindow.navigator &&\r\n\t\t\t\t\t\t\t\twindow.navigator.msSaveOrOpenBlob\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\twindow.navigator.msSaveOrOpenBlob(\r\n\t\t\t\t\t\t\t\t\tnewBlob,\r\n\t\t\t\t\t\t\t\t\tfilename\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t// For other browsers: create a link pointing to the ObjectURL containing the blob.\r\n\t\t\t\t\t\t\t\tconst objUrl = URL.createObjectURL(newBlob);\r\n\r\n\t\t\t\t\t\t\t\tlet link = document.createElement('a');\r\n\t\t\t\t\t\t\t\tlink.href = objUrl;\r\n\t\t\t\t\t\t\t\tlink.download = filename;\r\n\t\t\t\t\t\t\t\tlink.click();\r\n\r\n\t\t\t\t\t\t\t\t// For Firefox it is necessary to delay revoking the ObjectURL.\r\n\t\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\t\tURL.revokeObjectURL(objUrl);\r\n\t\t\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\t\tconst errorSpan = document.createElement('span');\r\n\t\t\t\t\t\t\terrorSpan.classList.add('mx-4');\r\n\t\t\t\t\t\t\terrorSpan.style.color = 'red';\r\n\t\t\t\t\t\t\terrorSpan.innerText = 'An error has occurred';\r\n\t\t\t\t\t\t\tsubmitBtn.parentNode.insertBefore(\r\n\t\t\t\t\t\t\t\terrorSpan,\r\n\t\t\t\t\t\t\t\tsubmitBtn\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\terrorSpan.remove();\r\n\t\t\t\t\t\t\t}, 5000);\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t.finally(() => {\r\n\t\t\t\t\t\t\tsubmitBtn.disabled = false;\r\n\t\t\t\t\t\t\tif (btnIcon) {\r\n\t\t\t\t\t\t\t\tremoveClass(btnIcon, 'c-spinner');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\tonRemoveFilter: (value, name) => {},\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getFileName(disposition: string): string {\r\n\t\tconst utf8FilenameRegex = /filename\\*=UTF-8''([\\w%\\-\\.]+)(?:; ?|$)/i;\r\n\t\tconst asciiFilenameRegex = /^filename=([\"']?)(.*?[^\\\\])\\1(?:; ?|$)/i;\r\n\r\n\t\tlet fileName: string = null;\r\n\t\tif (utf8FilenameRegex.test(disposition)) {\r\n\t\t\tfileName = decodeURIComponent(\r\n\t\t\t\tutf8FilenameRegex.exec(disposition)[1]\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\t// prevent ReDos attacks by anchoring the ascii regex to string start and\r\n\t\t\t// slicing off everything before 'filename='\r\n\t\t\tconst filenameStart = disposition\r\n\t\t\t\t.toLowerCase()\r\n\t\t\t\t.indexOf('filename=');\r\n\t\t\tif (filenameStart >= 0) {\r\n\t\t\t\tconst partialDisposition = disposition.slice(filenameStart);\r\n\t\t\t\tconst matches = asciiFilenameRegex.exec(partialDisposition);\r\n\t\t\t\tif (matches != null && matches[2]) {\r\n\t\t\t\t\tfileName = matches[2];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn fileName;\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\n@Component({ className: 'alert' })\r\nexport class AlertComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst closer = this.element.querySelector('.close');\r\n\t\tif (closer) {\r\n\t\t\tcloser.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.close();\r\n\t\t\t});\r\n\t\t}\r\n\t\tthis.element.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.close();\r\n\t\t});\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.close();\r\n\t\t}, 10000);\r\n\t}\r\n\r\n\tprivate close() {\r\n\t\taddClass(this.element, 'is-hidden');\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.element.remove();\r\n\t\t}, 2000);\r\n\t}\r\n}\r\n","import { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\n\r\nexport interface FilterHelperOptions {\r\n\tfilterControlSelector?: string;\r\n\tfilterFormSelector?: string;\r\n\tonSubmit?: () => void;\r\n\tonReset?: () => void;\r\n\tonRemoveFilter?: (value, name) => void;\r\n}\r\n\r\nexport class FilterHelper {\r\n\tstatic defaults: FilterHelperOptions = {\r\n\t\tfilterControlSelector: '.js-filter-control',\r\n\t\tfilterFormSelector: '.js-filter-form',\r\n\t\tonSubmit: () => {},\r\n\t\tonReset: () => {},\r\n\t\tonRemoveFilter: (value, name) => {},\r\n\t};\r\n\r\n\tform: HTMLFormElement;\r\n\temptyState: HTMLElement;\r\n\ttagContainer: HTMLElement;\r\n\tfilters: HTMLInputElement[];\r\n\tsearch: HTMLInputElement;\r\n\r\n\tprivate filterGroups: any = {};\r\n\r\n\toptions: FilterHelperOptions;\r\n\r\n\ttags: HTMLElement[] = [];\r\n\tprivate tagTemplate: HTMLElement;\r\n\r\n\tprivate modals: HTMLElement[];\r\n\r\n\tconstructor(private element: HTMLElement, options?: FilterHelperOptions) {\r\n\t\tthis.options = { ...FilterHelper.defaults, ...options };\r\n\r\n\t\tthis.form = hasClass(\r\n\t\t\telement,\r\n\t\t\tthis.options.filterFormSelector.substring(1)\r\n\t\t)\r\n\t\t\t? (element as HTMLFormElement)\r\n\t\t\t: (element.querySelector(\r\n\t\t\t\t\tthis.options.filterFormSelector\r\n\t\t\t ) as HTMLFormElement);\r\n\t\tthis.emptyState = element.getElementsByClassName(\r\n\t\t\t'js-filter-empty-state'\r\n\t\t)[0] as HTMLElement;\r\n\t\tthis.modals = Array.from(\r\n\t\t\telement.getElementsByClassName('js-modal')\r\n\t\t) as HTMLElement[];\r\n\t\tthis.filters = Array.from(\r\n\t\t\telement.querySelectorAll(this.options.filterControlSelector)\r\n\t\t) as HTMLInputElement[];\r\n\t\tthis.search = element.getElementsByClassName(\r\n\t\t\t'js-filter-search'\r\n\t\t)[0] as HTMLInputElement;\r\n\t\tthis.tagContainer = element.getElementsByClassName(\r\n\t\t\t'js-filter-tag-container'\r\n\t\t)[0] as HTMLElement;\r\n\t\tthis.tagTemplate = element.getElementsByClassName(\r\n\t\t\t'js-filter-tag'\r\n\t\t)[0] as HTMLElement;\r\n\r\n\t\tthis.form.addEventListener('reset', (e) => {\r\n\t\t\tthis.closeModal();\r\n\t\t\tthis.tags.forEach((tag) => {\r\n\t\t\t\tthis.removeFilterItem(tag);\r\n\t\t\t});\r\n\t\t\tif (this.search) {\r\n\t\t\t\tthis.search.value = '';\r\n\t\t\t}\r\n\t\t\tthis.toggleEmptyState(false);\r\n\t\t\tthis.options.onReset();\r\n\t\t});\r\n\r\n\t\tthis.form.addEventListener('submit', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.closeModal();\r\n\t\t\tthis.options.onSubmit();\r\n\t\t});\r\n\r\n\t\tthis.filters.forEach((filter) => {\r\n\t\t\tif (filter.type === 'checkbox') {\r\n\t\t\t\tconst self = filter.getAttribute('data-self');\r\n\t\t\t\tconst connected = filter.getAttribute('data-connected');\r\n\t\t\t\tif (connected) {\r\n\t\t\t\t\tif (this.filterGroups[connected]) {\r\n\t\t\t\t\t\tthis.filterGroups[connected].push(filter);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.filterGroups[connected] = [filter];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst filterSame = this.filters.filter(\r\n\t\t\t\t\t(o) => o.name === filter.name\r\n\t\t\t\t);\r\n\t\t\t\tconst filterAll = filterSame.filter((o) => o.value === '');\r\n\t\t\t\tfilter.addEventListener('change', (e) => {\r\n\t\t\t\t\tif (this.filterGroups[self]) {\r\n\t\t\t\t\t\tthis.filterGroups[self].filter(\r\n\t\t\t\t\t\t\t(o) => (o.checked = filter.checked)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (connected) {\r\n\t\t\t\t\t\tconst target = this.filters.find(\r\n\t\t\t\t\t\t\t(o) => o.getAttribute('data-self') === connected\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tif (target) {\r\n\t\t\t\t\t\t\tif (filter.checked) {\r\n\t\t\t\t\t\t\t\ttarget.checked = this.filters\r\n\t\t\t\t\t\t\t\t\t.filter(\r\n\t\t\t\t\t\t\t\t\t\t(o) =>\r\n\t\t\t\t\t\t\t\t\t\t\to.getAttribute('data-connected') ===\r\n\t\t\t\t\t\t\t\t\t\t\tconnected\r\n\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t.every((o) => o.checked);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\ttarget.checked = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (filter.value === '' && filter.checked) {\r\n\t\t\t\t\t\tfilterSame.filter((o) => (o.checked = false));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (filterAll && filterAll.length > 0) {\r\n\t\t\t\t\t\tfilterAll.forEach((all) => {\r\n\t\t\t\t\t\t\tall.checked =\r\n\t\t\t\t\t\t\t\tfilterSame.some(\r\n\t\t\t\t\t\t\t\t\t(o) =>\r\n\t\t\t\t\t\t\t\t\t\to.checked ||\r\n\t\t\t\t\t\t\t\t\t\t(o.checked && o.value === '')\r\n\t\t\t\t\t\t\t\t) === false;\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\tclear() {\r\n\t\tthis.filters.forEach(filter => {\r\n\t\t\tif (filter.checked) {\r\n\t\t\t\tfilter.checked = false;\r\n\t\t\t}\r\n\t\t\tconst options = Array.from(filter.options || []);\r\n\t\t\tif (options && options.length > 0) {\r\n\t\t\t\toptions.forEach(option => {\r\n\t\t\t\t\toption.selected = false;\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t\tif (this.search) {\r\n\t\t\tthis.search.value = '';\r\n\t\t}\r\n\t}\r\n\r\n\tupdateTags() {\r\n\t\tif (this.tagContainer) {\r\n\t\t\tthis.tags = [];\r\n\t\t\tthis.tagContainer.innerHTML = '';\r\n\t\t\tconst data = new FormData(this.form);\r\n\t\t\tfor (const [name, value] of data) {\r\n\t\t\t\tif (value && value !== '') {\r\n\t\t\t\t\tconst filter = this.filters.find(\r\n\t\t\t\t\t\t(o) => o.name === name && o.value === value\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst title = filter\r\n\t\t\t\t\t\t? filter.getAttribute('data-title')\r\n\t\t\t\t\t\t: '';\r\n\t\t\t\t\tif (title) {\r\n\t\t\t\t\t\tthis.addFilterItem(title, name, value);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ttoggleClass(this.element, 'has-filters', this.tags.length > 0);\r\n\t\t}\r\n\t}\r\n\r\n\taddFilterItem(title, name, value) {\r\n\t\tconst temp = document.createElement('div');\r\n\t\tlet tag = this.tagTemplate.cloneNode(true) as HTMLElement;\r\n\t\tremoveClass(tag, 'd-none');\r\n\t\ttag.setAttribute('data-name', name);\r\n\t\ttag.setAttribute('data-value', value);\r\n\t\ttemp.appendChild(tag);\r\n\t\ttag.outerHTML = tag.outerHTML.replace(/{title}/g, title);\r\n\t\ttag = (temp.firstChild || temp.firstElementChild) as HTMLElement;\r\n\t\tthis.tagContainer.appendChild(tag);\r\n\t\tthis.tags.push(tag);\r\n\r\n\t\ttag.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.removeFilterItem(tag);\r\n\t\t});\r\n\t}\r\n\r\n\tremoveFilterItem(tag) {\r\n\t\tconst name = tag.getAttribute('data-name');\r\n\t\tconst value = tag.getAttribute('data-value');\r\n\t\tconst filter = this.filters.find(\r\n\t\t\t(o) => o.name === name && o.value === value\r\n\t\t);\r\n\t\tif (filter) {\r\n\t\t\tfilter.value = filter.defaultValue;\r\n\t\t\tfilter.checked = false;\r\n\t\t}\r\n\t\tthis.options.onRemoveFilter(value, name);\r\n\t}\r\n\r\n\ttoggleEmptyState(show = false) {\r\n\t\tif (this.emptyState) {\r\n\t\t\ttoggleClass(this.emptyState, 'd-none', show);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate closeModal() {\r\n\t\tif (this.modals.length) {\r\n\t\t\tthis.modals.forEach((modal) => {\r\n\t\t\t\tremoveClass(modal, 'is-open');\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { debounce } from '@opten/reactive/debounce';\r\n\r\nexport class GlobalVarsComponent {\r\n\tconstructor(private element: HTMLElement = document.documentElement) {\r\n\t\tthis.setGlobalVars();\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tthis.setGlobalVars();\r\n\t\t\t}, 300)\r\n\t\t);\r\n\t}\r\n\r\n\tsetGlobalVars() {\r\n\t\tthis.element.style.setProperty(\r\n\t\t\t'--window-height',\r\n\t\t\t`${window.innerHeight * 0.01 * 100}px`\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\nimport { toggleClass } from \"@opten/dom/toggle-class\";\r\n\r\n@Component({ className: \"js-input\" })\r\nexport class InputComponent {\r\n\tprivate formField: HTMLElement;\r\n\tprivate valueShadows: HTMLElement[];\r\n\tprivate labels: HTMLElement[];\r\n\tprivate hasValueClass = \"has-value\";\r\n\tprivate isActiveClass = \"is-active\";\r\n\r\n\tconstructor(private input: HTMLInputElement) {\r\n\t\tthis.formField = input.closest(\".c-formfield\") as HTMLElement;\r\n\t\tthis.valueShadows = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`.js-input-shadow[data-name='${this.input.name}']`\r\n\t\t\t)\r\n\t\t) as HTMLElement[];\r\n\t\tthis.labels = Array.from(\r\n\t\t\tinput\r\n\t\t\t\t.closest(\"form\")\r\n\t\t\t\t.querySelectorAll(`[data-group=\"${this.input.name}\"]`)\r\n\t\t) as HTMLElement[];\r\n\r\n\t\tinput.addEventListener(\"change\", () => this.setValueClass());\r\n\t\tinput.addEventListener(\"input\", () => this.setValueClass());\r\n\r\n\t\tthis.setValueClass();\r\n\t}\r\n\r\n\tprivate setValueClass() {\r\n\t\tconst hasData =\r\n\t\t\tthis.input.placeholder ||\r\n\t\t\tthis.input.value ||\r\n\t\t\tthis.input.type == \"date\" ||\r\n\t\t\tthis.input.type == \"time\" ||\r\n\t\t\tthis.input.type == \"file\";\r\n\t\ttoggleClass(this.formField, this.hasValueClass, !!hasData);\r\n\t\tthis.updateInputHeight();\r\n\t\tif (this.valueShadows && this.valueShadows.length > 0) {\r\n\t\t\tthis.valueShadows.forEach((shadow) => {\r\n\t\t\t\tshadow.innerHTML = this.input.value;\r\n\t\t\t});\r\n\t\t}\r\n\t\tif (this.labels && this.labels.length > 0) {\r\n\t\t\tlet value = this.input.value;\r\n\t\t\tif (\r\n\t\t\t\tthis.input.type.toLowerCase() === \"radio\" ||\r\n\t\t\t\tthis.input.type.toLowerCase() === \"checkbox\"\r\n\t\t\t) {\r\n\t\t\t\tvalue = this.input.checked ? this.input.value : \"\";\r\n\t\t\t}\r\n\t\t\tthis.labels.forEach((label) => {\r\n\t\t\t\tconst isActiveClass =\r\n\t\t\t\t\tlabel.getAttribute(\"data-active-class\") ||\r\n\t\t\t\t\tthis.isActiveClass;\r\n\t\t\t\tconst htmlFor = label.htmlFor || label.getAttribute(\"data-for\");\r\n\t\t\t\ttoggleClass(\r\n\t\t\t\t\tlabel,\r\n\t\t\t\t\tisActiveClass,\r\n\t\t\t\t\tvalue && htmlFor == this.input.id\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateInputHeight() {\r\n\t\tif (this.input.tagName.toLowerCase() === \"textarea\") {\r\n\t\t\tthis.input.style.height = \"\";\r\n\t\t\tthis.input.style.height =\r\n\t\t\t\t(this.input.scrollHeight || 65) + 2 + \"px\";\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { debounce } from '@opten/reactive/debounce';\r\n\r\ndeclare const Swiper: any;\r\n\r\n@Component({ className: 'js-media-slider' })\r\nexport class MediaSliderComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst autoplay = parseInt(this.element.getAttribute('data-autoplay'), 0) || 0;\r\n\t\tconst swiper = new Swiper(element, {\r\n\t\t\tautoHeight: true,\r\n\t\t\tspeed: 1000,\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: '.swiper-button-next',\r\n\t\t\t\tprevEl: '.swiper-button-prev',\r\n\t\t\t},\r\n\t\t\tpagination: {\r\n\t\t\t\tel: '.swiper-pagination',\r\n\t\t\t\tclickable: true,\r\n\t\t\t},\r\n\t\t\tkeyboard: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tonlyInViewport: true,\r\n\t\t\t},\r\n\t\t\tparallax: true,\r\n\t\t\tautoplay: (autoplay > 0 ? {\r\n\t\t\t\tdelay: 5000,\r\n\t\t\t } : false),\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('lazyloaded', (e) => {\r\n\t\t\tswiper.updateAutoHeight(0);\r\n\t\t});\r\n\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tswiper.updateAutoHeight(0);\r\n\t\t\t}, 400)\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { getCookie } from '@opten/cookie/get';\r\nimport { setCookie } from '@opten/cookie/set';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\n\r\n@Component({ className: 'js-modal' })\r\nexport class ModalComponent {\r\n\tprivate triggers: HTMLElement[];\r\n\tprivate cookieKey: string;\r\n\tprivate cookieDays: number;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.cookieKey = `modal-ignore-${element.id}`;\r\n\t\tthis.cookieDays =\r\n\t\t\tparseInt(this.element.getAttribute('data-cookie-ignore')) || -1;\r\n\r\n\t\tif (this.cookieDays >= 0 && getCookie(this.cookieKey) !== 'true') {\r\n\t\t\taddClass(this.element, 'is-open');\r\n\t\t}\r\n\r\n\t\tthis.triggers = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`[href=\"#${this.element.id}\"], [data-target=\"#${this.element.id}\"]`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tthis.triggers.forEach((trigger) => {\r\n\t\t\ttrigger.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\ttoggleClass(this.element, 'is-open');\r\n\t\t\t\tif (hasClass(this.element, 'is-open') == false) {\r\n\t\t\t\t\tthis.closeEvent();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('click', (e) => {\r\n\t\t\tif (\r\n\t\t\t\thasClass(this.element, 'is-open') &&\r\n\t\t\t\t(!e.target.closest('.c-modal__inner') ||\r\n\t\t\t\t\te.target.closest('.js-modal-close'))\r\n\t\t\t) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tremoveClass(this.element, 'is-open');\r\n\t\t\t\tthis.closeEvent();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate closeEvent() {\r\n\t\tif (this.cookieDays >= 0 && getCookie(this.cookieKey) !== 'true') {\r\n\t\t\tconst date = new Date();\r\n\t\t\tdate.setDate(date.getDate() + 1);\r\n\t\t\tsetCookie(this.cookieKey, 'true', date, '/');\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\nimport { debounce } from '@opten/reactive/debounce';\r\nimport { scrollToOffset } from '@opten/scroll/scroll-to-offset';\r\n\r\n@Component({ className: 'js-page-top' })\r\nexport class PageTopComponent {\r\n\tconstructor(\r\n\t\tprivate element: HTMLElement,\r\n\t\tprivate wrapper: HTMLElement | Window = window\r\n\t) {\r\n\t\tthis.setVisibility();\r\n\t\tthis.wrapper.addEventListener(\r\n\t\t\t'scroll',\r\n\t\t\tdebounce(() => this.setVisibility(), 300)\r\n\t\t);\r\n\t\telement.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tscrollToOffset(\r\n\t\t\t\tthis.scrollTop() * -1,\r\n\t\t\t\tundefined,\r\n\t\t\t\tundefined,\r\n\t\t\t\tundefined,\r\n\t\t\t\tthis.wrapper\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate setVisibility() {\r\n\t\ttoggleClass(this.element, 'is-visible', this.scrollTop() > 400);\r\n\t}\r\n\r\n\tprivate scrollTop() {\r\n\t\tif (this.wrapper instanceof Window || this.wrapper.clientHeight == 0) {\r\n\t\t\treturn getWindowScrollTop();\r\n\t\t} else {\r\n\t\t\treturn this.wrapper.scrollTop;\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\n\r\n@Component({ className: 'js-password-reveal' })\r\nexport class PasswordRevealComponent {\r\n\tprivate formField: HTMLElement;\r\n\tprivate input: HTMLInputElement;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.formField = element.closest('.c-formfield') as HTMLElement;\r\n\t\tthis.input = this.formField?.querySelector('input') as HTMLInputElement;\r\n\r\n\t\tif (this.input) {\r\n\t\t\tthis.element.addEventListener('click', () => {\r\n\t\t\t\tif (this.input.type.toLowerCase() == 'password') {\r\n\t\t\t\t\tthis.input.type = 'text';\r\n\t\t\t\t\tremoveClass(this.element, 'icon-eye');\r\n\t\t\t\t\taddClass(this.element, 'icon-eye-off');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.input.type = 'password';\r\n\t\t\t\t\taddClass(this.element, 'icon-eye');\r\n\t\t\t\t\tremoveClass(this.element, 'icon-eye-off');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-pseudo-link' })\r\nexport class PseudoLinkComponent {\r\n\tprivate href: string;\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.href = this.element.getAttribute('data-href');\r\n\t\tif (this.href) {\r\n\t\t\tthis.element.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\twindow.location = this.href;\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n","import { Collapse } from '@opten/collapse/initializer';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\n\r\nexport class ScrollOnLoadComponent {\r\n\tprivate navbar: HTMLElement;\r\n\r\n\tconstructor() {\r\n\t\tthis.navbar = document.getElementsByClassName(\r\n\t\t\t'js-navbar-height'\r\n\t\t)[0] as HTMLElement;\r\n\t\tif (window.location.hash) {\r\n\t\t\tconst target = document.getElementById(\r\n\t\t\t\twindow.location.hash.slice(1)\r\n\t\t\t);\r\n\t\t\tif (target) {\r\n\t\t\t\tlet offset = this.navbar ? this.navbar.clientHeight * -1 : 0;\r\n\t\t\t\tif (target.getAttribute('aria-expanded') === 'false') {\r\n\t\t\t\t\tCollapse.getInstance(\r\n\t\t\t\t\t\tgetSelectorElementFromElement(target)\r\n\t\t\t\t\t).show();\r\n\t\t\t\t}\r\n\t\t\t\tscrollToElement(target, undefined, undefined, offset);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\n\r\n@Component({ className: 'js-scroll-to' })\r\nexport class ScrollToComponent {\r\n\tprivate navbar: HTMLElement;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.navbar = document.getElementsByClassName(\r\n\t\t\t'js-navbar-height'\r\n\t\t)[0] as HTMLElement;\r\n\r\n\t\telement.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tconst target = getSelectorElementFromElement(element);\r\n\t\t\tconst offsetString = element.getAttribute('data-offset');\r\n\t\t\tlet offset =\r\n\t\t\t\toffsetString === 'targetHeight'\r\n\t\t\t\t\t? target.clientHeight\r\n\t\t\t\t\t: parseInt(offsetString || '0', 0);\r\n\t\t\tif (isNaN(offset)) {\r\n\t\t\t\toffset = 0;\r\n\t\t\t}\r\n\t\t\tif (offset === 0) {\r\n\t\t\t\toffset = this.navbar ? this.navbar.clientHeight * -1 : 0;\r\n\t\t\t}\r\n\t\t\tscrollToElement(target, undefined, undefined, offset);\r\n\t\t});\r\n\t}\r\n}\r\n","export function linearTween(\n\ttimeElapsed: number,\n\tstart: number,\n\tdistance: number,\n\tduration: number\n) {\n\treturn (distance * timeElapsed) / duration + start;\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { Collapse } from './initializer';\n\n@Component({ className: 'js-collapse' })\nexport class CollapseComponent {\n\tcollapse: Collapse;\n\tconstructor(private element: HTMLElement) {\n\t\tthis.collapse = new Collapse(element, {});\n\t}\n}\n","import { addClass } from '@opten/dom/add-class';\nimport { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\nimport { addTransitionEndListener } from '@opten/transition/add-transition-end-listener';\n\nimport { eventNamespaceFactory } from '@opten/events/event-namespace-factory';\n\nconst stringCollapse = 'Collapse';\n\nexport interface CollapseOptions {\n\tcomponentClass?: string;\n\tactiveClass?: string;\n\tactiveParentClass?: string;\n\tshowClass?: string;\n\tshowClassDesktop?: string;\n\tdesktopWidth?: number;\n\tcollapsingClass?: string;\n\tparentElement?: HTMLElement;\n\ttransitionDuration?: number;\n\tanimateProp?: 'height' | 'width' | false;\n\tisHideable?: boolean;\n\tcloseSiblings?: boolean;\n\tuseShowClassDesktop?: boolean;\n\tdataParentSelector?: string;\n\tdataTargetSelector?: string;\n\tdataToggleSelector?: string;\n\threfSelector?: string;\n}\n\nexport class Collapse {\n\t// TODO: Uggly naming\n\tget toggles(): HTMLElement[] {\n\t\treturn this.triggers;\n\t}\n\n\tconstructor(public element: HTMLElement, options?: CollapseOptions) {\n\t\tthis.options = {\n\t\t\t...this.options,\n\t\t\t...options,\n\t\t};\n\n\t\tif (!this.options.parentElement) {\n\t\t\tthis.options.parentElement = getSelectorElementFromElement(\n\t\t\t\telement,\n\t\t\t\tthis.options.dataParentSelector,\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\n\t\tthis.init();\n\t}\n\tprivate options: CollapseOptions = {\n\t\tactiveClass: 'is-active',\n\t\tactiveParentClass: 'is-active',\n\t\tanimateProp: 'height',\n\t\tcollapsingClass: 'collapse--collapsing',\n\t\tcomponentClass: 'collapse',\n\t\tshowClass: 'collapse--show',\n\t\tshowClassDesktop: 'collapse--md-show',\n\t\tdesktopWidth: 1024,\n\t\ttransitionDuration: 600,\n\t\tisHideable: true,\n\t\tcloseSiblings: true,\n\t\tuseShowClassDesktop: false,\n\t\tdataParentSelector: 'data-parent',\n\t\tdataTargetSelector: 'data-target',\n\t\tdataToggleSelector: 'data-toggle',\n\t\threfSelector: 'href',\n\t};\n\n\tprivate parent: HTMLElement;\n\tprivate triggers: HTMLElement[];\n\n\tprivate target: Element;\n\tprivate isTransitioning = false; // when true it will prevent click handlers\n\n\t// event names\n\tprivate eventNamespaceFn = eventNamespaceFactory('opten.collapse');\n\n\tstatic getInstance(\n\t\telement: HTMLElement,\n\t\toptions?: CollapseOptions,\n\t\tcreate = true\n\t) {\n\t\tlet data = element[stringCollapse] as Collapse;\n\n\t\tif (!data && create) {\n\t\t\tdata = new Collapse(element, options);\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tisOpen(): boolean {\n\t\tif (\n\t\t\tthis.options.useShowClassDesktop &&\n\t\t\twindow.outerWidth >= this.options.desktopWidth &&\n\t\t\thasClass(this.element, this.options.showClassDesktop)\n\t\t) {\n\t\t\taddClass(this.element, this.options.showClass);\n\t\t}\n\t\tremoveClass(this.element, this.options.showClassDesktop);\n\t\treturn hasClass(this.element, this.options.showClass);\n\t}\n\n\ttoggle() {\n\t\tif (this.isOpen()) {\n\t\t\tif (this.options.isHideable) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\tshow() {\n\t\tif (this.isTransitioning || this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.closeSiblings && this.parent) {\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\n\t\t\tconst actives = Array.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\n\t\t\t\t)\n\t\t\t).filter((active) => active !== this.target);\n\n\t\t\tif (actives && actives.length) {\n\t\t\t\tconst anyTransitioning = actives.filter((active) => {\n\t\t\t\t\tconst collapseInstance = active[stringCollapse] as Collapse;\n\t\t\t\t\treturn collapseInstance && collapseInstance.isTransitioning;\n\t\t\t\t});\n\n\t\t\t\tif (anyTransitioning.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tactives.forEach((active) =>\n\t\t\t\t\tCollapse.getInstance(active as HTMLElement).hide()\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis._handleShow(this.element, this.triggers);\n\t}\n\n\thide() {\n\t\tif (this.isTransitioning || !this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleClose(this.element, this.triggers);\n\t}\n\n\tdestroy() {\n\t\tconst element = this.element;\n\n\t\tif (element[stringCollapse]) {\n\t\t\telement[stringCollapse] = null;\n\n\t\t\tremoveClass(element, this.options.componentClass);\n\t\t\tremoveClass(element, this.options.collapsingClass);\n\t\t\tremoveClass(element, this.options.showClass);\n\n\t\t\tif (this.options.animateProp) {\n\t\t\t\telement.style[this.options.animateProp] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate init() {\n\t\t// todo: only initalize once, like bootstrap does it?\n\t\tthis.triggers = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`[${this.options.hrefSelector}=\"#${this.element.id}\"], [${this.options.dataTargetSelector}=\"#${this.element.id}\"]`\n\t\t\t)\n\t\t);\n\n\t\t// todo: why do we need that?\n\t\tconst toggles = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"]`\n\t\t\t)\n\t\t);\n\t\tfor (const toggle of toggles) {\n\t\t\tconst target = getSelectorElementFromElement(\n\t\t\t\ttoggle,\n\t\t\t\tthis.options.dataTargetSelector\n\t\t\t);\n\t\t\tif (target !== null && target === this.element) {\n\t\t\t\tthis.target = target;\n\t\t\t\tthis.triggers.push(toggle as HTMLElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.parent = this.options.parentElement;\n\n\t\t// init\n\t\tif (!(stringCollapse in this.element)) {\n\t\t\t// prevent adding event handlers twice\n\t\t\tthis.triggers.forEach((trigger) =>\n\t\t\t\ttrigger.addEventListener('click', this.handleClick, false)\n\t\t\t);\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\tArray.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"][${this.options.dataParentSelector}=\"#${this.parent.id}\"]`\n\t\t\t\t)\n\t\t\t).forEach((element) => {\n\t\t\t\tthis._addAriaAndCollapsedClass(\n\t\t\t\t\tgetSelectorElementFromElement(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tthis.options.dataTargetSelector\n\t\t\t\t\t),\n\t\t\t\t\t[element]\n\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._addAriaAndCollapsedClass(this.element, this.triggers);\n\t\t}\n\n\t\taddClass(this.element, this.options.componentClass);\n\n\t\tthis.element[stringCollapse] = this;\n\t}\n\n\tprivate handleClick = (event: Event) => {\n\t\t// preventDefault only for elements (which change the URL) not inside the collapsible element\n\t\tconst trigger = event && (event.currentTarget as HTMLElement);\n\t\tif (trigger && trigger.tagName === 'A') {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tconst target = getSelectorElementFromElement(\n\t\t\ttrigger,\n\t\t\tthis.options.dataTargetSelector\n\t\t);\n\t\tlet data = target[stringCollapse] as Collapse;\n\n\t\tif (!data) {\n\t\t\tdata = trigger[stringCollapse] as Collapse;\n\t\t}\n\n\t\tif (target) {\n\t\t\tCollapse.getInstance(target, data.options).toggle();\n\t\t}\n\t};\n\n\tprivate _handleShow(collapseElement: HTMLElement, triggers?: Element[]) {\n\t\tthis.eventNamespaceFn(collapseElement, 'show');\n\n\t\tremoveClass(collapseElement, this.options.componentClass);\n\t\taddClass(collapseElement, this.options.collapsingClass);\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] =\n\t\t\t\tcollapseElement.scrollHeight + 'px';\n\t\t}\n\n\t\tif (triggers && triggers.length) {\n\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\taddClass(trigger, this.options.activeClass);\n\t\t\t\ttrigger.setAttribute('aria-expanded', 'true');\n\t\t\t});\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\taddClass(this.parent, this.options.activeClass);\n\t\t}\n\n\t\tthis.isTransitioning = true;\n\n\t\taddTransitionEndListener(\n\t\t\tcollapseElement,\n\t\t\t() => {\n\t\t\t\tremoveClass(collapseElement, this.options.collapsingClass);\n\t\t\t\taddClass(collapseElement, this.options.componentClass);\n\t\t\t\taddClass(collapseElement, this.options.showClass);\n\n\t\t\t\tthis.isTransitioning = false;\n\t\t\t\tif (this.options.animateProp) {\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t\t\t}\n\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'shown');\n\t\t\t},\n\t\t\tthis.options.transitionDuration\n\t\t);\n\t}\n\n\tprivate _handleClose(collapseElement: HTMLElement, triggers?: Element[]) {\n\t\tthis.eventNamespaceFn(collapseElement, 'hide');\n\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] =\n\t\t\t\tcollapseElement.scrollHeight + 'px';\n\t\t}\n\n\t\taddClass(collapseElement, this.options.collapsingClass);\n\t\tremoveClass(collapseElement, this.options.componentClass);\n\t\tremoveClass(collapseElement, this.options.showClass);\n\t\t// force reflow to enable transition\n\t\tcollapseElement.offsetWidth; // tslint:disable-line\n\n\t\tif (triggers && triggers.length) {\n\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\tconst target = getSelectorElementFromElement(\n\t\t\t\t\ttrigger,\n\t\t\t\t\tthis.options.dataTargetSelector\n\t\t\t\t);\n\n\t\t\t\tif (target !== null) {\n\t\t\t\t\tif (!hasClass(target, this.options.showClass)) {\n\t\t\t\t\t\tremoveClass(trigger, this.options.activeClass);\n\t\t\t\t\t\ttrigger.setAttribute('aria-expanded', 'false');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\n\t\t\tconst actives = Array.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\n\t\t\t\t)\n\t\t\t).filter((o) => o !== collapseElement);\n\n\t\t\tif (this.parent && actives.length === 0) {\n\t\t\t\tremoveClass(this.parent, this.options.activeParentClass);\n\t\t\t}\n\t\t}\n\n\t\tthis.isTransitioning = true;\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t}\n\n\t\taddTransitionEndListener(\n\t\t\tcollapseElement,\n\t\t\t() => {\n\t\t\t\tthis.isTransitioning = false;\n\n\t\t\t\tremoveClass(collapseElement, this.options.collapsingClass);\n\t\t\t\taddClass(collapseElement, this.options.componentClass);\n\n\t\t\t\tif (this.options.animateProp) {\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t\t\t}\n\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'hidden');\n\t\t\t},\n\t\t\tthis.options.transitionDuration\n\t\t);\n\t}\n\n\tprivate _addAriaAndCollapsedClass(element: Element, triggers: Element[]) {\n\t\tif (element) {\n\t\t\tconst isOpen = hasClass(element, this.options.showClass);\n\n\t\t\tif (triggers && triggers.length) {\n\t\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\t\tisOpen\n\t\t\t\t\t\t? addClass(trigger, this.options.activeClass)\n\t\t\t\t\t\t: removeClass(trigger, this.options.activeClass);\n\n\t\t\t\t\ttrigger.setAttribute(\n\t\t\t\t\t\t'aria-expanded',\n\t\t\t\t\t\tisOpen.toString().toLowerCase()\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function collapse(\n\telement: HTMLElement,\n\toptions?: CollapseOptions\n): Collapse {\n\tconsole.error(\n\t\t'collapse deprecated: use new Collapse(element, options) instead. (initialized elements can be accessed via Collapse.getInstance()'\n\t);\n\tlet data = element[stringCollapse] as Collapse;\n\n\tif (!data) {\n\t\tdata = new Collapse(element, options);\n\t}\n\n\treturn data;\n}\n","import { asHTMLElement } from '@opten/dom/as-html-element';\nimport { hasClass } from '@opten/dom/has-class';\nimport { isHTMLElement } from '@opten/dom/is-html-element';\n\nimport { Compiler } from '../';\nimport { Component } from '../metadata/component';\nimport { Reflector } from '../reflector';\nimport { Resolver } from '../resolver';\n\n// todo: cache, static, inject?\nconst reflector = new Reflector();\nconst resolver = new Resolver(reflector);\nconst compiler = new Compiler(resolver);\n\nexport function factory(components: any[]) {\n\treturn (rootElement: HTMLElement) => {\n\t\tconst observables = new Map();\n\t\tcomponents.forEach((componentType) => {\n\t\t\t// todo: inject resolver, or cache?\n\t\t\t// todo: static or something to cache?\n\t\t\tconst component = resolver.resolve(componentType);\n\n\t\t\tif (component) {\n\t\t\t\tconst safeRootElement =\n\t\t\t\t\trootElement === document.body ? document : rootElement;\n\t\t\t\tArray.from(\n\t\t\t\t\tsafeRootElement.getElementsByClassName(component.className)\n\t\t\t\t).forEach((node) =>\n\t\t\t\t\tcompiler.compile(component, node as HTMLElement, componentType)\n\t\t\t\t);\n\n\t\t\t\tif (component.observe) {\n\t\t\t\t\tobservables.set(component, componentType);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`No @Component annotation for ${\n\t\t\t\t\t\tcomponentType ? componentType.name : componentType\n\t\t\t\t\t} found!`\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tif (observables.size) {\n\t\t\tnew MutationObserver((mutations) => {\n\t\t\t\tconst componentInitializer = new Map void>();\n\n\t\t\t\tmutations.forEach((mutation) => {\n\t\t\t\t\tobservables.forEach((value, key) =>\n\t\t\t\t\t\tArray.from(mutation.addedNodes)\n\t\t\t\t\t\t\t.filter((node) => isHTMLElement(node))\n\t\t\t\t\t\t\t.map((node) => asHTMLElement(node))\n\t\t\t\t\t\t\t.forEach((node) => {\n\t\t\t\t\t\t\t\tconst comps = Array.from(\n\t\t\t\t\t\t\t\t\tnode.getElementsByClassName(key.className)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (hasClass(node, key.className)) {\n\t\t\t\t\t\t\t\t\tcomps.push(node);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcomps.forEach((component) => {\n\t\t\t\t\t\t\t\t\tcomponentInitializer.set(component as HTMLElement, () =>\n\t\t\t\t\t\t\t\t\t\tcompiler.compile(key, component as HTMLElement, value)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tcomponentInitializer.forEach((c) => c());\n\t\t\t}).observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t});\n\t\t}\n\t};\n}\n","import { Component } from './metadata/component';\nimport { Query } from './metadata/di';\nimport { OnInit } from './metadata/lifecycle';\nimport { Resolver } from './resolver';\nimport { isType } from './util/type';\n\n// todo: move whole project to @opten/initializer?\nexport class Compiler {\n\tprivate componentCache = new Map();\n\n\tconstructor(private resolver: Resolver) {}\n\n\tcompile(\n\t\tcomponent: Component,\n\t\tnode: HTMLElement,\n\t\tcomponentType: /*Type*/ any\n\t) {\n\t\t// todo: cache everything?\n\n\t\t// todo: cache that also?\n\t\tconst constructor = new componentType(node);\n\n\t\tif (this.componentCache.has(node)) {\n\t\t\tthis.componentCache.get(node).push(constructor);\n\t\t} else {\n\t\t\tthis.componentCache.set(node, [constructor]);\n\t\t}\n\n\t\tObject.keys(component.queries).forEach((propName) => {\n\t\t\tconst query: Query = component.queries[propName];\n\n\t\t\t// todo: why do we have to inject the resolver?\n\t\t\t// can we not get the class name by some other way?\n\t\t\tconst target = this.resolver.resolve(query.selector);\n\n\t\t\tif (target) {\n\t\t\t\tconst targetNode = query.descendants ? node : document;\n\t\t\t\tconst nodes = targetNode.getElementsByClassName(target.className);\n\n\t\t\t\tconst cache = Array.from(nodes)\n\t\t\t\t\t.filter((o) => (query.filter ? query.filter(o) : true))\n\t\t\t\t\t.map((e) => this.componentCache.get(e as HTMLElement))\n\t\t\t\t\t.filter((e) => e !== undefined && e !== null)\n\t\t\t\t\t.reduce((acc, val) => acc.concat(val), [])\n\t\t\t\t\t.filter((f) => f.constructor === query.selector);\n\n\t\t\t\tconstructor[propName] = query.first ? cache[0] : cache;\n\t\t\t}\n\t\t});\n\n\t\tif (isType(constructor.onInit)) {\n\t\t\t(constructor as OnInit).onInit();\n\t\t}\n\t}\n}\n","import { makeDecorator, TypeDecorator } from '../util/decorators';\nimport { makeMetadataFactory, MetadataFactory } from '../util/factories';\n\nexport interface ComponentDecorator {\n\t(obj: Component): TypeDecorator;\n\tnew (obj: Component): Component;\n}\n\nexport interface Component {\n\tclassName?: string;\n\tobserve?: boolean;\n\tqueries?: { [key: string]: any };\n}\n\n// tslint:disable-next-line:variable-name\nexport const Component: ComponentDecorator = makeDecorator(\n\t'Component',\n\t(c: Component = {}) => ({ ...c })\n);\n\nexport const createComponent: MetadataFactory = makeMetadataFactory<\n\tComponent\n>('Component', (c: Component = {}) => ({ ...c }));\n","import { ANNOTATIONS, PROP_METADATA } from '../util/decorators';\nimport { isType, Type } from '../util/type';\n\n// todo: @opten/reflector? or @opten/initializer/reflector?\nexport class Reflector {\n\tannotations(typeOrFunc: Type): any[] {\n\t\tif (!isType(typeOrFunc)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst parentCtor = getParentCtor(typeOrFunc);\n\t\tconst ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n\t\tconst parentAnnotations =\n\t\t\tparentCtor !== Object ? this.annotations(parentCtor) : [];\n\t\treturn parentAnnotations.concat(ownAnnotations);\n\t}\n\n\tpropMetadata(typeOrFunc: any): { [key: string]: any[] } {\n\t\tif (!isType(typeOrFunc)) {\n\t\t\treturn {};\n\t\t}\n\t\tconst parentCtor = getParentCtor(typeOrFunc);\n\t\tconst propMetadata: { [key: string]: any[] } = {};\n\t\tif (parentCtor !== Object) {\n\t\t\tconst parentPropMetadata = this.propMetadata(parentCtor);\n\t\t\tObject.keys(parentPropMetadata).forEach((propName) => {\n\t\t\t\tpropMetadata[propName] = parentPropMetadata[propName];\n\t\t\t});\n\t\t}\n\t\tconst ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n\t\tif (ownPropMetadata) {\n\t\t\tObject.keys(ownPropMetadata).forEach((propName) => {\n\t\t\t\tconst decorators: any[] = [];\n\t\t\t\tif (propMetadata.hasOwnProperty(propName)) {\n\t\t\t\t\tdecorators.push(...propMetadata[propName]);\n\t\t\t\t}\n\t\t\t\tdecorators.push(...ownPropMetadata[propName]);\n\t\t\t\tpropMetadata[propName] = decorators;\n\t\t\t});\n\t\t}\n\t\treturn propMetadata;\n\t}\n\n\tprivate _ownAnnotations(\n\t\ttypeOrFunc: Type,\n\t\tparentCtor: any\n\t): any[] | null {\n\t\t// API for metadata created by invoking the decorators.\n\t\tif (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n\t\t\treturn (typeOrFunc as any)[ANNOTATIONS];\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate _ownPropMetadata(\n\t\ttypeOrFunc: any,\n\t\tparentCtor: any\n\t): { [key: string]: any[] } | null {\n\t\t// API for metadata created by invoking the decorators.\n\t\tif (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n\t\t\treturn (typeOrFunc as any)[PROP_METADATA];\n\t\t}\n\t\treturn null;\n\t}\n}\n\nfunction getParentCtor(ctor: Type): Type {\n\tconst parentProto = Object.getPrototypeOf(ctor.prototype);\n\tconst parentCtor = parentProto ? parentProto.constructor : null;\n\t// Note: We always use `Object` as the null value\n\t// to simplify checking later on.\n\treturn parentCtor || Object;\n}\n","import { Component, createComponent } from '../metadata/component';\nimport { Query } from '../metadata/di';\nimport { Reflector } from '../reflector';\n\nconst QUERY_METADATA_IDENTIFIERS = [\n\t'ComponentRef',\n\t'ComponentRefs',\n\t'ChildRef',\n\t'ChildrenRef',\n];\n\n// todo: @opten/resolver? or @opten/initializer/resolver?\nexport class Resolver {\n\tconstructor(private reflector: Reflector) {}\n\n\t// propertyCache = new Map();\n\n\tresolve(type: any /*Type*/): Component | null {\n\t\tconst typeMetadata = this.reflector.annotations(type);\n\n\t\tif (typeMetadata) {\n\t\t\tconst metadata = findLast(\n\t\t\t\ttypeMetadata,\n\t\t\t\t(c) => c && c.metadataName === 'Component'\n\t\t\t);\n\n\t\t\tif (metadata) {\n\t\t\t\tconst propertyMetadata = this.reflector.propMetadata(type);\n\n\t\t\t\treturn this._mergeWithPropertyMetadata(\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpropertyMetadata,\n\t\t\t\t\ttype\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate _mergeWithPropertyMetadata(\n\t\tcomponent: Component,\n\t\tpropertyMetadata: { [key: string]: any[] },\n\t\tcomponentType: /*Type*/ any\n\t): Component {\n\t\tconst queries: { [key: string]: any } = {};\n\n\t\tObject.keys(propertyMetadata).forEach((propName: string) => {\n\t\t\tconst query = findLast(propertyMetadata[propName], (a) =>\n\t\t\t\tQUERY_METADATA_IDENTIFIERS.some((i) => i && i === a.metadataName)\n\t\t\t);\n\n\t\t\tif (query) {\n\t\t\t\tqueries[propName] = query;\n\t\t\t}\n\t\t});\n\n\t\treturn this._merge(component, queries, componentType);\n\t}\n\n\tprivate _merge(\n\t\tcomponent: Component,\n\t\tqueries: { [key: string]: any },\n\t\tcomponentType: /*Type*/ any\n\t): Component {\n\t\tconst mergedQueries = component.queries\n\t\t\t? { ...component.queries, ...queries }\n\t\t\t: queries;\n\n\t\treturn createComponent({\n\t\t\tclassName: component.className,\n\t\t\tobserve: component.observe,\n\t\t\tqueries: mergedQueries,\n\t\t});\n\t}\n\n\tprivate _getQueriesMetadata(queries: { [key: string]: Query }): any[] {\n\t\tconst res: any[] = [];\n\n\t\tObject.keys(queries).forEach((propertyName: string) => {\n\t\t\tconst query = queries[propertyName];\n\t\t\tres.push(this._getQueryMetadata(query, propertyName));\n\t\t});\n\n\t\treturn res;\n\t}\n\n\tprivate _getQueryMetadata(q: Query, propertyName: string): any {\n\t\treturn {\n\t\t\tdescendants: q.descendants,\n\t\t\tfirst: q.first,\n\t\t\tpropertyName,\n\t\t\tread: false,\n\t\t\tselector: q.selector,\n\t\t};\n\t}\n}\n\nfunction findLast(arr: T[], condition: (value: T) => boolean): T | null {\n\tfor (let i = arr.length - 1; i >= 0; i--) {\n\t\tif (condition(arr[i])) {\n\t\t\treturn arr[i];\n\t\t}\n\t}\n\treturn null;\n}\n","import { Type } from './type';\n\nexport const ANNOTATIONS = '__annotations__';\nexport const PROP_METADATA = '__prop__metadata__';\n\nexport interface TypeDecorator {\n\t// Invoke as ES7 decorator.\n\t>(type: T): T;\n\n\t// Make TypeDecorator assignable to built-in ParameterDecorator type.\n\t// ParameterDecorator is declared in lib.d.ts as a `declare type`\n\t// so we cannot declare this interface as a subtype.\n\t// see https://github.com/angular/angular/issues/3379#issuecomment-126169417\n\t(\n\t\ttarget: object,\n\t\tpropertyKey?: string | symbol,\n\t\tparameterIndex?: number\n\t): void;\n}\n\nexport function makeDecorator(\n\tname: string,\n\tprops?: (...args: any[]) => any,\n\tparentClass?: any,\n\tchainFn?: (fn: TypeDecorator) => void,\n\ttypeFn?: (type: Type, ...args: any[]) => void\n): {\n\tnew (...args: any[]): any;\n\t(...args: any[]): any;\n\t(...args: any[]): (cls: any) => any;\n} {\n\tconst metaCtor = makeMetadataCtor(props);\n\n\tfunction DecoratorFactory(...args: any[]): (cls: any) => any {\n\t\tif (this instanceof DecoratorFactory) {\n\t\t\tmetaCtor.call(this, ...args);\n\t\t\treturn this;\n\t\t}\n\n\t\tconst annotationInstance = new (DecoratorFactory as any)(...args);\n\t\tconst typeDecorator: TypeDecorator = (cls: Type) => {\n\t\t\tif (typeFn) {\n\t\t\t\ttypeFn(cls, ...args);\n\t\t\t}\n\t\t\t// Use of Object.defineProperty is important since it creates non-enumerable property which\n\t\t\t// prevents the property is copied during subclassing.\n\t\t\tconst annotations = cls.hasOwnProperty(ANNOTATIONS)\n\t\t\t\t? (cls as any)[ANNOTATIONS]\n\t\t\t\t: Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n\t\t\tannotations.push(annotationInstance);\n\t\t\treturn cls;\n\t\t};\n\t\tif (chainFn) {\n\t\t\tchainFn(typeDecorator);\n\t\t}\n\t\treturn typeDecorator;\n\t}\n\n\tif (parentClass) {\n\t\tDecoratorFactory.prototype = Object.create(parentClass.prototype);\n\t}\n\n\tDecoratorFactory.prototype.metadataName = name;\n\treturn DecoratorFactory as any;\n}\n\nfunction makeMetadataCtor(props?: (...args: any[]) => any): any {\n\treturn function ctor(...args: any[]) {\n\t\tif (props) {\n\t\t\tconst values = props(...args);\n\t\t\tfor (const propName in values) {\n\t\t\t\tif (values.hasOwnProperty(propName)) {\n\t\t\t\t\tthis[propName] = values[propName];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport function makePropDecorator(\n\tname: string,\n\tprops?: (...args: any[]) => any,\n\tparentClass?: any\n): any {\n\tconst metaCtor = makeMetadataCtor(props);\n\n\tfunction PropDecoratorFactory(...args: any[]): any {\n\t\tif (this instanceof PropDecoratorFactory) {\n\t\t\tmetaCtor.apply(this, args);\n\t\t\treturn this;\n\t\t}\n\n\t\tconst decoratorInstance = new (PropDecoratorFactory as any)(...args);\n\n\t\treturn function PropDecorator(target: any, metaName: string) {\n\t\t\tconst constructor = target.constructor;\n\t\t\t// Use of Object.defineProperty is important since it creates non-enumerable property which\n\t\t\t// prevents the property is copied during subclassing.\n\t\t\tconst meta = constructor.hasOwnProperty(PROP_METADATA)\n\t\t\t\t? (constructor as any)[PROP_METADATA]\n\t\t\t\t: Object.defineProperty(constructor, PROP_METADATA, {\n\t\t\t\t\t\tvalue: {},\n\t\t\t\t })[PROP_METADATA];\n\t\t\tmeta[metaName] = (meta.hasOwnProperty(metaName) && meta[metaName]) || [];\n\t\t\tmeta[metaName].unshift(decoratorInstance);\n\t\t};\n\t}\n\n\tif (parentClass) {\n\t\tPropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n\t}\n\n\tPropDecoratorFactory.prototype.metadataName = name;\n\treturn PropDecoratorFactory;\n}\n","export interface MetadataFactory {\n\t(...args: any[]): T;\n\tmetadataName: string;\n\tisTypeOf(obj: any): obj is T;\n}\n\nexport function makeMetadataFactory(\n\tname: string,\n\tprops?: (...args: any[]) => T\n): MetadataFactory {\n\tconst factory: any = (...args: any[]) => {\n\t\tconst values = props ? props(...args) : {};\n\t\treturn {\n\t\t\tmetadataName: name,\n\t\t\t...values,\n\t\t};\n\t};\n\tfactory.isTypeOf = (obj: any) => obj && obj.metadataName === name;\n\tfactory.metadataName = name;\n\treturn factory;\n}\n","// tslint:disable-next-line:variable-name\nexport const Type = Function;\n\nexport function isType(v: any): v is Type {\n\treturn typeof v === 'function';\n}\n\nexport type Type = new (...args: any[]) => T;\n","export function getCookie(key: string) {\n\tif (!key) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\tdecodeURIComponent(\n\t\t\tdocument.cookie.replace(\n\t\t\t\tnew RegExp(\n\t\t\t\t\t`(?:(?:^|.*;)\\\\s*${encodeURIComponent(key).replace(\n\t\t\t\t\t\t/[\\-\\.\\+\\*]/g,\n\t\t\t\t\t\t'\\\\$&'\n\t\t\t\t\t)}\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$`\n\t\t\t\t),\n\t\t\t\t'$1'\n\t\t\t)\n\t\t) || null\n\t);\n}\n","export function setCookie(\n\tkey: string,\n\tvalue: string,\n\tend: number | string | Date,\n\tpath = '/',\n\tdomain = '',\n\tsecure = false\n) {\n\tif (!key || /^(?:expires|max\\-age|path|domain|secure)$/i.test(key)) {\n\t\treturn false;\n\t}\n\tlet expires = '';\n\tif (end) {\n\t\tswitch (end.constructor) {\n\t\t\tcase Number:\n\t\t\t\texpires =\n\t\t\t\t\tend === Infinity\n\t\t\t\t\t\t? '; expires=Fri, 31 Dec 9999 23:59:59 GMT'\n\t\t\t\t\t\t: '; max-age=' + end;\n\t\t\t\tbreak;\n\t\t\tcase String:\n\t\t\t\texpires = `; expires=${end}`;\n\t\t\t\tbreak;\n\t\t\tcase Date:\n\t\t\t\texpires = `; expires=${(end as Date).toUTCString()}`;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\texpires = '';\n\t\t}\n\t}\n\tconst keyStr = encodeURIComponent(key);\n\tconst valueStr = encodeURIComponent(value);\n\tconst domainStr = `${domain ? `; domain=${domain}` : ''}`;\n\tconst pathStr = `${path ? `; path=${path}` : ''}`;\n\tconst secureStr = `${secure ? '; secure' : ''}`;\n\tdocument.cookie = `${keyStr}=${valueStr}${expires}${domainStr}${pathStr}${secureStr}`;\n\n\treturn true;\n}\n","import { getClass } from '../get-class';\r\nimport { hasClass } from '../has-class';\r\n\r\nexport function addClass(element: Element, className: string) {\r\n\tif (element && !hasClass(element, className)) {\r\n\t\telement.setAttribute('class', getClass(element).trim() + ' ' + className);\r\n\t}\r\n}\r\n","import { isHTMLElement } from '../is-html-element';\r\n\r\nexport function asHTMLElement(o: any): HTMLElement {\r\n\tif (isHTMLElement(o)) {\r\n\t\treturn o as HTMLElement;\r\n\t}\r\n\treturn null;\r\n}\r\n","import { addClass } from '../add-class';\r\nimport { removeClass } from '../remove-class';\r\n\r\nexport function changeClass(element: Element, className: string, add = true) {\r\n\tif (add) {\r\n\t\taddClass(element, className);\r\n\t} else {\r\n\t\tremoveClass(element, className);\r\n\t}\r\n}\r\n","const classRegexCache = {};\r\nexport function classRegex(className: string): RegExp {\r\n\tif (!classRegexCache[className]) {\r\n\t\tclassRegexCache[className] = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\r\n\t}\r\n\treturn classRegexCache[className];\r\n}\r\n","export function getClass(element: Element) {\r\n\treturn element.getAttribute('class') || '';\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 {\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 getWindowScrollTop() {\r\n\treturn window.pageYOffset !== undefined\r\n\t\t? window.pageYOffset\r\n\t\t: ((document.documentElement ||\r\n\t\t\t\tdocument.body.parentNode ||\r\n\t\t\t\tdocument.body) as HTMLElement).scrollTop;\r\n}\r\n","import { classRegex } from '../class-regex';\r\nimport { getClass } from '../get-class';\r\n\r\nexport function hasClass(element: Element, className: string): boolean {\r\n\treturn element && classRegex(className).test(getClass(element));\r\n}\r\n","export function isHTMLElement(o: any) {\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.nodeType === 1 &&\r\n\t\t\t\ttypeof o.nodeName === 'string';\r\n}\r\n","import { classRegex } from '../class-regex';\r\nimport { getClass } from '../get-class';\r\nimport { hasClass } from '../has-class';\r\n\r\nexport function removeClass(element: Element, className: string) {\r\n\tif (element && hasClass(element, className)) {\r\n\t\tconst regex = classRegex(className);\r\n\t\telement.setAttribute('class', getClass(element).replace(regex, ' ').trim());\r\n\t}\r\n}\r\n\r\nexport function removeClassFactory(className: string) {\r\n\treturn (element: Element) => {\r\n\t\tremoveClass(element, className);\r\n\t};\r\n}\r\n\r\nexport function removeClassOnCollection(\r\n\telements: Element[],\r\n\tclassName: string\r\n) {\r\n\telements.forEach(removeClassFactory(className));\r\n}\r\n","import { changeClass } from '../change-class';\r\nimport { hasClass } from '../has-class';\r\n\r\nexport function toggleClass(\r\n\telement: Element,\r\n\tclassName: string,\r\n\tstate?: boolean\r\n) {\r\n\tchangeClass(\r\n\t\telement,\r\n\t\tclassName,\r\n\t\tstate === undefined ? !hasClass(element, className) : state\r\n\t);\r\n}\r\n","export function dispatchCustomEvent(element: EventTarget, eventName: string) {\n\tconst event = new CustomEvent(eventName);\n\telement.dispatchEvent(event);\n}\n","import { dispatchCustomEvent } from '../dispatch-custom-event';\n\nexport function eventNamespaceFactory(namespace: string) {\n\treturn (element: EventTarget, eventName: string) =>\n\t\tdispatchCustomEvent(element, eventName + '.' + namespace);\n}\n","export function debounce(func: Function, wait: number, immediate?: boolean) {\n\tlet timeout;\n\tlet result;\n\treturn function debounceFn() {\n\t\tconst context = this;\n\t\tconst args = arguments;\n\t\tconst later = () => {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) {\n\t\t\t\tresult = func.apply(context, args);\n\t\t\t}\n\t\t};\n\t\tconst callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) {\n\t\t\tresult = func.apply(context, args);\n\t\t}\n\t\treturn result;\n\t};\n}\n","import { AnimationFunction } from '@opten/animation/animation-function';\r\nimport { linearTween } from '@opten/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 '@opten/animation/animation-function';\r\nimport { linearTween } from '@opten/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 '@opten/animation/animation-function';\r\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\r\n\r\nexport function scrollTo(\r\n\tdistance: number,\r\n\tanimationFunction: AnimationFunction = (t, b, c, d) => {\r\n\t\treturn (c * t) / d + b;\r\n\t},\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 { dispatchCustomEvent } from '@opten/events/dispatch-custom-event';\nimport { getTransitionEndEventName } from '../get-transition-end-event-name';\n\nconst transitionEndEventName = getTransitionEndEventName();\n\nexport function addTransitionEndListener(\n\telement: Element,\n\tcallback: () => void,\n\tfallbackDuration = 0,\n\tremove = true\n): void {\n\tlet called = false;\n\tconst listener = (event: Event) => {\n\t\tcalled = true;\n\t\tif (remove) {\n\t\t\telement.removeEventListener(transitionEndEventName as string, listener);\n\t\t}\n\t\tcallback();\n\t};\n\n\tif (transitionEndEventName === false) {\n\t\tsetTimeout(() => {\n\t\t\tcallback();\n\t\t}, fallbackDuration);\n\t} else {\n\t\telement.addEventListener(transitionEndEventName, listener);\n\t\t// https://github.com/twbs/bootstrap/blob/v4.0.0/js/src/util.js#L49\n\t\tif (fallbackDuration) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (!called) {\n\t\t\t\t\tdispatchCustomEvent(element, transitionEndEventName);\n\t\t\t\t}\n\t\t\t}, fallbackDuration);\n\t\t}\n\t}\n}\n","export function getTransitionEndEventName(): string | false {\n\tconst element = document.createElement('_');\n\tconst transitions = {\n\t\tWebkitTransition: 'webkitTransitionEnd',\n\t\ttransition: 'transitionend',\n\t};\n\n\tfor (const transition in transitions) {\n\t\tif (element.style[transition] !== undefined) {\n\t\t\treturn transitions[transition];\n\t\t}\n\t}\n\n\treturn false;\n}\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\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].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"],"sourceRoot":""}