{"version":3,"sources":["webpack://opten.radix/./app/safergambling.ts","webpack://opten.radix/./app/components/chindaktiv/map-filter.ts","webpack://opten.radix/./app/components/safergambling/favExport.ts","webpack://opten.radix/./app/components/safergambling/favInput.ts","webpack://opten.radix/./app/components/safergambling/favList.ts","webpack://opten.radix/./app/components/safergambling/gameEvaluation.ts","webpack://opten.radix/./app/components/safergambling/gameInput.ts","webpack://opten.radix/./app/components/safergambling/sidebar.ts","webpack://opten.radix/./app/components/shared/alert.ts","webpack://opten.radix/./app/components/shared/datepicker.ts","webpack://opten.radix/./app/components/shared/filter-helper.ts","webpack://opten.radix/./app/components/shared/filter.ts","webpack://opten.radix/./app/components/shared/form-checkboxes.ts","webpack://opten.radix/./app/components/shared/form-select-updater.ts","webpack://opten.radix/./app/components/shared/form-templates.ts","webpack://opten.radix/./app/components/shared/form-total.ts","webpack://opten.radix/./app/components/shared/globalvars.ts","webpack://opten.radix/./app/components/shared/grid.ts","webpack://opten.radix/./app/components/shared/input.ts","webpack://opten.radix/./app/components/shared/map-searcher.ts","webpack://opten.radix/./app/components/shared/map.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/recaptcha.ts","webpack://opten.radix/./app/components/shared/scroll-to.ts","webpack://opten.radix/./node_modules/@easepick/base-plugin/dist/index.esm.js","webpack://opten.radix/./node_modules/@easepick/core/dist/index.esm.js","webpack://opten.radix/./node_modules/@easepick/datetime/dist/index.esm.js","webpack://opten.radix/./node_modules/@easepick/lock-plugin/dist/index.esm.js","webpack://opten.radix/./node_modules/@easepick/time-plugin/dist/index.esm.js","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-dispatcher/index.ts","webpack://opten.radix/./node_modules/@opten/events/event-namespace-factory/index.ts","webpack://opten.radix/./node_modules/@opten/map-helpers/fit-bounds-with-padding/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":["initialize","MapFilterComponent","Component","className","element","this","mapSearcher","MapSearcher","window","mapStyles","MapStyles","radiusBounds","parseInt","getAttribute","download","querySelector","filter","filters","forEach","addEventListener","search","e","locations","getActiveLocations","href","length","indexOf","map","o","join","FavExportComponent","event","exportPdf","button","currentTarget","tagName","action","cookieValue","getCookie","fetch","method","headers","document","documentElement","lang","body","credentials","then","res","blob","link","createElement","URL","createObjectURL","append","click","remove","__container__","onload","setPrint","style","display","contentWindow","open","appendChild","closePrint","print","removeChild","name","cookie","split","find","startsWith","FavInputComponent","move","checkCookies","target","parent","parentElement","itemName","classList","toggle","updateCookie","contains","isActive","optionsFav","favList","includes","push","item","add","FavListComponent","toggleButtons","filterBtns","getElementsByClassName","i","exporters","EvaluationComponent","evaluation","points","text","querySelectorAll","btn","dataPoint","parseFloat","dataText","dataTitle","title","pointsData","innerText","divs","div","dataPoints","Number","min","max","quizElement","getElementById","summaries","summariesDivs","Object","keys","point","summary","index","span","textContent","result","innerHTML","GameInputComponent","SidebarComponent","triggers","closers","Array","from","trigger","getSelectorElementFromElement","segment","location","preventDefault","hasClass","removeClass","close","otherTriggers","otherTrigger","addClass","some","closest","closer","ignoreHistory","segmentAndFilter","undefined","filterActive","history","replaceState","reInit","render","cache","response","onPageChange","dispatch","children","catch","error","replace","hash","EventDispatcher","AlertComponent","setTimeout","DatepickerComponent","disabledWeekDays","enableTime","plugins","LockPlugin","TimePlugin","datePicker","easepick","create","css","zIndex","format","readonly","date","value","minDate","maxDate","picked","getDay","toString","setup","picker","on","Event","bubbles","cancelable","dispatchEvent","gotoDate","FilterHelper","options","filterGroups","tags","defaults","form","filterFormSelector","substring","emptyState","modals","filterControlSelector","tagContainer","tagTemplate","closeModal","tag","removeFilterItem","toggleEmptyState","onReset","onSubmit","type","self","connected","filterSame","filterAll","checked","every","all","option","selected","FormData","addFilterItem","toggleClass","temp","cloneNode","setAttribute","outerHTML","firstChild","firstElementChild","defaultValue","onRemoveFilter","show","modal","FilterComponent","targetSelector","sortSelector","pageListSelector","pageList","sortControls","mixer","activeFilter","getFilterGroupSelectors","setFilterGroupSelectors","parseFilterGroups","selectors","control","controls","scope","toggleLogic","enable","multifilter","parseOn","callbacks","onParseFilterGroups","command","updateTags","onMixStart","state","futureState","totalShow","onMixEnd","onMixClick","originalEvent","mergeDeep","classNames","elementPager","pagination","limit","maintainActivePage","hidePageListIfSinglePage","generatePageStats","templates","pagerPrev","pagerNext","initPager","mixitup","sort","collapse","Collapse","getInstance","hide","params","searchParams","events","key","t","changeEvent","pagerControls","dataPage","paginate","sources","source","shift","isObject","isArray","FormCheckboxesComponent","sameInputs","hasAttribute","input","checkRequired","scrollToSelected","firstChecked","scrollTo","offsetTop","offsetHeight","getComputedStyle","marginTop","hasSomeChecked","required","FormSelectUpdateComponent","items","targets","setupItem","FormTemplatesComponent","onFieldAdded","subscribe","field","update","onFieldRemoved","updateRemoving","updateTargets","oldValue","newValue","opt","concat","createTargets","splice","MAX_SAFE_INTEGER","shadow","shadowInput","namePrefix","idPrefix","id","template","adder","initItem","checkRemover","checkAdder","newItem","newHtmlItem","parentNode","insertBefore","nextSibling","newIndex","replaceAll","updateIndex","remover","regExp","RegExp","escapeRegExp","elem","string","FormTotalComponent","total","inputs","updateTotal","factor","GlobalVarsComponent","setGlobalVars","debounce","setProperty","innerHeight","GridComponent","grid","Isotope","itemSelector","layoutMode","arrange","InputComponent","hasValueClass","isActiveClass","formField","valueShadows","labels","setValueClass","hasData","placeholder","updateInputHeight","toLowerCase","label","htmlFor","height","scrollHeight","scrollWrapper","defaultOptions","cookieClass","mapClass","mapOverlayClass","mapScrollClass","locationClass","markerIcon","url","size","google","maps","Size","scaledSize","anchor","Point","clusterStyle","width","textColor","mapCenter","lat","lng","mapInitialZoom","maxZoom","openIfSingleResult","hideCluster","cantons","filterType","cookiePlaceholder","mapPlaceholder","mapOverlay","mapScroll","PageTopComponent","updateValuesByUrl","createMapLocation","l","markerClick","visible","overview","dispatchCustomEvent","centerMap","innerWidth","scrollToOffset","getScrollTop","getScrollTarget","marker","addListener","actives","loc","active","hideCollapse","LatLngBounds","latLng","showCollapse","cookiebotInit","Cookiebot","consent","marketing","infowindow","InfoWindow","content","Map","zoom","center","fullscreenControl","mapTypeControl","streetViewControl","styles","gestureHandling","addListenerOnce","oms","OverlappingMarkerSpiderfier","markersWontMove","markersWontHide","basicFormatEvents","circleFootSeparation","Math","nearbyDistance","markerCluster","MarkerClusterer","zoomOnClick","setCalculator","markers","numStyles","cluster","theBounds","getBounds","geoCoder","Geocoder","data","loadGeoJson","features","feature","bounds","getGeometry","forEachLatLng","extend","getProperty","setStyle","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","clickable","setMap","addMarker","hashArray","clear","decodeURI","tagsAttr","searchAttr","iconUrl","iconColor","iconColorActive","iconColorHit","setupMarker","LatLng","Marker","position","icon","getMarkerTemplate","markerSettings","pushState","formData","activeFilters","activeFiltersGrouped","reduce","arr","ob","x","activeCantons","getSearchBounds","clearMarkers","searchAddress","getSearchAddress","setUrlHash","searchCondition","hideLocation","locationBounds","accumulateLocationBounds","addRadiusToBounds","furtherLocations","showLocation","canton","isActiveCanton","getNorthEast","getSouthWest","overrideStyle","activeLocations","group","hit","setIcon","removeMarker","isExactPos","top","left","bottom","right","offsetWidth","fitBoundsWithPadding","setZoom","y","panBy","getZoom","radius","ne","geometry","spherical","computeOffset","sw","allIfEmpty","visibles","Promise","resolve","address","previousAddress","previousBounds","geocode","region","results","status","GeocoderStatus","OK","union","trim","color","encodeURIComponent","callback","inner","Window","scrollY","scrollTop","MapComponent","infoWindow","mapHolder","parseLocation","init","instance","disableDefaultUI","scrollwheel","showAllLocations","infobox","latlng","fontFamily","fontSize","scrollToElement","setContent","setCenter","fitBounds","elementType","stylers","visibility","featureType","weight","MediaSliderComponent","autoplay","swiper","Swiper","autoHeight","speed","navigation","nextEl","prevEl","el","keyboard","enabled","onlyInViewport","parallax","delay","updateAutoHeight","ModalComponent","cookieKey","cookieDays","stopPropagation","closeEvent","Date","setDate","getDate","setCookie","wrapper","setVisibility","clientHeight","getWindowScrollTop","PasswordRevealComponent","ReCaptchaComponent","grecaptcha","ready","ScrollToComponent","navbar","offsetString","offset","isNaN","priority","dependencies","getName","s","n","dependenciesNotFound","pluginsAsStringArray","console","warn","camelCaseToKebab","ui","container","onAttach","onDetach","setHours","header","clone","view","autoApply","HTMLElement","calendars","getCalendarHeaderView","a","getCalendarDayNamesView","getCalendarDaysView","r","getCalendarFooterView","locale","cancel","apply","disabled","toLocaleString","month","previousMonth","nextMonth","firstDay","weekday","dayIdx","calcOffsetDays","getFullYear","getMonth","getCalendarDayView","dataset","time","String","getTime","isSame","datePicked","instances","prototype","hasOwnProperty","call","attach","getPluginFn","detach","removeInstance","addInstance","Calendar","PluginManager","cssLoaded","binds","hidePicker","bind","doc","inline","documentClick","shadowRoot","version","handleOptions","pointerEvents","attachShadow","mode","after","handleCSS","onView","onRender","parseValues","onClick","renderAll","removeEventListener","CustomEvent","detail","isCalendarHeaderButton","subtract","isCalendarDay","isApplyButton","isCancelButton","onClickHeaderButton","onClickCalendarDay","onClickApplyButton","onClickCancelButton","isShown","adjustPosition","updateValues","HTMLInputElement","composedPath","getRootNode","host","readOnly","rel","createTextNode","getBoundingClientRect","freeze","__proto__","Core","parseDateTime","midnight_ts","setMonth","ceil","isBetween","Error","round","regex","exec","entries","formatTokens","slice","shortMonths","longMonths","getHours","getMinutes","getSeconds","toJSDate","test","year","shortMonth","longMonth","day","hour","minute","second","ampm","formatPatterns","h","pattern","g","u","c","m","d","M","MONTH_JS","minDays","maxDays","selectForward","selectBackward","presets","inseparable","off","isSameOrBefore","isSameOrAfter","testFilter","isBefore","isAfter","rangeIsNotAvailable","dateIsNotAvailable","start","end","diff","lockMinDate","lockMaxDate","lockMinDays","lockMaxDays","lockSelectForward","lockSelectBackward","native","seconds","stepHours","stepMinutes","stepSeconds","format12","timePicked","timePrePicked","getStartDate","getEndDate","onInput","onChange","setTime","setStartTime","setEndTime","_getDate","_getStartDate","_getEndDate","defineProperties","configurable","rangePlugin","getStartInput","getEndInput","getSingleInput","HTMLSelectElement","match","handleFormat12","strict","startDate","endDate","handleTimeString","getNativeInput","getCustomInput","elementEnd","delimiter","timeElapsed","distance","duration","CollapseComponent","stringCollapse","activeClass","activeParentClass","animateProp","collapsingClass","componentClass","showClass","showClassDesktop","desktopWidth","transitionDuration","isHideable","closeSiblings","useShowClassDesktop","dataParentSelector","dataTargetSelector","dataToggleSelector","hrefSelector","isTransitioning","eventNamespaceFn","eventNamespaceFactory","handleClick","outerWidth","isOpen","selector","collapseInstance","_handleShow","_handleClose","_addAriaAndCollapsedClass","collapseElement","addTransitionEndListener","components","rootElement","observables","componentType","component","resolver","safeRootElement","node","compiler","compile","observe","set","MutationObserver","mutations","componentInitializer","mutation","addedNodes","isHTMLElement","asHTMLElement","comps","childList","subtree","reflector","Reflector","Resolver","Compiler","componentCache","constructor","has","get","queries","propName","query","nodes","descendants","acc","val","f","first","isType","onInit","makeDecorator","createComponent","makeMetadataFactory","typeOrFunc","parentCtor","getParentCtor","ownAnnotations","_ownAnnotations","annotations","propMetadata","parentPropMetadata","ownPropMetadata","_ownPropMetadata","decorators","ANNOTATIONS","PROP_METADATA","ctor","parentProto","getPrototypeOf","QUERY_METADATA_IDENTIFIERS","typeMetadata","metadata","findLast","metadataName","propertyMetadata","_mergeWithPropertyMetadata","_merge","mergedQueries","propertyName","_getQueryMetadata","q","read","condition","props","parentClass","chainFn","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","args","annotationInstance","typeDecorator","cls","defineProperty","PropDecoratorFactory","decoratorInstance","metaName","meta","unshift","values","factory","isTypeOf","obj","v","Type","Function","decodeURIComponent","path","domain","secure","expires","Infinity","toUTCString","keyStr","valueStr","domainStr","pathStr","secureStr","getClass","classRegexCache","attribute","fallbackHref","getSelectorFromElement","substr","pageYOffset","classRegex","nodeType","nodeName","elements","removeClassFactory","changeClass","eventName","Subscription","handler","isOnce","isExecuted","subscriptions","sub","execute","cleanup","fn","namespace","padding","projection","getProjection","point1","fromLatLngToPoint","point2","pow","newPoint","fromPointToLatLng","func","wait","immediate","timeout","context","arguments","later","callNow","clearTimeout","animation","linearTween","animationFunction","timeStart","b","loop","requestAnimationFrame","fallbackDuration","called","listener","transitionEndEventName","getTransitionEndEventName","transitions","WebkitTransition","transition","__webpack_module_cache__","__webpack_require__","moduleId","exports","module","__webpack_modules__"],"mappings":"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","file":"Scripts/safergambling.js","sourcesContent":["import { CollapseComponent } from \"@opten/collapse\";\r\nimport { factory } from \"@opten/compiler/factory\";\r\nimport { MapFilterComponent } from \"./components/chindaktiv/map-filter\";\r\nimport { AlertComponent } from \"./components/shared/alert\";\r\nimport { DatepickerComponent } from \"./components/shared/datepicker\";\r\nimport { FormCheckboxesComponent } from \"./components/shared/form-checkboxes\";\r\nimport { FormSelectUpdateComponent } from \"./components/shared/form-select-updater\";\r\nimport { FormTemplatesComponent } from \"./components/shared/form-templates\";\r\nimport { FormTotalComponent } from \"./components/shared/form-total\";\r\nimport { GlobalVarsComponent } from \"./components/shared/globalvars\";\r\nimport { GridComponent } from \"./components/shared/grid\";\r\nimport { InputComponent } from \"./components/shared/input\";\r\nimport { MapComponent } from \"./components/shared/map\";\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 { PasswordRevealComponent } from \"./components/shared/password-reveal\";\r\nimport { ReCaptchaComponent } from \"./components/shared/recaptcha\";\r\nimport { ScrollToComponent } from \"./components/shared/scroll-to\";\r\nimport { EvaluationComponent } from \"./components/safergambling/gameEvaluation\";\r\nimport { GameInputComponent } from \"./components/safergambling/gameInput\";\r\nimport { FavInputComponent } from \"./components/safergambling/favInput\";\r\nimport { FilterComponent } from \"./components/shared/filter\";\r\nimport { SidebarComponent } from \"./components/safergambling/sidebar\";\r\nimport { FavExportComponent } from \"./components/safergambling/favExport\";\r\nimport { FavListComponent } from \"./components/safergambling/favList\";\r\n\r\nconst initialize = factory([\r\n\tCollapseComponent,\r\n\tScrollToComponent,\r\n\tMediaSliderComponent,\r\n\tMapComponent,\r\n\tMapFilterComponent,\r\n\tInputComponent,\r\n\tPasswordRevealComponent,\r\n\tDatepickerComponent,\r\n\tReCaptchaComponent,\r\n\tPageTopComponent,\r\n\tModalComponent,\r\n\tGridComponent,\r\n\tFormTotalComponent,\r\n\tFormTemplatesComponent,\r\n\tFormCheckboxesComponent,\r\n\tFormSelectUpdateComponent,\r\n\tAlertComponent,\r\n\tEvaluationComponent,\r\n\tGameInputComponent,\r\n\tFavInputComponent,\r\n\tFilterComponent,\r\n\tSidebarComponent,\r\n\tFavExportComponent,\r\n\tFavListComponent\r\n]);\r\n\r\ninitialize(document.body);\r\n\r\nFormTemplatesComponent.onFieldAdded.subscribe((container) => {\r\n\tinitialize(container);\r\n});\r\n\r\nconst vars = new GlobalVarsComponent();\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\nimport { MapStyles } from \"../shared/map\";\r\nimport { MapSearcher } from \"../shared/map-searcher\";\r\n\r\n@Component({ className: \"js-map-filter\" })\r\nexport class MapFilterComponent {\r\n\tprivate mapSearcher: MapSearcher;\r\n\tprivate download: HTMLLinkElement;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.mapSearcher = new MapSearcher(element, window, {\r\n\t\t\tmapStyles: MapStyles,\r\n\t\t\tradiusBounds: parseInt(\r\n\t\t\t\tthis.element.getAttribute(\"data-radius\") || \"0\"\r\n\t\t\t),\r\n\t\t});\r\n\t\tthis.download = element.querySelector(\r\n\t\t\t\".js-map-filter-download\"\r\n\t\t) as HTMLLinkElement;\r\n\r\n\t\tthis.mapSearcher.filter.filters.forEach((filter) => {\r\n\t\t\tfilter.addEventListener(\"change\", () => {\r\n\t\t\t\tthis.mapSearcher.search();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (this.download) {\r\n\t\t\tthis.download.addEventListener(\"click\", (e) => {\r\n\t\t\t\tconst locations = this.mapSearcher.getActiveLocations();\r\n\t\t\t\tlet href = this.download.getAttribute(\"data-href\");\r\n\t\t\t\tif (locations && locations.length > 0) {\r\n\t\t\t\t\thref += href.indexOf(\"?\") != -1 ? \"&\" : \"?\";\r\n\t\t\t\t\thref +=\r\n\t\t\t\t\t\t\"&hallIds=\" +\r\n\t\t\t\t\t\tlocations\r\n\t\t\t\t\t\t\t.map((o) => o.element.getAttribute(\"data-id\"))\r\n\t\t\t\t\t\t\t.join(\",\");\r\n\t\t\t\t}\r\n\t\t\t\tthis.download.href = href;\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-fav-export\" })\r\nexport class FavExportComponent {\r\n\tprivate __container__;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener(\"click\", (event) => this.exportPdf(event));\r\n\t}\r\n\r\n\tprivate exportPdf(event: Event): void {\r\n\t\tconst button = event.currentTarget as HTMLElement;\r\n\t\tif (button.tagName !== \"A\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst action = button.getAttribute('data-action');\r\n\r\n\t\tconst cookieValue = this.getCookie(\"OptionsFav\");\r\n\t\t// fetch('/umbraco/surface/sgalternativesurface/GetAlternativePdf?favourites=' + cookieValue, {\r\n\t\t// \tmethod: 'GET'\r\n\t\t// })\r\n\t\tfetch('/umbraco/surface/sgalternativesurface/GetAlternativePdf', {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t'accept-language': document.documentElement.lang,\r\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t},\r\n\t\t\tbody: 'favourites=' + cookieValue,\r\n\t\t\tcredentials: 'include',\r\n\t\t})\r\n\t\t\t.then(res => res.blob())\r\n\t\t\t.then(blob => {\r\n\t\t\t\tif (action === \"download\") {\r\n\t\t\t\t\tconst link = document.createElement('a');\r\n\t\t\t\t\tlink.href = window.URL.createObjectURL(blob);\r\n\t\t\t\t\tlink.download = \"Alternativen finden.pdf\";\r\n\t\t\t\t\tdocument.body.append(link);\r\n\t\t\t\t\tlink.click();\r\n\t\t\t\t\tlink.remove();\r\n\t\t\t\t\t//var doc = window.open(window.URL.createObjectURL(blob), '_blank');\r\n\t\t\t\t}else if (action === \"print\") {\r\n\t\t\t\t\tthis.__container__ = document.createElement(\"iframe\");\r\n\t\t\t\t\tthis.__container__.onload = this.setPrint;\r\n\t\t\t\t\tthis.__container__.style.display = \"none\";\r\n\t\t\t\t\tthis.__container__.contentWindow.open(window.URL.createObjectURL(blob));\r\n\t\t\t\t\tdocument.body.appendChild(this.__container__);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate setPrint() {\r\n\t\tthis.__container__.contentWindow.addEventListener('onbeforeunload', this.closePrint);\r\n\t\tthis.__container__.contentWindow.addEventListener('onafterprint', this.closePrint);\r\n\t\tthis.__container__.contentWindow.print();\r\n\t}\r\n\r\n\tprivate closePrint() {\r\n\t\tdocument.body.removeChild(this.__container__);\r\n\t}\r\n\r\n\tprivate getCookie(name: string): string | null {\r\n\t\tconst cookies = document.cookie.split(\"; \");\r\n\t\tconst cookie = cookies.find((cookie) => cookie.startsWith(`${name}=`));\r\n\t\treturn cookie ? cookie.split(\"=\")[1] : null;\r\n\t}\r\n}\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\n\r\n@Component({ className: \"js-fav\" })\r\nexport class FavInputComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener(\"click\", (event) => this.move(event));\r\n\t\tthis.checkCookies();\r\n\t}\r\n\r\n\tprivate move(event: Event): void {\r\n\t\tconst button = event.target as HTMLElement;\r\n\t\tif (button.tagName !== \"BUTTON\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst parent = button.parentElement;\r\n\t\tconst itemName = button.getAttribute(\"data-name\");\r\n\r\n\t\tif (parent && itemName) {\r\n\t\t\tparent.classList.toggle(\"fav-active\");\r\n\t\t\tthis.updateCookie(\r\n\t\t\t\titemName,\r\n\t\t\t\tparent.classList.contains(\"fav-active\")\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateCookie(itemName: string, isActive: boolean): void {\r\n\t\tconst optionsFav = this.getCookie(\"OptionsFav\");\r\n\t\tlet favList = optionsFav ? optionsFav.split(\",\") : [];\r\n\r\n\t\tif (isActive) {\r\n\t\t\tif (!favList.includes(itemName)) {\r\n\t\t\t\tfavList.push(itemName);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tfavList = favList.filter((item) => item !== itemName);\r\n\t\t}\r\n\r\n\t\tdocument.cookie = `OptionsFav=${favList.join(\",\")}; path=/`;\r\n\t}\r\n\r\n\tprivate checkCookies(): void {\r\n\t\tconst optionsFav = this.getCookie(\"OptionsFav\");\r\n\t\tconst favList = optionsFav ? optionsFav.split(\",\") : [];\r\n\r\n\t\tfavList.forEach((itemName) => {\r\n\t\t\tconst button = document.querySelector(\r\n\t\t\t\t`button[data-name=\"${itemName}\"]`\r\n\t\t\t);\r\n\t\t\tif (button) {\r\n\t\t\t\tconst parent = button.parentElement;\r\n\t\t\t\tif (parent) {\r\n\t\t\t\t\tparent.classList.add(\"fav-active\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getCookie(name: string): string | null {\r\n\t\tconst cookies = document.cookie.split(\"; \");\r\n\t\tconst cookie = cookies.find((cookie) => cookie.startsWith(`${name}=`));\r\n\t\treturn cookie ? cookie.split(\"=\")[1] : null;\r\n\t}\r\n}\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\n\r\n@Component({ className: \"js-my-fav-list\" })\r\nexport class FavListComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener(\"click\", (event) => this.toggleButtons(event));\r\n\r\n\t\tconst filterBtns = document.getElementsByClassName('js-filter-control');\r\n\t\tfor (var i = 0; i < filterBtns.length; i++) {\r\n\t\t\tif (filterBtns[i].classList.contains('js-my-fav-list')) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tfilterBtns[i].addEventListener('click', (event) => this.toggleButtons(event));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate toggleButtons(event: Event): void {\r\n\t\tconst button = event.target as HTMLElement;\r\n\t\tif (button.tagName !== \"A\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar isActive = this.element.classList.contains('mixitup-control-active');\r\n\t\tvar exporters = document.getElementsByClassName('js-my-fav-appear');\r\n\t\tfor (var i = 0; i < exporters.length; i++) {\r\n\t\t\tif (!isActive) {\r\n\t\t\t\texporters[i].classList.remove('hidden');\r\n\t\t\t}else {\r\n\t\t\t\texporters[i].classList.add('hidden');\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-game-evaluation\" })\r\nexport class EvaluationComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener(\"click\", () => this.evaluation());\r\n\t}\r\n\r\n\tprivate evaluation(): void {\r\n\t\tlet points = 0;\r\n\t\tlet text: Array<{ title: string | null; text: string | null }> = [];\r\n\t\tconst buttons = document.querySelectorAll(\r\n\t\t\t\".questions button.active\"\r\n\t\t) as NodeListOf;\r\n\t\tbuttons.forEach((btn) => {\r\n\t\t\tconst dataPoint = btn.getAttribute(\"data-point\");\r\n\t\t\tif (dataPoint) {\r\n\t\t\t\tpoints += parseFloat(dataPoint);\r\n\t\t\t}\r\n\t\t\tconst dataText = btn.getAttribute(\"data-text\");\r\n\t\t\tconst dataTitle = btn.getAttribute(\"data-title\");\r\n\t\t\tif (dataTitle || dataText) {\r\n\t\t\t\ttext.push({ title: dataTitle, text: dataText });\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet pointsData = {};\r\n\t\tconst allButtons = document.querySelectorAll(\r\n\t\t\t\".questions button\"\r\n\t\t) as NodeListOf;\r\n\r\n\t\tallButtons.forEach((btn) => {\r\n\t\t\tif (btn.classList.contains(\"active\")) {\r\n\t\t\t\tif (pointsData[btn.innerText]) {\r\n\t\t\t\t\tpointsData[btn.innerText] += 1;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpointsData[btn.innerText] = 1;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!pointsData[btn.innerText]) {\r\n\t\t\t\tpointsData[btn.innerText] = 0;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst divs = document.querySelectorAll(\r\n\t\t\t\".result[data-points]\"\r\n\t\t) as NodeListOf;\r\n\t\tif (divs.length > 0) {\r\n\t\t\tdivs.forEach((div) => {\r\n\t\t\t\tconst dataPoints = div.getAttribute(\"data-points\");\r\n\t\t\t\tif (dataPoints) {\r\n\t\t\t\t\tconst [min, max] = dataPoints.split(\"-\").map(Number);\r\n\r\n\t\t\t\t\tif (points >= min && points <= max) {\r\n\t\t\t\t\t\tdiv.style.display = \"block\";\r\n\t\t\t\t\t\tdiv.classList.add(\"active\");\r\n\t\t\t\t\t\tconst quizElement = document.getElementById(\"quiz\");\r\n\t\t\t\t\t\tif (quizElement) {\r\n\t\t\t\t\t\t\tquizElement.style.display = \"none\";\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst summaries = div.querySelectorAll(\".js-game-summary\");\r\n\t\t\t\t\tconst summariesDivs = div.querySelectorAll(\r\n\t\t\t\t\t\t\".js-game-summary-insert\"\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tif (summaries && summariesDivs.length > 0) {\r\n\t\t\t\t\t\tObject.keys(pointsData).forEach((name) => {\r\n\t\t\t\t\t\t\tconst point = pointsData[name];\r\n\t\t\t\t\t\t\tsummaries.forEach((summary, index) => {\r\n\t\t\t\t\t\t\t\tif (summariesDivs[index]) {\r\n\t\t\t\t\t\t\t\t\tconst span = document.createElement(\"span\");\r\n\t\t\t\t\t\t\t\t\tspan.className =\r\n\t\t\t\t\t\t\t\t\t\t\"c-quiz__evaluations__summary__button\";\r\n\t\t\t\t\t\t\t\t\tspan.textContent = `${point}x ${name}`;\r\n\t\t\t\t\t\t\t\t\tsummariesDivs[index].appendChild(span); // Hier wird das neue Element angehängt\r\n\t\t\t\t\t\t\t\t}\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}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tconst div = document.querySelector(\r\n\t\t\t\t\".c-decision__evaluations\"\r\n\t\t\t) as HTMLElement;\r\n\t\t\tif (div) {\r\n\t\t\t\tif (text.length === 0) {\r\n\t\t\t\t\tdiv.querySelectorAll(\".result\").forEach((result) => {\r\n\t\t\t\t\t\t(result as HTMLElement).style.display = \"block\";\r\n\t\t\t\t\t\t(result as HTMLElement).classList.add(\"active\");\r\n\t\t\t\t\t});\r\n\t\t\t\t\tconst quizElement = document.getElementById(\"quiz\");\r\n\t\t\t\t\tif (quizElement) {\r\n\t\t\t\t\t\tquizElement.style.display = \"none\";\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttext.forEach(({ title, text }) => {\r\n\t\t\t\t\t\tdiv.innerHTML += `

${title}

${text}

`;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdiv.querySelectorAll(\".result\").forEach((result) => {\r\n\t\t\t\t\t\tif (result.classList.contains(\"fallback\")) return;\r\n\t\t\t\t\t\t(result as HTMLElement).style.display = \"block\";\r\n\t\t\t\t\t\t(result as HTMLElement).classList.add(\"active\");\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tconst quizElement = document.getElementById(\"quiz\");\r\n\t\t\t\t\tif (quizElement) {\r\n\t\t\t\t\t\tquizElement.style.display = \"none\";\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 { Component } from \"@opten/compiler/metadata/component\";\r\nimport { EvaluationComponent } from \"./gameEvaluation\";\r\n@Component({ className: \"js-game-move\" })\r\nexport class GameInputComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener(\"click\", (event) => this.move(event));\r\n\t}\r\n\r\n\tprivate move(event: Event): void {\r\n\t\tconst button = event.target as HTMLElement;\r\n\t\tif (button.tagName !== \"BUTTON\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst parent = button.parentElement;\r\n\t\tif (parent) {\r\n\t\t\tconst buttons = parent.querySelectorAll(\r\n\t\t\t\t\"button\"\r\n\t\t\t) as NodeListOf;\r\n\t\t\tbuttons.forEach((btn) => {\r\n\t\t\t\tbtn.classList.remove(\"active\");\r\n\t\t\t});\r\n\t\t\tbutton.classList.add(\"active\");\r\n\r\n\t\t\tif (button.classList.contains(\"js-game-last\")) {\r\n\t\t\t\tvar evaluation = new EvaluationComponent(this.element);\r\n\t\t\t\tthis.element.click();\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 { addClass } from '@opten/dom/add-class';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { EventDispatcher } from '@opten/events/event-dispatcher';\r\n\r\nimport { MapStyles } from './../shared/map';\r\nimport { MapSearcher } from './../shared/map-searcher';\r\n\r\n@Component({ className: 'js-sidebar' })\r\nexport class SidebarComponent {\r\n\tstatic onPageChange = new EventDispatcher();\r\n\r\n\tprivate triggers: HTMLElement[] = [];\r\n\tprivate closers: HTMLElement[] = [];\r\n\r\n\tprivate mapSearcher: MapSearcher;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.triggers = Array.from(\r\n\t\t\tthis.element.getElementsByClassName('js-sidebar-item')\r\n\t\t) as HTMLElement[];\r\n\t\tthis.closers = Array.from(\r\n\t\t\tthis.element.getElementsByClassName('js-sidebar-close')\r\n\t\t) as HTMLElement[];\r\n\r\n\t\tthis.triggers.forEach((trigger) => {\r\n\t\t\tconst target = getSelectorElementFromElement(trigger);\r\n\t\t\tconst segment = trigger.getAttribute('href');\r\n\t\t\tif (window.location.href.indexOf(segment) >= 0) {\r\n\t\t\t\tthis.open(trigger, target, true);\r\n\t\t\t}\r\n\t\t\ttrigger.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst isActive = hasClass(trigger, 'is-active');\r\n\t\t\t\tthis.triggers.filter((o) => removeClass(o, 'is-active'));\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.open(trigger, target);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tconst otherTriggers = Array.from(\r\n\t\t\t\tdocument.querySelectorAll(`[href^='${segment}']`)\r\n\t\t\t) as HTMLLinkElement[];\r\n\t\t\tif (otherTriggers && otherTriggers.length > 0) {\r\n\t\t\t\totherTriggers.forEach((otherTrigger) => {\r\n\t\t\t\t\tif (otherTrigger != trigger) {\r\n\t\t\t\t\t\totherTrigger.addEventListener('click', (e) => {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\taddClass(trigger, 'is-active');\r\n\t\t\t\t\t\t\tthis.open(\r\n\t\t\t\t\t\t\t\totherTrigger,\r\n\t\t\t\t\t\t\t\ttarget,\r\n\t\t\t\t\t\t\t\tfalse,\r\n\t\t\t\t\t\t\t\totherTrigger.getAttribute('href')\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});\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\tthis.triggers.some((o) => hasClass(o, 'is-active')) &&\r\n\t\t\t\tdocument.body.contains(e.target) &&\r\n\t\t\t\t!e.target.closest('.js-sidebar') &&\r\n\t\t\t\thasClass(document.body, 'has-overlay') == false\r\n\t\t\t) {\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.closers.forEach((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}\r\n\r\n\t// tslint:disable-next-line: max-func-body-length\r\n\tprivate open(\r\n\t\ttrigger,\r\n\t\ttarget,\r\n\t\tignoreHistory = false,\r\n\t\tsegmentAndFilter = undefined\r\n\t) {\r\n\t\taddClass(trigger, 'is-active');\r\n\t\tif (ignoreHistory === false) {\r\n\t\t\tconst segment = trigger.getAttribute('href');\r\n\t\t\tconst filterActive = target.getAttribute('data-filter-active');\r\n\t\t\tif (segmentAndFilter) {\r\n\t\t\t\thistory.replaceState(null, null, segmentAndFilter);\r\n\t\t\t} else if (filterActive) {\r\n\t\t\t\thistory.replaceState(null, null, `${segment}/${filterActive}`);\r\n\t\t\t} else {\r\n\t\t\t\thistory.replaceState(null, null, segment);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (hasClass(target, 'js-map-filter')) {\r\n\t\t\taddClass(document.body, 'has-overlay');\r\n\t\t\tif (!this.mapSearcher) {\r\n\t\t\t\tconst render = target.querySelector(\r\n\t\t\t\t\t'.js-sidebar-render'\r\n\t\t\t\t) as HTMLElement;\r\n\t\t\t\tfetch(render.getAttribute('data-url'), {\r\n\t\t\t\t\tmethod: 'get',\r\n\t\t\t\t\tcache: 'default',\r\n\t\t\t\t\tcredentials: 'same-origin',\r\n\t\t\t\t\theaders: {\r\n\t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t\t'accept-language': document.documentElement.lang,\r\n\t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest',\r\n\t\t\t\t\t},\r\n\t\t\t\t})\r\n\t\t\t\t\t.then((response) => response.text())\r\n\t\t\t\t\t.then((response) => {\r\n\t\t\t\t\t\trender.innerHTML = response;\r\n\t\t\t\t\t\tremoveClass(render, 'is-loading');\r\n\t\t\t\t\t\tSidebarComponent.onPageChange.dispatch(\r\n\t\t\t\t\t\t\trender.children[0]\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.mapSearcher = new MapSearcher(target, target, {\r\n\t\t\t\t\t\t\tmapStyles: MapStyles,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\trender.innerHTML =\r\n\t\t\t\t\t\t\t'Map could not be loaded. Please reload page.';\r\n\t\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tthis.mapSearcher.reInit();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate close() {\r\n\t\tremoveClass(document.body, 'has-overlay');\r\n\t\tthis.triggers.filter((o) => {\r\n\t\t\tremoveClass(o, 'is-active');\r\n\t\t});\r\n\t\thistory.replaceState(\r\n\t\t\tnull,\r\n\t\t\tnull,\r\n\t\t\twindow.location.href.replace(window.location.hash, '')\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 { 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 { easepick } from '@easepick/core';\r\nimport { DateTime } from '@easepick/datetime';\r\nimport { LockPlugin } from '@easepick/lock-plugin';\r\nimport { TimePlugin } from '@easepick/time-plugin';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-datepicker' })\r\nexport class DatepickerComponent {\r\n\tprivate datePicker: easepick.Core;\r\n\r\n\tconstructor(private element: HTMLInputElement) {\r\n\t\tconst disabledWeekDays = this.element.getAttribute(\r\n\t\t\t'data-disabled-week-days'\r\n\t\t);\r\n\t\tconst enableTime = this.element.getAttribute('data-enable-time');\r\n\t\tconst plugins = [LockPlugin] as any;\r\n\t\tif (enableTime && enableTime == 'true') {\r\n\t\t\tplugins.push(TimePlugin);\r\n\t\t}\r\n\t\tthis.datePicker = new easepick.create({\r\n\t\t\telement: this.element,\r\n\t\t\tcss: ['/css/datepicker.css'],\r\n\t\t\tplugins: plugins,\r\n\t\t\tlang: document.documentElement.lang,\r\n\t\t\tzIndex: 999,\r\n\t\t\tformat: 'DD.MM.YYYY',\r\n\t\t\treadonly: false,\r\n\t\t\tdate: this.element.value,\r\n\t\t\tLockPlugin: {\r\n\t\t\t\tminDate: this.element.min,\r\n\t\t\t\tmaxDate: this.element.max,\r\n\t\t\t\tfilter(date: DateTime, picked: DateTime[]) {\r\n\t\t\t\t\tconst isDisabled =\r\n\t\t\t\t\t\tdisabledWeekDays &&\r\n\t\t\t\t\t\tdisabledWeekDays.indexOf(date.getDay().toString()) !=\r\n\t\t\t\t\t\t\t-1;\r\n\t\t\t\t\treturn isDisabled;\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\tsetup(picker) {\r\n\t\t\t\tpicker.on('select', (e) => {\r\n\t\t\t\t\tconst event = new Event('change', {\r\n\t\t\t\t\t\tbubbles: false,\r\n\t\t\t\t\t\tcancelable: true,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.element.dispatchEvent(event);\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\tif (!this.element.value) {\r\n\t\t\tthis.datePicker.gotoDate(this.element.min);\r\n\t\t}\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 { Collapse } from '@opten/collapse/initializer';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\n\r\nimport { FilterHelper } from './filter-helper';\r\n\r\ndeclare const mixitup: any;\r\n\r\n@Component({ className: 'js-filter' })\r\nexport class FilterComponent {\r\n\tprivate filter: FilterHelper;\r\n\r\n\tprivate mixer: any;\r\n\tprivate targetSelector = '.js-filter-item';\r\n\tprivate sortSelector = '.js-filter-sort';\r\n\tprivate pageListSelector = '.js-filter-page-list';\r\n\tprivate sortControls: HTMLElement[];\r\n\tprivate pageList: HTMLElement;\r\n\tprivate pagerControls: HTMLElement[];\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.pageList = this.element.querySelector(\r\n\t\t\t'.js-filter-page-list'\r\n\t\t) as HTMLElement;\r\n\t\tthis.sortControls = Array.from(\r\n\t\t\tthis.element.querySelectorAll(this.sortSelector)\r\n\t\t) as HTMLElement[];\r\n\r\n\t\tthis.filter = new FilterHelper(this.element, {\r\n\t\t\tonReset: () => {\r\n\t\t\t\tthis.mixer.filter('all');\r\n\t\t\t},\r\n\t\t\tonRemoveFilter: (value, name) => {\r\n\t\t\t\tconst activeFilter = this.mixer.getFilterGroupSelectors(name);\r\n\t\t\t\tthis.mixer.setFilterGroupSelectors(\r\n\t\t\t\t\tname,\r\n\t\t\t\t\tactiveFilter.filter((o) => o !== value)\r\n\t\t\t\t);\r\n\t\t\t\tthis.mixer.parseFilterGroups();\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tlet options: any = {\r\n\t\t\tselectors: {\r\n\t\t\t\ttarget: this.targetSelector,\r\n\t\t\t\tcontrol: this.filter.options.filterControlSelector,\r\n\t\t\t},\r\n\t\t\tcontrols: {\r\n\t\t\t\tscope: 'local',\r\n\t\t\t\ttoggleLogic: 'and',\r\n\t\t\t\tenable: false,\r\n\t\t\t},\r\n\t\t\tmultifilter: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tparseOn: 'submit', //'change',\r\n\t\t\t},\r\n\t\t\tcallbacks: {\r\n\t\t\t\tonParseFilterGroups: (command) => {\r\n\t\t\t\t\tthis.filter.updateTags();\r\n\t\t\t\t\treturn command;\r\n\t\t\t\t},\r\n\t\t\t\tonMixStart: (state, futureState) => {\r\n\t\t\t\t\tthis.filter.toggleEmptyState(futureState.totalShow > 0);\r\n\t\t\t\t},\r\n\t\t\t\tonMixEnd: (state) => {\r\n\t\t\t\t\tthis.filter.toggleEmptyState(state.totalShow > 0);\r\n\t\t\t\t},\r\n\t\t\t\tonMixClick: (state, originalEvent) => {\r\n\t\t\t\t\tif (originalEvent.target.closest(this.filter.options.filterControlSelector).getAttribute('data-filter')) {\r\n\t\t\t\t\t\toriginalEvent.preventDefault();\r\n\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\tthis.mixer.parseFilterGroups();\r\n\t\t\t\t\t\t}, 500);\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\tif (this.pageList) {\r\n\t\t\toptions = this.mergeDeep(options, {\r\n\t\t\t\tselectors: {\r\n\t\t\t\t\tpageList: this.pageListSelector,\r\n\t\t\t\t},\r\n\t\t\t\tclassNames: {\r\n\t\t\t\t\telementPager: 'pager',\r\n\t\t\t\t},\r\n\t\t\t\tpagination: {\r\n\t\t\t\t\tlimit: 10,\r\n\t\t\t\t\tmaintainActivePage: false,\r\n\t\t\t\t\thidePageListIfSinglePage: true,\r\n\t\t\t\t\tgeneratePageStats: false,\r\n\t\t\t\t},\r\n\t\t\t\ttemplates: {\r\n\t\t\t\t\tpagerPrev:\r\n\t\t\t\t\t\t'',\r\n\t\t\t\t\tpagerNext:\r\n\t\t\t\t\t\t'',\r\n\t\t\t\t},\r\n\t\t\t\tcallbacks: {\r\n\t\t\t\t\tonMixEnd: (state) => {\r\n\t\t\t\t\t\tthis.initPager();\r\n\t\t\t\t\t\tthis.filter.toggleEmptyState(state.totalShow > 0);\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\tthis.mixer = mixitup(this.element, options);\r\n\r\n\t\tif (this.sortControls.length > 0) {\r\n\t\t\tthis.sortControls.forEach((sort) => {\r\n\t\t\t\tconst collapse = Collapse.getInstance(sort.parentElement);\r\n\t\t\t\tsort.addEventListener('click', (e) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tthis.mixer.sort(sort.getAttribute('data-sort'));\r\n\t\t\t\t\tif (collapse) {\r\n\t\t\t\t\t\tcollapse.hide();\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\tconst params = new URL(document.location).searchParams;\r\n\t\tif (params) {\r\n\t\t\tconst events = {};\r\n\t\t\tparams.forEach((value, key) => {\r\n\t\t\t\tconst filter = this.filter.filters.find(\r\n\t\t\t\t\t(o) => (o.name == key && o.value == value)\r\n\t\t\t\t);\r\n\t\t\t\tconst filterLink = this.filter.filters.find(\r\n\t\t\t\t\t(o) => (o.tagName != 'checkbox' && o.getAttribute('data-filter') == value)\r\n\t\t\t\t) as HTMLElement;\r\n\t\t\t\tif (filterLink) {\r\n\t\t\t\t\tconst t = events[key];\r\n\t\t\t\t\tif (t) {\r\n\t\t\t\t\t\tt.push(value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tevents[key] = [value];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (filter) {\r\n\t\t\t\t\tconst t = events[filter.name];\r\n\t\t\t\t\tif (t) {\r\n\t\t\t\t\t\tt.push(filter.value);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tevents[filter.name] = [filter.value];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tfilter.checked = true;\r\n\t\t\t\t\tconst changeEvent = new Event('change', {\r\n\t\t\t\t\t\tbubbles: false,\r\n\t\t\t\t\t\tcancelable: true,\r\n\t\t\t\t\t});\r\n\t\t\t\t\tfilter.dispatchEvent(changeEvent);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (Object.keys(events).length > 0) {\r\n\t\t\t\tObject.keys(events).forEach((key) => {\r\n\t\t\t\t\tthis.mixer.setFilterGroupSelectors(key, events[key]);\r\n\t\t\t\t});\r\n\t\t\t\tthis.mixer.parseFilterGroups();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.initPager();\r\n\t}\r\n\r\n\tprivate initPager() {\r\n\t\tif (this.pageList) {\r\n\t\t\tthis.pagerControls = Array.from(\r\n\t\t\t\tthis.pageList.querySelectorAll('.mixitup-pager')\r\n\t\t\t) as HTMLElement[];\r\n\t\t\tthis.pagerControls.forEach((control) => {\r\n\t\t\t\tconst dataPage = control.getAttribute('data-page');\r\n\t\t\t\tcontrol.addEventListener('click', (e) => {\r\n\t\t\t\t\tthis.mixer.paginate(dataPage);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate mergeDeep(target, ...sources) {\r\n\t\tif (!sources.length) return target;\r\n\t\tconst source = sources.shift();\r\n\r\n\t\tif (this.isObject(target) && this.isObject(source)) {\r\n\t\t\tfor (const key in source) {\r\n\t\t\t\tif (this.isObject(source[key])) {\r\n\t\t\t\t\tif (!target[key]) Object.assign(target, { [key]: {} });\r\n\t\t\t\t\tthis.mergeDeep(target[key], source[key]);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tObject.assign(target, { [key]: source[key] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn this.mergeDeep(target, ...sources);\r\n\t}\r\n\r\n\tprivate isObject(item) {\r\n\t\treturn item && typeof item === 'object' && !Array.isArray(item);\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-checkboxes' })\r\nexport class FormCheckboxesComponent {\r\n\tprivate sameInputs: HTMLInputElement[];\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.sameInputs = Array.from(\r\n\t\t\tthis.element.querySelectorAll(`input[type=\"checkbox\"]`)\r\n\t\t) as HTMLInputElement[];\r\n\r\n\t\tif (this.sameInputs && this.sameInputs.length > 0) {\r\n\t\t\tif (this.element.hasAttribute('data-required')) {\r\n\t\t\t\tthis.sameInputs.forEach((input) => {\r\n\t\t\t\t\tinput.addEventListener('change', () => {\r\n\t\t\t\t\t\tthis.checkRequired();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.checkRequired();\r\n\t\t\t\tthis.scrollToSelected();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate scrollToSelected() {\r\n\t\tconst firstChecked = this.sameInputs.find((o) => o.checked);\r\n\t\tif (firstChecked) {\r\n\t\t\tthis.element.scrollTo(\r\n\t\t\t\t0,\r\n\t\t\t\tfirstChecked.parentElement.offsetTop -\r\n\t\t\t\t\tfirstChecked.parentElement.offsetHeight -\r\n\t\t\t\t\tparseInt(getComputedStyle(this.element).marginTop)\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate checkRequired() {\r\n\t\tconst hasSomeChecked = this.sameInputs.some((o) => o.checked);\r\n\t\tthis.sameInputs.forEach((o) => (o.required = hasSomeChecked == false));\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { FormTemplatesComponent } from './form-templates';\r\n\r\n@Component({ className: 'js-form-select-updater' })\r\nexport class FormSelectUpdateComponent {\r\n\tprivate items: HTMLInputElement[];\r\n\tprivate targets: HTMLSelectElement[];\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.items = Array.from(\r\n\t\t\tthis.element.querySelectorAll('.js-form-select-updater-item')\r\n\t\t) as HTMLInputElement[];\r\n\t\tthis.targets = Array.from(\r\n\t\t\tdocument.querySelectorAll('.js-form-select-updater-target')\r\n\t\t) as HTMLSelectElement[];\r\n\r\n\t\tif (\r\n\t\t\tthis.items &&\r\n\t\t\tthis.items.length > 0 &&\r\n\t\t\tthis.targets &&\r\n\t\t\tthis.targets.length > 0\r\n\t\t) {\r\n\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\tthis.setupItem(item);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tFormTemplatesComponent.onFieldAdded.subscribe((field) => {\r\n\t\t\tthis.update(field);\r\n\t\t});\r\n\t\tFormTemplatesComponent.onFieldRemoved.subscribe((field) => {\r\n\t\t\tthis.updateRemoving(field);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate setupItem(item: HTMLInputElement) {\r\n\t\titem.setAttribute('data-old-val', item.value);\r\n\t\titem.addEventListener('change', (e) => {\r\n\t\t\tthis.updateTargets(item.getAttribute('data-old-val'), item.value);\r\n\t\t\titem.setAttribute('data-old-val', item.value);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate updateTargets(oldValue: string, newValue: string) {\r\n\t\tthis.targets.forEach((target) => {\r\n\t\t\tlet item = Array.from(target.options).find(o => o.value == oldValue);\r\n\t\t\tif (!oldValue && !newValue) {\r\n\t\t\t\tif (item) {\r\n\t\t\t\t\titem.remove();\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!newValue && item) {\r\n\t\t\t\titem.remove();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!item) {\r\n\t\t\t\titem = document.createElement('option');\r\n\t\t\t\ttarget.add(item, null);\r\n\t\t\t}\r\n\t\t\titem.text = newValue;\r\n\t\t\titem.value = newValue;\r\n\t\t});\r\n\t}\r\n\r\n\tprivate createTargets(targets: HTMLSelectElement[]) {\r\n\t\ttargets.forEach((target) => {\r\n\t\t\twhile (target.options.length > 0) {\r\n\t\t\t\ttarget.remove(target.options.length - 1);\r\n\t\t\t}\r\n\t\t\tfor (let i = 0; i < this.items.length; i++) {\r\n\t\t\t\tvar opt = document.createElement('option');\r\n\t\t\t\topt.text = this.items[i].value;\r\n\t\t\t\topt.value = this.items[i].value;\r\n\t\t\t\topt.selected = i == 0;\r\n\t\t\t\ttarget.add(opt, null);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate update(field: HTMLElement) {\r\n\t\tconst item = field.querySelector(\r\n\t\t\t'.js-form-select-updater-item'\r\n\t\t) as HTMLInputElement;\r\n\t\tif (item) {\r\n\t\t\tthis.items.push(item);\r\n\t\t\tthis.setupItem(item);\r\n\t\t}\r\n\r\n\t\tconst targets = Array.from(\r\n\t\t\tfield.querySelectorAll('.js-form-select-updater-target')\r\n\t\t) as HTMLSelectElement[];\r\n\t\tif (targets && targets.length > 0) {\r\n\t\t\tthis.targets = this.targets.concat(targets);\r\n\t\t\tthis.createTargets(targets);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateRemoving(field: HTMLElement) {\r\n\t\tconst item = field.querySelector(\r\n\t\t\t'.js-form-select-updater-item'\r\n\t\t) as HTMLInputElement;\r\n\t\tif (item) {\r\n\t\t\tthis.items.splice(this.items.indexOf(item), 1);\r\n\t\t\tthis.updateTargets(item.value, undefined);\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { EventDispatcher } from '@opten/events/event-dispatcher';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\n\r\n@Component({ className: 'js-form-templates' })\r\nexport class FormTemplatesComponent {\r\n\tstatic onFieldAdded = new EventDispatcher();\r\n\tstatic onFieldRemoved = new EventDispatcher();\r\n\r\n\tprivate template: Node;\r\n\tprivate adder: HTMLElement;\r\n\tprivate items: HTMLElement[];\r\n\tprivate namePrefix: string;\r\n\tprivate idPrefix: string;\r\n\tprivate min = 0;\r\n\tprivate max = Number.MAX_SAFE_INTEGER;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst shadow = element.querySelector(\r\n\t\t\t'.js-form-template-shadow'\r\n\t\t) as HTMLElement;\r\n\t\tconst shadowInput = shadow.querySelector('input');\r\n\t\tthis.namePrefix = shadowInput.name.substring(\r\n\t\t\t0,\r\n\t\t\tshadowInput.name.indexOf('Shadow')\r\n\t\t);\r\n\t\tthis.idPrefix = shadowInput.id.substring(\r\n\t\t\t0,\r\n\t\t\tshadowInput.id.indexOf('Shadow')\r\n\t\t);\r\n\t\tthis.template = shadow\r\n\t\t\t.querySelector('.js-form-template-item')\r\n\t\t\t.cloneNode(true);\r\n\t\tshadow.remove();\r\n\r\n\t\tthis.min = parseInt(element.getAttribute('data-min') || '0');\r\n\t\tthis.max = parseInt(element.getAttribute('data-max') || Number.MAX_SAFE_INTEGER.toString());\r\n\t\tthis.adder = element.querySelector(\r\n\t\t\t'.js-form-template-add'\r\n\t\t) as HTMLElement;\r\n\t\tthis.items = Array.from(\r\n\t\t\tthis.element.querySelectorAll('.js-form-template-item')\r\n\t\t) as HTMLElement[] || [];\r\n\r\n\t\tthis.adder.addEventListener('click', (e) => {\r\n\t\t\te.preventDefault();\r\n\t\t\tthis.add();\r\n\t\t});\r\n\r\n\t\tif (this.items && this.items.length > 0) {\r\n\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\tthis.initItem(item);\r\n\t\t\t});\r\n\t\t\tthis.checkRemover();\r\n\t\t\tthis.checkAdder();\r\n\t\t}\r\n\r\n\t\twhile (!this.items || this.items.length < this.min) {\r\n\t\t\tthis.add();\r\n\t\t}\r\n\t}\r\n\r\n\tadd() {\r\n\t\tconst newItem = this.template.cloneNode(true);\r\n\t\tconst parent =\r\n\t\t\tthis.items && this.items.length > 0\r\n\t\t\t\t? this.items[this.items.length - 1].parentNode\r\n\t\t\t\t: this.adder.parentNode;\r\n\t\tconst newHtmlItem = parent.insertBefore(\r\n\t\t\tnewItem,\r\n\t\t\tthis.items && this.items.length > 0\r\n\t\t\t\t? this.items[this.items.length - 1].nextSibling\r\n\t\t\t\t: this.adder\r\n\t\t) as HTMLElement;\r\n\t\tconst newIndex = this.items.length;\r\n\t\tnewHtmlItem.innerHTML = newHtmlItem.innerHTML\r\n\t\t\t.replaceAll('Shadow_0', `_${newIndex}`)\r\n\t\t\t.replaceAll('Shadow[0]', `[${newIndex}]`);\r\n\t\tthis.items.push(newHtmlItem);\r\n\t\tthis.initItem(newHtmlItem);\r\n\t\tthis.checkRemover();\r\n\t\tthis.checkAdder();\r\n\t\tFormTemplatesComponent.onFieldAdded.dispatch(newHtmlItem);\r\n\t}\r\n\r\n\tremove(item: HTMLElement) {\r\n\t\tthis.items.splice(this.items.indexOf(item), 1);\r\n\t\titem.remove();\r\n\t\tthis.updateIndex();\r\n\t\tthis.checkRemover();\r\n\t\tthis.checkAdder();\r\n\t\tFormTemplatesComponent.onFieldRemoved.dispatch(item);\r\n\t}\r\n\r\n\tprivate initItem(item: HTMLElement) {\r\n\t\tconst remover = item.querySelector(\r\n\t\t\t'.js-form-template-remove'\r\n\t\t) as HTMLElement;\r\n\t\tif (remover) {\r\n\t\t\titem['Remover'] = remover;\r\n\t\t\tremover.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tthis.remove(item);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateIndex() {\r\n\t\tif (this.items && this.items.length > 0) {\r\n\t\t\tthis.items.forEach((item, index) => {\r\n\t\t\t\tlet regExp = new RegExp(\r\n\t\t\t\t\t`${this.escapeRegExp(this.idPrefix)}_\\\\d+`\r\n\t\t\t\t);\r\n\t\t\t\tconst ids = item.querySelectorAll(`[id^=\"${this.idPrefix}_\"]`);\r\n\t\t\t\tids.forEach((elem) => {\r\n\t\t\t\t\telem.id = elem.id.replace(\r\n\t\t\t\t\t\tregExp,\r\n\t\t\t\t\t\t`${this.idPrefix}_${index}`\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t\tconst fors = item.querySelectorAll(\r\n\t\t\t\t\t`[for^=\"${this.idPrefix}_\"]`\r\n\t\t\t\t);\r\n\t\t\t\tfors.forEach((elem) => {\r\n\t\t\t\t\telem.setAttribute(\r\n\t\t\t\t\t\t'for',\r\n\t\t\t\t\t\telem\r\n\t\t\t\t\t\t\t.getAttribute('for')\r\n\t\t\t\t\t\t\t.replace(regExp, `${this.idPrefix}_${index}`)\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\t\t\t\tregExp = new RegExp(\r\n\t\t\t\t\t`${this.escapeRegExp(this.namePrefix)}\\\\[\\\\d+`\r\n\t\t\t\t);\r\n\t\t\t\tconst names = item.querySelectorAll(\r\n\t\t\t\t\t`[name^=\"${this.namePrefix}[\"]`\r\n\t\t\t\t);\r\n\t\t\t\tnames.forEach((elem) => {\r\n\t\t\t\t\telem.setAttribute(\r\n\t\t\t\t\t\t'name',\r\n\t\t\t\t\t\telem\r\n\t\t\t\t\t\t\t.getAttribute('name')\r\n\t\t\t\t\t\t\t.replace(regExp, `${this.namePrefix}[${index}`)\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 checkRemover() {\r\n\t\tif (this.min >= 0 && this.items && this.items.length > 0) {\r\n\t\t\tthis.items.forEach((item) => {\r\n\t\t\t\tconst remover = item['Remover'];\r\n\t\t\t\tif (remover) {\r\n\t\t\t\t\ttoggleClass(\r\n\t\t\t\t\t\tremover,\r\n\t\t\t\t\t\t'd-none',\r\n\t\t\t\t\t\tthis.items.length <= this.min\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 checkAdder() {\r\n\t\ttoggleClass(\r\n\t\t\tthis.adder,\r\n\t\t\t'd-none',\r\n\t\t\tthis.items.length >= this.max\r\n\t\t);\r\n\t}\r\n\r\n\tprivate escapeRegExp(string) {\r\n\t\treturn string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-form-total' })\r\nexport class FormTotalComponent {\r\n\tprivate inputs: HTMLInputElement[];\r\n\r\n\tconstructor(private total: HTMLElement) {\r\n\t\tconst form = total.closest('form') as HTMLElement; \r\n\t\tthis.inputs = Array.from(\r\n\t\t\tform.querySelectorAll(\r\n\t\t\t\t`[data-group=\"${this.total.getAttribute('data-group')}\"]`\r\n\t\t\t)\r\n\t\t) as HTMLInputElement[];\r\n\t\tif (this.inputs && this.inputs.length > 0) {\r\n\t\t\tthis.inputs.forEach((input) => {\r\n\t\t\t\tinput.addEventListener('change', () => this.updateTotal());\r\n\t\t\t\tinput.addEventListener('input', () => this.updateTotal());\r\n\t\t\t});\r\n\t\t\tthis.updateTotal();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateTotal() {\r\n\t\tlet total = 0;\r\n\t\tthis.inputs.forEach((input) => {\r\n\t\t\tconst factor = parseFloat(input.getAttribute('data-factor') || '1');\r\n\t\t\ttotal += factor * parseInt(input.value || '0');\r\n\t\t});\r\n\t\tthis.total.innerHTML = total.toString();\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 { FormTemplatesComponent } from './form-templates';\r\n\r\ndeclare const Isotope: any;\r\n\r\n@Component({ className: 'js-grid' })\r\nexport class GridComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst grid = new Isotope(this.element, {\r\n\t\t\titemSelector: '.js-grid-item',\r\n\t\t\tlayoutMode: 'masonry',\r\n\t\t});\r\n\r\n\t\tFormTemplatesComponent.onFieldAdded.subscribe((field) => {\r\n\t\t\tgrid.arrange();\r\n\t\t});\r\n\t\tFormTemplatesComponent.onFieldRemoved.subscribe((field) => {\r\n\t\t\tgrid.arrange();\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 { addClass } from '@opten/dom/add-class';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { dispatchCustomEvent } from '@opten/events/dispatch-custom-event';\r\nimport { fitBoundsWithPadding } from '@opten/map-helpers/fit-bounds-with-padding';\r\nimport { scrollToOffset } from '@opten/scroll/scroll-to-offset';\r\n\r\nimport { FilterHelper } from './filter-helper';\r\nimport { PageTopComponent } from './page-top';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\n\r\ndeclare const Cookiebot: any;\r\n\r\nexport interface MapSearcherOptions {\r\n\tlocationClass?: string;\r\n\tcookieClass?: string;\r\n\tmapClass?: string;\r\n\tmapOverlayClass?: string;\r\n\tmapScrollClass?: string;\r\n\tmarkerIcon?: {\r\n\t\turl: string;\r\n\t\tsize: google.maps.Size;\r\n\t\tscaledSize: google.maps.Size;\r\n\t\tanchor: google.maps.Point;\r\n\t};\r\n\tclusterStyle?: any;\r\n\tmapCenter?: {\r\n\t\tlat: number;\r\n\t\tlng: number;\r\n\t};\r\n\tmapInitialZoom?: 8;\r\n\tmaxZoom?: number;\r\n\tmapStyles?: google.maps.MapTypeStyle[];\r\n\tradiusBounds?: number;\r\n\topenIfSingleResult?: boolean;\r\n\thideCluster?: boolean;\r\n}\r\n\r\ndeclare class OverlappingMarkerSpiderfier {\r\n\tconstructor(map: any, options: any);\r\n\taddMarker(marker: any);\r\n\taddListener(event, func);\r\n\tmarkersNearMarker(event, func);\r\n}\r\n\r\ninterface MapsLocation {\r\n\telement: HTMLElement;\r\n\tmarker: google.maps.Marker;\r\n\tmarkerSettings: {\r\n\t\ticonUrl: string;\r\n\t\ticonColor: string;\r\n\t\ticonColorActive: string;\r\n\t\ticonColorHit: string;\r\n\t};\r\n\tlatLng: google.maps.LatLng;\r\n\ttags: string[];\r\n\tsearch: string[];\r\n\ttype: 'vbgf' | 'sn21' | 'canton' | 'standard';\r\n\tvisible: boolean;\r\n}\r\n\r\ninterface MapsFeature {\r\n\tname: string;\r\n\tfeature: google.maps.Data.Feature;\r\n\tbounds: google.maps.LatLngBounds;\r\n}\r\n\r\nexport class MapSearcher {\r\n\tpublic defaultOptions: MapSearcherOptions = {\r\n\t\tcookieClass: 'js-map-filter-cookie',\r\n\t\tmapClass: 'js-map-filter-map',\r\n\t\tmapOverlayClass: 'js-map-filter-overlay',\r\n\t\tmapScrollClass: 'js-map-filter-scroll',\r\n\t\tlocationClass: 'js-map-filter-location',\r\n\t\tmarkerIcon: {\r\n\t\t\turl: '/map/map-marker.svg',\r\n\t\t\tsize: new google.maps.Size(22, 35),\r\n\t\t\tscaledSize: new google.maps.Size(22, 35),\r\n\t\t\tanchor: new google.maps.Point(11, 35),\r\n\t\t},\r\n\t\tclusterStyle: [\r\n\t\t\t{\r\n\t\t\t\turl: '/map/map-cluster.png',\r\n\t\t\t\theight: 52,\r\n\t\t\t\twidth: 53,\r\n\t\t\t\ttextColor: 'black',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl: '/map/map-cluster2.png',\r\n\t\t\t\theight: 55,\r\n\t\t\t\twidth: 56,\r\n\t\t\t\ttextColor: 'black',\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\turl: '/map/map-cluster3.png',\r\n\t\t\t\theight: 65,\r\n\t\t\t\twidth: 66,\r\n\t\t\t\ttextColor: 'black',\r\n\t\t\t},\r\n\t\t],\r\n\t\tmapCenter: { lat: 46.905358, lng: 8.423689 },\r\n\t\tmapInitialZoom: 8,\r\n\t\tmaxZoom: 15,\r\n\t\tmapStyles: [],\r\n\t\tradiusBounds: 0,\r\n\t\topenIfSingleResult: true,\r\n\t\thideCluster: false,\r\n\t};\r\n\r\n\tpublic filter: FilterHelper;\r\n\tprivate cookiePlaceholder: HTMLElement;\r\n\tprivate mapPlaceholder: HTMLElement;\r\n\tprivate mapOverlay: HTMLElement;\r\n\tprivate mapScroll: HTMLElement;\r\n\tprivate options: MapSearcherOptions;\r\n\tprivate map: google.maps.Map;\r\n\tprivate oms?: OverlappingMarkerSpiderfier;\r\n\tprivate markerCluster?: MarkerClusterer;\r\n\tprivate geoCoder: google.maps.Geocoder;\r\n\tprivate infowindow: google.maps.InfoWindow;\r\n\tprivate locations: MapsLocation[] = [];\r\n\tprivate previousAddress: string;\r\n\tprivate previousBounds: google.maps.LatLngBounds;\r\n\tprivate cantons: MapsFeature[] = [];\r\n\tprivate filterType: 'Default' | 'HealthyCommunities' | 'HealthySchools' =\r\n\t\t'Default';\r\n\r\n\t// tslint:disable-next-line: max-func-body-length\r\n\tconstructor(\r\n\t\tprivate element: HTMLElement,\r\n\t\tprivate scrollWrapper: HTMLElement | Window,\r\n\t\toptions?: MapSearcherOptions\r\n\t) {\r\n\t\tthis.options = { ...this.defaultOptions, ...options };\r\n\r\n\t\tthis.filter = new FilterHelper(this.element, {\r\n\t\t\tonSubmit: () => {\r\n\t\t\t\tthis.search();\r\n\t\t\t},\r\n\t\t\tonReset: () => {\r\n\t\t\t\tthis.search();\r\n\t\t\t},\r\n\t\t\tonRemoveFilter: () => {\r\n\t\t\t\tthis.search();\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tthis.cookiePlaceholder = this.element.querySelector(\r\n\t\t\t`.${this.options.cookieClass}`\r\n\t\t);\r\n\t\tthis.mapPlaceholder = this.element.querySelector(\r\n\t\t\t`.${this.options.mapClass}`\r\n\t\t);\r\n\t\tthis.mapOverlay = this.element.querySelector(\r\n\t\t\t`.${this.options.mapOverlayClass}`\r\n\t\t);\r\n\t\tthis.mapScroll = this.element.querySelector(\r\n\t\t\t`.${this.options.mapScrollClass}`\r\n\t\t);\r\n\t\tnew PageTopComponent(\r\n\t\t\tdocument.querySelector('.js-page-top'),\r\n\t\t\tthis.mapScroll\r\n\t\t);\r\n\r\n\t\tthis.filterType =\r\n\t\t\tthis.filter.form.getAttribute('data-type') || 'Default';\r\n\r\n\t\tthis.options.hideCluster =\r\n\t\t\tthis.mapPlaceholder.getAttribute('data-hide-cluster') == 'true';\r\n\r\n\t\tthis.updateValuesByUrl();\r\n\r\n\t\tthis.locations = Array.from(\r\n\t\t\tthis.element.getElementsByClassName(this.options.locationClass)\r\n\t\t)\r\n\t\t\t.map((elem) => this.createMapLocation(elem))\r\n\t\t\t.filter((o) => !!o);\r\n\r\n\t\tthis.locations.forEach((l) => {\r\n\t\t\tlet markerClick = false;\r\n\t\t\tl.visible = true;\r\n\r\n\t\t\tconst collapse = getSelectorElementFromElement(l.element);\r\n\t\t\tconst overview = collapse?.querySelector('.js-map-filter-overview');\r\n\t\t\tif (overview) {\r\n\t\t\t\toverview.addEventListener('click', (e) => {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tdispatchCustomEvent(l.element, 'click');\r\n\t\t\t\t\tthis.centerMap();\r\n\t\t\t\t\tif (window.innerWidth < 768) {\r\n\t\t\t\t\t\tscrollToOffset(\r\n\t\t\t\t\t\t\tthis.getScrollTop() * -1 + 187,\r\n\t\t\t\t\t\t\tundefined,\r\n\t\t\t\t\t\t\t300,\r\n\t\t\t\t\t\t\t0,\r\n\t\t\t\t\t\t\tthis.getScrollTarget()\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\tl.marker.addListener('spider_click', () => {\r\n\t\t\t\tmarkerClick = true;\r\n\t\t\t\tdispatchCustomEvent(l.element, 'click');\r\n\t\t\t});\r\n\t\t\tl.element.addEventListener('click', (e) => {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tconst isActive = !hasClass(l.element, 'is-active');\r\n\t\t\t\tconst actives = this.locations.filter((loc) =>\r\n\t\t\t\t\thasClass(loc.element, 'is-active')\r\n\t\t\t\t);\r\n\t\t\t\tif (actives && actives.length) {\r\n\t\t\t\t\tactives.forEach((active) => {\r\n\t\t\t\t\t\tthis.hideCollapse(active);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\tif (markerClick === false) {\r\n\t\t\t\t\t\tthis.centerMap(\r\n\t\t\t\t\t\t\tnew google.maps.LatLngBounds(l.latLng, l.latLng),\r\n\t\t\t\t\t\t\ttrue\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.showCollapse(l, () => {\r\n\t\t\t\t\t\tscrollToOffset(\r\n\t\t\t\t\t\t\tl.element.offsetTop - this.getScrollTop(),\r\n\t\t\t\t\t\t\tundefined,\r\n\t\t\t\t\t\t\t300,\r\n\t\t\t\t\t\t\t-15,\r\n\t\t\t\t\t\t\tthis.getScrollTarget()\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.hideCollapse(l);\r\n\t\t\t\t}\r\n\t\t\t\tmarkerClick = false;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\twindow.addEventListener(\r\n\t\t\t'CookiebotOnLoad',\r\n\t\t\t(e) => {\r\n\t\t\t\tthis.cookiebotInit();\r\n\t\t\t},\r\n\t\t\tfalse\r\n\t\t);\r\n\t\tthis.cookiebotInit();\r\n\r\n\t\tthis.search();\r\n\t}\r\n\r\n\tprivate cookiebotInit() {\r\n\t\tif ('Cookiebot' in window && Cookiebot.consent.marketing) {\r\n\t\t\tremoveClass(this.mapPlaceholder, 'd-none');\r\n\t\t\taddClass(this.cookiePlaceholder, 'd-none');\r\n\t\t} else {\r\n\t\t\taddClass(this.mapPlaceholder, 'd-none');\r\n\t\t\tremoveClass(this.cookiePlaceholder, 'd-none');\r\n\t\t}\r\n\t\tif (\r\n\t\t\t'Cookiebot' in window &&\r\n\t\t\tCookiebot.consent.marketing &&\r\n\t\t\thasClass(this.element, 'is-cookiebot-initialized') == false\r\n\t\t) {\r\n\t\t\taddClass(this.element, 'is-cookiebot-initialized');\r\n\r\n\t\t\tthis.infowindow = new google.maps.InfoWindow({\r\n\t\t\t\tcontent: '',\r\n\t\t\t});\r\n\r\n\t\t\tthis.map = new google.maps.Map(this.mapPlaceholder, {\r\n\t\t\t\tzoom: this.options.mapInitialZoom,\r\n\t\t\t\tcenter: this.options.mapCenter,\r\n\t\t\t\tfullscreenControl: false,\r\n\t\t\t\tmapTypeControl: false,\r\n\t\t\t\tstreetViewControl: false,\r\n\t\t\t\tstyles: this.options.mapStyles,\r\n\t\t\t\tgestureHandling: window.innerWidth > 767 ? 'greedy' : 'auto',\r\n\t\t\t});\r\n\t\t\tgoogle.maps.event.addListenerOnce(this.map, 'idle', () =>\r\n\t\t\t\tthis.centerMap()\r\n\t\t\t);\r\n\t\t\tgoogle.maps.event.addListener(this.map, 'click', () => {\r\n\t\t\t\tthis.infowindow.close();\r\n\t\t\t});\r\n\r\n\t\t\tif (this.options.hideCluster == false) {\r\n\t\t\t\tthis.oms = new OverlappingMarkerSpiderfier(this.map, {\r\n\t\t\t\t\tmarkersWontMove: true,\r\n\t\t\t\t\tmarkersWontHide: true,\r\n\t\t\t\t\tbasicFormatEvents: true,\r\n\t\t\t\t\t//keepSpiderfied: true,\r\n\t\t\t\t\tcircleFootSeparation: Math.max(\r\n\t\t\t\t\t\tthis.options.markerIcon.size.width,\r\n\t\t\t\t\t\tthis.options.markerIcon.size.height\r\n\t\t\t\t\t),\r\n\t\t\t\t\tnearbyDistance: Math.max(\r\n\t\t\t\t\t\tthis.options.markerIcon.size.width,\r\n\t\t\t\t\t\tthis.options.markerIcon.size.height\r\n\t\t\t\t\t),\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.markerCluster = new MarkerClusterer(this.map, [], {\r\n\t\t\t\t\tmaxZoom: this.options.maxZoom - 1,\r\n\t\t\t\t\tstyles: this.options.clusterStyle,\r\n\t\t\t\t\tzoomOnClick: false,\r\n\t\t\t\t});\r\n\t\t\t\tthis.markerCluster.setCalculator((markers, numStyles) => {\r\n\t\t\t\t\tif (markers.length >= 100) {\r\n\t\t\t\t\t\treturn { text: markers.length, index: 3 };\r\n\t\t\t\t\t} else if (markers.length >= 10) {\r\n\t\t\t\t\t\treturn { text: markers.length, index: 2 };\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn { text: markers.length, index: 1 };\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tthis.markerCluster.addListener('clusterclick', (cluster) => {\r\n\t\t\t\t\tconst theBounds = cluster.getBounds();\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tthis.centerMap(theBounds);\r\n\t\t\t\t\t}, 100);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tthis.geoCoder = new google.maps.Geocoder();\r\n\r\n\t\t\tthis.map.data.loadGeoJson(\r\n\t\t\t\t'/map/cantons_small.json',\r\n\t\t\t\tnull,\r\n\t\t\t\t(features) => {\r\n\t\t\t\t\tthis.cantons = features.map((feature) => {\r\n\t\t\t\t\t\tvar bounds = new google.maps.LatLngBounds();\r\n\t\t\t\t\t\tfeature\r\n\t\t\t\t\t\t\t.getGeometry()\r\n\t\t\t\t\t\t\t.forEachLatLng((latLng) => bounds.extend(latLng));\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tname: feature.getProperty('ak').toLowerCase(),\r\n\t\t\t\t\t\t\tfeature,\r\n\t\t\t\t\t\t\tbounds,\r\n\t\t\t\t\t\t} as MapsFeature;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tthis.search();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t\tthis.map.data.setStyle({\r\n\t\t\t\tstrokeColor: '#AE0270',\r\n\t\t\t\tstrokeOpacity: 0.8,\r\n\t\t\t\tstrokeWeight: 0,\r\n\t\t\t\tfillColor: '#AE0270',\r\n\t\t\t\tfillOpacity: 0.1,\r\n\t\t\t\tclickable: false,\r\n\t\t\t});\r\n\r\n\t\t\tthis.locations.forEach((l) => {\r\n\t\t\t\tl.marker.setMap(this.map);\r\n\t\t\t\tif (this.options.hideCluster == false) {\r\n\t\t\t\t\tthis.oms.addMarker(l.marker);\r\n\t\t\t\t\tthis.markerCluster.addMarker(l.marker);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tupdateValuesByUrl(hash?: string) {\r\n\t\tconst hashArray = (hash || location.hash).toLowerCase().split('/');\r\n\t\tif (hashArray && hashArray.length > 0) {\r\n\t\t\tthis.filter.clear();\r\n\t\t\thashArray.forEach((item) => {\r\n\t\t\t\tif (item.startsWith('#')) {\r\n\t\t\t\t\t// skip\r\n\t\t\t\t} else if (item.startsWith('.')) {\r\n\t\t\t\t\t// filter\r\n\t\t\t\t\tfor (const input of this.filter.filters) {\r\n\t\t\t\t\t\tif (input) {\r\n\t\t\t\t\t\t\tif (input.value === item) {\r\n\t\t\t\t\t\t\t\tinput.checked = true;\r\n\t\t\t\t\t\t\t\tconst event = new Event('change', {\r\n\t\t\t\t\t\t\t\t\tbubbles: false,\r\n\t\t\t\t\t\t\t\t\tcancelable: true,\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tinput.dispatchEvent(event);\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\t} else if (input.options) {\r\n\t\t\t\t\t\t\t\tconst option = Array.from(input.options).find(\r\n\t\t\t\t\t\t\t\t\t(o) => o.value == item\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\tif (option) {\r\n\t\t\t\t\t\t\t\t\toption.selected = true;\r\n\t\t\t\t\t\t\t\t}\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} else {\r\n\t\t\t\t\tif (this.filter.search) {\r\n\t\t\t\t\t\t// search\r\n\t\t\t\t\t\tthis.filter.search.value = decodeURI(item);\r\n\t\t\t\t\t\tdispatchCustomEvent(this.filter.search, 'input');\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\treInit() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.updateValuesByUrl();\r\n\t\t\tthis.search();\r\n\t\t\tgoogle.maps.event.trigger(this.map, 'resize');\r\n\t\t}, 300);\r\n\t}\r\n\r\n\tgetActiveLocations(): MapsLocation[] {\r\n\t\treturn this.locations.filter((o) => o.visible);\r\n\t}\r\n\r\n\tprivate createMapLocation(element: Element) {\r\n\t\tconst lat = parseFloat(element.getAttribute('data-lat'));\r\n\t\tconst lng = parseFloat(element.getAttribute('data-lng'));\r\n\t\tconst address = element.getAttribute('data-address');\r\n\t\tconst name = element.getAttribute('data-name');\r\n\t\tconst tagsAttr = element.getAttribute('data-tags');\r\n\t\tconst searchAttr = element.getAttribute('data-search');\r\n\t\tconst type = element.getAttribute('data-type');\r\n\t\tconst iconUrl = element.getAttribute('data-icon');\r\n\t\tconst iconColor = element.getAttribute('data-icon-color');\r\n\t\tconst iconColorActive = element.getAttribute('data-icon-color-active');\r\n\t\tconst iconColorHit = element.getAttribute('data-icon-color-hit');\r\n\t\tlet tags = [];\r\n\t\tif (tagsAttr) {\r\n\t\t\ttags = tagsAttr.split(',');\r\n\t\t}\r\n\t\tlet search = [];\r\n\t\tif (searchAttr) {\r\n\t\t\tsearch = searchAttr.split(',');\r\n\t\t}\r\n\t\tif (lat && lng) {\r\n\t\t\treturn this.setupMarker(\r\n\t\t\t\telement,\r\n\t\t\t\ttags,\r\n\t\t\t\tsearch,\r\n\t\t\t\tnew google.maps.LatLng(lat, lng),\r\n\t\t\t\ttype,\r\n\t\t\t\ticonUrl,\r\n\t\t\t\ticonColor,\r\n\t\t\t\ticonColorActive,\r\n\t\t\t\ticonColorHit\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\tprivate setupMarker(\r\n\t\telement,\r\n\t\ttags,\r\n\t\tsearch,\r\n\t\tlocation,\r\n\t\ttype,\r\n\t\ticonUrl,\r\n\t\ticonColor,\r\n\t\ticonColorActive,\r\n\t\ticonColorHit\r\n\t): MapsLocation {\r\n\t\tconst marker = new google.maps.Marker({\r\n\t\t\tposition: location,\r\n\t\t\ticon: this.getMarkerTemplate(iconColor, iconUrl),\r\n\t\t\ttitle: element.getAttribute('data-name'),\r\n\t\t});\r\n\t\treturn {\r\n\t\t\telement,\r\n\t\t\tlatLng: location,\r\n\t\t\ttags,\r\n\t\t\tsearch,\r\n\t\t\tmarker,\r\n\t\t\tmarkerSettings: {\r\n\t\t\t\ticonUrl,\r\n\t\t\t\ticonColor,\r\n\t\t\t\ticonColorActive,\r\n\t\t\t\ticonColorHit,\r\n\t\t\t},\r\n\t\t\ttype,\r\n\t\t\tvisible: false,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate setUrlHash(hash) {\r\n\t\tif (\r\n\t\t\t(location.hash && location.hash != hash) ||\r\n\t\t\t(!location.hash && hash != '#/')\r\n\t\t) {\r\n\t\t\tif (history.pushState) {\r\n\t\t\t\thistory.pushState(null, null, hash);\r\n\t\t\t} else {\r\n\t\t\t\tlocation.hash = hash;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// tslint:disable-next-line: max-func-body-length\r\n\tpublic search() {\r\n\t\tconst formData = Array.from(new FormData(this.filter.form)).filter(\r\n\t\t\t(o) => !!o[1]\r\n\t\t);\r\n\t\tconst activeFilters = formData.map((o) => o[1]);\r\n\t\tconst activeFiltersGrouped: any = formData.reduce((arr: any[], ob) => {\r\n\t\t\tconst x = arr.find((o) => o[0] === ob[0]);\r\n\t\t\tx ? x[1].push(ob[1]) : arr.push([ob[0], [ob[1]]]);\r\n\t\t\treturn arr;\r\n\t\t}, []);\r\n\t\tconst activeCantons = this.cantons.filter(\r\n\t\t\t(o) => activeFilters.indexOf('.' + o.name) >= 0\r\n\t\t);\r\n\t\t// tslint:disable-next-line: max-func-body-length\r\n\t\tthis.getSearchBounds(activeFilters, activeCantons).then((bounds) => {\r\n\t\t\t'Cookiebot' in window &&\r\n\t\t\t\tCookiebot.consent.marketing &&\r\n\t\t\t\tthis.options.hideCluster == false &&\r\n\t\t\t\tthis.markerCluster.clearMarkers();\r\n\t\t\tconst searchAddress = this.getSearchAddress();\r\n\t\t\tconst hash = `${this.element.id}/${activeFilters.join('/')}`;\r\n\t\t\tif (hash) {\r\n\t\t\t\tthis.setUrlHash(`#${hash}`);\r\n\t\t\t}\r\n\t\t\tswitch (this.filterType) {\r\n\t\t\t\tcase 'HealthyCommunities':\r\n\t\t\t\t\tthis.locations.forEach((l) => {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t(activeCantons.length > 0 &&\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) ===\r\n\t\t\t\t\t\t\t\t\t1 &&\r\n\t\t\t\t\t\t\t\t(l.type === 'standard' || l.type === 'vbgf')) ||\r\n\t\t\t\t\t\t\t(activeCantons.length > 0 &&\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) >\r\n\t\t\t\t\t\t\t\t\t1 &&\r\n\t\t\t\t\t\t\t\t(l.type === 'standard' ||\r\n\t\t\t\t\t\t\t\t\tl.type === 'canton')) ||\r\n\t\t\t\t\t\t\t(activeCantons.length === 0 &&\r\n\t\t\t\t\t\t\t\tl.type === 'standard')\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tthis.searchCondition(\r\n\t\t\t\t\t\t\t\tl,\r\n\t\t\t\t\t\t\t\tactiveFilters,\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped,\r\n\t\t\t\t\t\t\t\tsearchAddress\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.hideLocation(l);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'HealthySchools':\r\n\t\t\t\t\tthis.locations.forEach((l) => {\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t(activeFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) ===\r\n\t\t\t\t\t\t\t\t0 &&\r\n\t\t\t\t\t\t\t\t(l.type === 'vbgf' || l.type === 'sn21')) ||\r\n\t\t\t\t\t\t\t(activeCantons.length === 0 &&\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) ===\r\n\t\t\t\t\t\t\t\t\t1 &&\r\n\t\t\t\t\t\t\t\tl.type === 'standard') ||\r\n\t\t\t\t\t\t\t(activeCantons.length > 0 &&\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) ===\r\n\t\t\t\t\t\t\t\t\t1) ||\r\n\t\t\t\t\t\t\t(activeCantons.length > 0 &&\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped.length -\r\n\t\t\t\t\t\t\t\t\t(searchAddress ? 1 : 0) >\r\n\t\t\t\t\t\t\t\t\t1 &&\r\n\t\t\t\t\t\t\t\tl.type === 'standard')\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tthis.searchCondition(\r\n\t\t\t\t\t\t\t\tl,\r\n\t\t\t\t\t\t\t\tactiveFilters,\r\n\t\t\t\t\t\t\t\tactiveFiltersGrouped,\r\n\t\t\t\t\t\t\t\tsearchAddress\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.hideLocation(l);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tthis.locations.forEach((l) => {\r\n\t\t\t\t\t\tthis.searchCondition(\r\n\t\t\t\t\t\t\tl,\r\n\t\t\t\t\t\t\tactiveFilters,\r\n\t\t\t\t\t\t\tactiveFiltersGrouped,\r\n\t\t\t\t\t\t\tsearchAddress\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tvar locationBounds =\r\n\t\t\t\tbounds || this.accumulateLocationBounds(this.locations, false);\r\n\t\t\tif (locationBounds && this.options.radiusBounds > 0) {\r\n\t\t\t\tvar radiusBounds = this.addRadiusToBounds(\r\n\t\t\t\t\tthis.options.radiusBounds,\r\n\t\t\t\t\tlocationBounds\r\n\t\t\t\t);\r\n\t\t\t\tvar furtherLocations = this.locations.filter(\r\n\t\t\t\t\t(l) => radiusBounds.contains(l.latLng) && l.visible == false\r\n\t\t\t\t);\r\n\t\t\t\tif (furtherLocations && furtherLocations.length > 0) {\r\n\t\t\t\t\tfurtherLocations.forEach((l) => this.showLocation(l));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (!bounds) {\r\n\t\t\t\tbounds = new google.maps.LatLngBounds();\r\n\t\t\t}\r\n\t\t\tthis.cantons.forEach((canton) => {\r\n\t\t\t\tconst isActiveCanton =\r\n\t\t\t\t\tactiveFilters.indexOf('.' + canton.name) >= 0 ||\r\n\t\t\t\t\tthis.locations.some(\r\n\t\t\t\t\t\t(o) =>\r\n\t\t\t\t\t\t\to.visible &&\r\n\t\t\t\t\t\t\to.tags[0].indexOf('.' + canton.name) >= 0\r\n\t\t\t\t\t);\r\n\t\t\t\tif (isActiveCanton) {\r\n\t\t\t\t\tbounds.extend(canton.bounds.getNorthEast());\r\n\t\t\t\t\tbounds.extend(canton.bounds.getSouthWest());\r\n\t\t\t\t}\r\n\t\t\t\tthis.map.data.overrideStyle(canton.feature, {\r\n\t\t\t\t\tvisible: isActiveCanton,\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tthis.filter.updateTags();\r\n\t\t\tthis.filter.toggleEmptyState(\r\n\t\t\t\tthis.locations.filter((o) => o.visible).length > 0\r\n\t\t\t);\r\n\r\n\t\t\tconst activeLocations = this.locations.filter((o) => o.visible);\r\n\t\t\tif (\r\n\t\t\t\tthis.options.openIfSingleResult &&\r\n\t\t\t\tactiveLocations.length === 1\r\n\t\t\t) {\r\n\t\t\t\tdispatchCustomEvent(activeLocations[0].element, 'click');\r\n\t\t\t} else if (activeLocations.length > 1) {\r\n\t\t\t\tconst actives = this.locations.filter((loc) =>\r\n\t\t\t\t\thasClass(loc.element, 'is-active')\r\n\t\t\t\t);\r\n\t\t\t\tif (actives && actives.length) {\r\n\t\t\t\t\tactives.forEach((active) => {\r\n\t\t\t\t\t\tthis.hideCollapse(active);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tthis.centerMap(bounds);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate searchCondition(\r\n\t\tl,\r\n\t\tactiveFilters,\r\n\t\tactiveFiltersGrouped,\r\n\t\tsearchAddress\r\n\t) {\r\n\t\tif (\r\n\t\t\tactiveFilters.length === 0 ||\r\n\t\t\t(searchAddress &&\r\n\t\t\t\tactiveFilters.length === 1 &&\r\n\t\t\t\tl.search.some((o) => o.indexOf(searchAddress) >= 0)) ||\r\n\t\t\t(!searchAddress &&\r\n\t\t\t\tactiveFilters.length >= 1 &&\r\n\t\t\t\tactiveFiltersGrouped.every((group) =>\r\n\t\t\t\t\tgroup[1].some((o) => l.tags.indexOf(o) >= 0)\r\n\t\t\t\t)) ||\r\n\t\t\t(activeFilters.length > 1 &&\r\n\t\t\t\tsearchAddress &&\r\n\t\t\t\tactiveFiltersGrouped.every(\r\n\t\t\t\t\t(group) =>\r\n\t\t\t\t\t\tgroup[1].some((o) => l.tags.indexOf(o) >= 0) ||\r\n\t\t\t\t\t\tgroup[1].some((o) =>\r\n\t\t\t\t\t\t\tl.search.some((o) => o.indexOf(searchAddress) >= 0)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t) &&\r\n\t\t\t\tl.search.some((o) => o.indexOf(searchAddress) >= 0))\r\n\t\t) {\r\n\t\t\tthis.showLocation(l, activeFiltersGrouped.length > 0);\r\n\t\t} else {\r\n\t\t\tthis.hideLocation(l);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate showLocation(l: MapsLocation, hit: boolean = false) {\r\n\t\tl.visible = true;\r\n\t\tremoveClass(l.element, 'd-none');\r\n\t\ttoggleClass(l.element, 'c-map-filter__list--hit', hit);\r\n\t\tl.marker.setIcon(\r\n\t\t\tthis.getMarkerTemplate(\r\n\t\t\t\thit\r\n\t\t\t\t\t? l.markerSettings.iconColorHit\r\n\t\t\t\t\t: l.markerSettings.iconColor,\r\n\t\t\t\tl.markerSettings.iconUrl\r\n\t\t\t)\r\n\t\t);\r\n\t\tif ('Cookiebot' in window && Cookiebot.consent.marketing) {\r\n\t\t\tl.marker.setMap(this.map);\r\n\t\t\tif (this.options.hideCluster == false) {\r\n\t\t\t\tthis.markerCluster.addMarker(l.marker);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate hideLocation(l: MapsLocation) {\r\n\t\tl.visible = false;\r\n\t\taddClass(l.element, 'd-none');\r\n\t\tremoveClass(l.element, 'c-map-filter__list--hit');\r\n\t\tif (hasClass(l.element, 'is-active')) {\r\n\t\t\tthis.hideCollapse(l);\r\n\t\t}\r\n\t\tif ('Cookiebot' in window && Cookiebot.consent.marketing) {\r\n\t\t\tl.marker.setMap(null);\r\n\t\t\tif (this.options.hideCluster == false) {\r\n\t\t\t\tthis.markerCluster.removeMarker(l.marker);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate centerMap(bounds?, isExactPos = false) {\r\n\t\tif (\r\n\t\t\t'Cookiebot' in window &&\r\n\t\t\tCookiebot.consent.marketing &&\r\n\t\t\tthis.locations &&\r\n\t\t\tthis.locations.length > 0\r\n\t\t) {\r\n\t\t\tif (!bounds) {\r\n\t\t\t\tbounds = this.accumulateLocationBounds(this.locations);\r\n\t\t\t}\r\n\t\t\tlet top = 7.5;\r\n\t\t\tlet left = 7.5;\r\n\t\t\tlet bottom = 7.5;\r\n\t\t\tlet right = 7.5;\r\n\t\t\tif (window.innerWidth > 767) {\r\n\t\t\t\ttop = 15;\r\n\t\t\t\tleft = this.mapOverlay.offsetWidth;\r\n\t\t\t\tright = 15;\r\n\t\t\t\tbottom = 15;\r\n\t\t\t}\r\n\t\t\tfitBoundsWithPadding(this.map, bounds, {\r\n\t\t\t\ttop,\r\n\t\t\t\tleft,\r\n\t\t\t\tbottom,\r\n\t\t\t\tright,\r\n\t\t\t});\r\n\t\t\tthis.setZoom();\r\n\t\t\tif (isExactPos) {\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tconst x = window.innerWidth > 767 ? -left / 2 : -left / 2;\r\n\t\t\t\t\tconst y = window.innerWidth > 767 ? -top / 2 : bottom / 2;\r\n\t\t\t\t\tthis.map.panBy(x, y);\r\n\t\t\t\t}, 100);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setZoom() {\r\n\t\tif (this.map.getZoom() > this.options.maxZoom) {\r\n\t\t\tthis.map.setZoom(this.options.maxZoom);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate addRadiusToBounds(\r\n\t\tradius: number,\r\n\t\tbounds: google.maps.LatLngBounds\r\n\t) {\r\n\t\tconst ne = google.maps.geometry.spherical.computeOffset(\r\n\t\t\tbounds.getNorthEast(),\r\n\t\t\tradius * 1000,\r\n\t\t\t45\r\n\t\t);\r\n\t\tconst sw = google.maps.geometry.spherical.computeOffset(\r\n\t\t\tbounds.getSouthWest(),\r\n\t\t\tradius * 1000,\r\n\t\t\t225\r\n\t\t);\r\n\t\treturn new google.maps.LatLngBounds(sw, ne);\r\n\t}\r\n\r\n\tprivate accumulateLocationBounds(\r\n\t\tlocations: MapsLocation[],\r\n\t\tallIfEmpty = true\r\n\t) {\r\n\t\tlet visibles = locations.filter((o) => o.visible);\r\n\t\tif (!visibles || visibles.length === 0) {\r\n\t\t\tif (allIfEmpty == false) {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t\tvisibles = locations;\r\n\t\t}\r\n\t\treturn visibles.reduce(\r\n\t\t\t(bounds, l) => bounds.extend(l.latLng),\r\n\t\t\tnew google.maps.LatLngBounds()\r\n\t\t);\r\n\t}\r\n\r\n\tprivate getSearchBounds(activeFilters: any[], activeCantons: any[]) {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst address = this.getSearchAddress();\r\n\t\t\tif (address) {\r\n\t\t\t\tif (address === this.previousAddress) {\r\n\t\t\t\t\tresolve(this.previousBounds);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ('Cookiebot' in window && Cookiebot.consent.marketing) {\r\n\t\t\t\t\t\tthis.geoCoder.geocode(\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\taddress,\r\n\t\t\t\t\t\t\t\tregion: 'ch',\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t(results, status) => {\r\n\t\t\t\t\t\t\t\tif (status === google.maps.GeocoderStatus.OK) {\r\n\t\t\t\t\t\t\t\t\tconst bounds = results[0].geometry.bounds;\r\n\t\t\t\t\t\t\t\t\tthis.previousAddress = address;\r\n\t\t\t\t\t\t\t\t\tthis.previousBounds =\r\n\t\t\t\t\t\t\t\t\t\tnew google.maps.LatLngBounds().union(\r\n\t\t\t\t\t\t\t\t\t\t\tbounds\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\tresolve(bounds);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tresolve(null);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresolve(null);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tresolve(null);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getSearchAddress() {\r\n\t\tif (this.filter.search) {\r\n\t\t\tconst address = this.filter.search.value;\r\n\t\t\tif (address) {\r\n\t\t\t\treturn address.trim().toLowerCase();\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t}\r\n\r\n\tprivate getMarkerTemplate(color = '#009799', variant: string) {\r\n\t\tconst marker = this.options.markerIcon;\r\n\t\tconst template = `\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t`;\r\n\t\tmarker.url =\r\n\t\t\t'data:image/svg+xml;charset=UTF-8,' + encodeURIComponent(template);\r\n\t\treturn marker;\r\n\t}\r\n\r\n\tprivate showCollapse(location: MapsLocation, callback?: Function) {\r\n\t\taddClass(location.element, 'is-active');\r\n\t\tif (location.markerSettings.iconColorActive) {\r\n\t\t\tlocation.marker.setIcon(\r\n\t\t\t\tthis.getMarkerTemplate(\r\n\t\t\t\t\tlocation.markerSettings.iconColorActive,\r\n\t\t\t\t\tlocation.markerSettings.iconUrl\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst collapse = getSelectorElementFromElement(location.element);\r\n\t\tif (collapse) {\r\n\t\t\tif (hasClass(collapse, 'inner-collapse--done') == false) {\r\n\t\t\t\taddClass(collapse, 'inner-collapse--done');\r\n\t\t\t\tconst innerCollapse =\r\n\t\t\t\t\tcollapse.querySelectorAll(\r\n\t\t\t\t\t\t'.js-collapse-inner'\r\n\t\t\t\t\t);\r\n\t\t\t\tinnerCollapse.forEach((inner) => {\r\n\t\t\t\t\tnew Collapse(inner);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\twindow.location = location.element.getAttribute('href');\r\n\t\t}\r\n\t\tif (callback) {\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate hideCollapse(location: MapsLocation, callback?: Function) {\r\n\t\tremoveClass(location.element, 'is-active');\r\n\t\tlocation.marker.setIcon(\r\n\t\t\tthis.getMarkerTemplate(\r\n\t\t\t\tlocation.markerSettings.iconColor,\r\n\t\t\t\tlocation.markerSettings.iconUrl\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tif (callback) {\r\n\t\t\tcallback();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getScrollTarget() {\r\n\t\treturn window.innerWidth > 767 ? this.mapScroll : this.scrollWrapper;\r\n\t}\r\n\r\n\tprivate getScrollTop() {\r\n\t\tconst target = this.getScrollTarget();\r\n\t\tif (target instanceof Window) {\r\n\t\t\treturn target.scrollY;\r\n\t\t} else {\r\n\t\t\treturn target.scrollTop;\r\n\t\t}\r\n\t}\r\n}\r\n","import { scrollToElement } from \"@opten/scroll/scroll-to-element\";\r\nimport { Component } from \"@opten/compiler/metadata/component\";\r\n\r\ndeclare const Cookiebot: any;\r\n\r\ninterface Location {\r\n\telement: HTMLElement;\r\n\tposition: google.maps.LatLng;\r\n\tmarker: google.maps.Marker;\r\n\turl?: string;\r\n\tcontent: string;\r\n\tbutton: HTMLElement;\r\n}\r\n\r\n@Component({ className: \"js-map\" })\r\nexport class MapComponent {\r\n\tprivate instance: google.maps.Map;\r\n\tprivate infoWindow: google.maps.InfoWindow;\r\n\tprivate geoCoder: google.maps.Geocoder;\r\n\tprivate locations: Location[];\r\n\r\n\tprivate mapHolder: HTMLElement;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\twindow.addEventListener(\r\n\t\t\t\"CookiebotOnAccept\",\r\n\t\t\t(e) => {\r\n\t\t\t\tthis.cookiebotInit();\r\n\t\t\t},\r\n\t\t\tfalse\r\n\t\t);\r\n\t\tthis.cookiebotInit();\r\n\t}\r\n\r\n\tprivate cookiebotInit() {\r\n\t\tif (\"Cookiebot\" in window && Cookiebot.consent.marketing) {\r\n\t\t\tthis.geoCoder = new google.maps.Geocoder();\r\n\t\t\tthis.infoWindow = new google.maps.InfoWindow();\r\n\r\n\t\t\tthis.mapHolder = this.element.querySelector(\".js-map-placeholder\");\r\n\t\t\tPromise.all(\r\n\t\t\t\tArray.from(\r\n\t\t\t\t\tthis.element.querySelectorAll(\".js-map-location\")\r\n\t\t\t\t).map((elem) => this.parseLocation(elem as HTMLElement))\r\n\t\t\t).then((locations) => {\r\n\t\t\t\tthis.init(this.mapHolder, locations);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t// tslint:disable-next-line: max-func-body-length\r\n\tprivate init(placeholder: Element, locations: Location[]) {\r\n\t\tthis.instance = new google.maps.Map(placeholder, {\r\n\t\t\tcenter: { lat: 47.4133597, lng: 8.5342391 },\r\n\t\t\tzoom: 15,\r\n\t\t\tmaxZoom: 25,\r\n\t\t\tdisableDefaultUI: true,\r\n\t\t\tscrollwheel: false,\r\n\t\t\tstyles: MapStyles,\r\n\t\t});\r\n\r\n\t\tlocations.forEach((location) => {\r\n\t\t\tlocation.marker = this.addMarker(location);\r\n\t\t\tif (location.button) {\r\n\t\t\t\tlocation.button.addEventListener(\"click\", () => {\r\n\t\t\t\t\tthis.showLocation(location);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tlocation.element.addEventListener(\"click\", () => {\r\n\t\t\t\t\tthis.showLocation(location);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.locations = locations;\r\n\r\n\t\tthis.showAllLocations();\r\n\t}\r\n\r\n\tprivate parseLocation(div: HTMLElement) {\r\n\t\treturn new Promise((resolve) => {\r\n\t\t\tconst infobox = div.querySelector(\".js-map-location-info\");\r\n\t\t\tconst location = {\r\n\t\t\t\telement: div,\r\n\t\t\t\turl: div.getAttribute(\"data-link\"),\r\n\t\t\t\tcontent: infobox ? infobox.innerHTML.trim() : undefined,\r\n\t\t\t\tbutton: div.querySelector(\".js-map-pan2location\"),\r\n\t\t\t} as Location;\r\n\r\n\t\t\tif (div.getAttribute(\"data-location\")) {\r\n\t\t\t\tconst latlng = div.getAttribute(\"data-location\").split(\",\");\r\n\t\t\t\tlocation.position = new google.maps.LatLng(\r\n\t\t\t\t\t+latlng[0],\r\n\t\t\t\t\t+latlng[1]\r\n\t\t\t\t);\r\n\t\t\t\tresolve(location);\r\n\t\t\t} else {\r\n\t\t\t\tconst address = div.getAttribute(\"data-address\");\r\n\t\t\t\tthis.geoCoder.geocode({ address }, (results, status) => {\r\n\t\t\t\t\tif (status === google.maps.GeocoderStatus.OK) {\r\n\t\t\t\t\t\tlocation.position = results[0].geometry.location;\r\n\t\t\t\t\t\tresolve(location);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresolve(null);\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 addMarker(location: Location): google.maps.Marker {\r\n\t\tconst marker = new google.maps.Marker({\r\n\t\t\tposition: location.position,\r\n\t\t\tmap: this.instance,\r\n\t\t\ticon: \" \",\r\n\t\t\tlabel: {\r\n\t\t\t\tfontFamily: \"icomoon\",\r\n\t\t\t\tfontSize: \"30px\",\r\n\t\t\t\ttext: \"\\ue91c\",\r\n\t\t\t},\r\n\t\t});\r\n\r\n\t\tmarker.addListener(\"click\", () => {\r\n\t\t\tthis.showLocation(location);\r\n\t\t});\r\n\r\n\t\treturn marker;\r\n\t}\r\n\r\n\tprivate showLocation(location: Location): void {\r\n\t\tif (location.url) {\r\n\t\t\twindow.location.href = location.url;\r\n\t\t} else if (location.content) {\r\n\t\t\tscrollToElement(this.mapHolder, undefined, undefined, -50);\r\n\t\t\tthis.infoWindow.setContent(location.content);\r\n\t\t\tthis.infoWindow.open(this.instance, location.marker);\r\n\t\t}\r\n\r\n\t\tthis.instance.setCenter(location.position);\r\n\t\tthis.instance.setZoom(12);\r\n\t}\r\n\r\n\tprivate showAllLocations() {\r\n\t\tif (this.locations.length > 1) {\r\n\t\t\tconst bounds = new google.maps.LatLngBounds();\r\n\t\t\tfor (let i = 0; i < this.locations.length; i++) {\r\n\t\t\t\tbounds.extend(this.locations[i].position);\r\n\t\t\t}\r\n\r\n\t\t\tthis.instance.fitBounds(bounds, 30);\r\n\t\t} else {\r\n\t\t\tthis.instance.setCenter(this.locations[0].position);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport var MapStyles: google.maps.MapTypeStyle[] = [\r\n\t{\r\n\t\telementType: \"labels.icon\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tvisibility: \"off\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"administrative.country\",\r\n\t\telementType: \"geometry.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#AE0270\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvisibility: \"on\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"administrative.province\",\r\n\t\telementType: \"geometry.stroke\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#AE0270\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tvisibility: \"on\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tweight: 2,\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"poi.park\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#e5e5e5\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road.arterial\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#757575\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"road.highway\",\r\n\t\telementType: \"labels.text.fill\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#616161\",\r\n\t\t\t},\r\n\t\t],\r\n\t},\r\n\t{\r\n\t\tfeatureType: \"water\",\r\n\t\telementType: \"geometry\",\r\n\t\tstylers: [\r\n\t\t\t{\r\n\t\t\t\tcolor: \"#c9c9c9\",\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 { 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\ndeclare const grecaptcha: any;\r\n\r\n@Component({ className: 'g-recaptcha' })\r\nexport class ReCaptchaComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tgrecaptcha.ready(() => {\r\n\t\t\tgrecaptcha.render(this.element);\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","class e{picker;options;priority=0;dependencies=[];attach(e){const t=this.getName(),s={...this.options};this.options={...this.options,...e.options[t]||{}};for(const i of Object.keys(s))if(null!==s[i]&&\"object\"==typeof s[i]&&Object.keys(s[i]).length&&t in e.options&&i in e.options[t]){const n={...e.options[t][i]};null!==n&&\"object\"==typeof n&&Object.keys(n).length&&Object.keys(n).every((e=>Object.keys(s[i]).includes(e)))&&(this.options[i]={...s[i],...n})}if(this.picker=e,this.dependenciesNotFound()){const e=this.dependencies.filter((e=>!this.pluginsAsStringArray().includes(e)));return void console.warn(`${this.getName()}: required dependencies (${e.join(\", \")}).`)}const i=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.add(i),this.onAttach()}detach(){const e=this.camelCaseToKebab(this.getName());this.picker.ui.container.classList.remove(e),\"function\"==typeof this.onDetach&&this.onDetach()}dependenciesNotFound(){return this.dependencies.length&&!this.dependencies.every((e=>this.pluginsAsStringArray().includes(e)))}pluginsAsStringArray(){return this.picker.options.plugins.map((e=>\"function\"==typeof e?(new e).getName():e))}camelCaseToKebab(e){return e.replace(/([a-zA-Z])(?=[A-Z])/g,\"$1-\").toLowerCase()}}export{e as BasePlugin};\n","import{DateTime as e}from\"@easepick/datetime\";class t{picker;constructor(e){this.picker=e}render(t,i){t||(t=new e),t.setDate(1),t.setHours(0,0,0,0),\"function\"==typeof this[`get${i}View`]&&this[`get${i}View`](t)}getContainerView(e){this.picker.ui.container.innerHTML=\"\",this.picker.options.header&&this.picker.trigger(\"render\",{date:e.clone(),view:\"Header\"}),this.picker.trigger(\"render\",{date:e.clone(),view:\"Main\"}),this.picker.options.autoApply||this.picker.trigger(\"render\",{date:e.clone(),view:\"Footer\"})}getHeaderView(e){const t=document.createElement(\"header\");this.picker.options.header instanceof HTMLElement&&t.appendChild(this.picker.options.header),\"string\"==typeof this.picker.options.header&&(t.innerHTML=this.picker.options.header),this.picker.ui.container.appendChild(t),this.picker.trigger(\"view\",{target:t,date:e.clone(),view:\"Header\"})}getMainView(e){const t=document.createElement(\"main\");this.picker.ui.container.appendChild(t);const i=document.createElement(\"div\");i.className=`calendars grid-${this.picker.options.grid}`;for(let t=0;t${e.toLocaleString(this.picker.options.lang,{month:\"long\"})} ${e.format(\"YYYY\")}`,t.appendChild(i);const n=document.createElement(\"button\");n.className=\"previous-button unit\",n.innerHTML=this.picker.options.locale.previousMonth,t.appendChild(n);const s=document.createElement(\"button\");return s.className=\"next-button unit\",s.innerHTML=this.picker.options.locale.nextMonth,t.appendChild(s),t}getCalendarDayNamesView(){const e=document.createElement(\"div\");e.className=\"daynames-row\";for(let t=1;t<=7;t++){const i=3+this.picker.options.firstDay+t,n=document.createElement(\"div\");n.className=\"dayname\",n.innerHTML=new Date(1970,0,i,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:\"short\"}),n.title=new Date(1970,0,i,12,0,0,0).toLocaleString(this.picker.options.lang,{weekday:\"long\"}),e.appendChild(n),this.picker.trigger(\"view\",{dayIdx:i,view:\"CalendarDayName\",target:n})}return e}getCalendarDaysView(e){const t=document.createElement(\"div\");t.className=\"days-grid\";const i=this.calcOffsetDays(e,this.picker.options.firstDay),n=32-new Date(e.getFullYear(),e.getMonth(),32).getDate();for(let e=0;e{\"function\"==typeof t?e.push(new t):\"string\"==typeof t&&\"undefined\"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,t)?e.push(new easepick[t]):console.warn(`easepick: ${t} not found.`)})),e.sort(((e,t)=>e.priority>t.priority?-1:e.priorityt.dependencies.length?1:e.dependencies.length{e.attach(this.picker),this.instances[e.getName()]=e}))}getInstance(e){return this.instances[e]}addInstance(e){if(Object.prototype.hasOwnProperty.call(this.instances,e))console.warn(`easepick: ${e} already added.`);else{if(\"undefined\"!=typeof easepick&&Object.prototype.hasOwnProperty.call(easepick,e)){const t=new easepick[e];return t.attach(this.picker),this.instances[t.getName()]=t,t}if(\"undefined\"!==this.getPluginFn(e)){const t=new(this.getPluginFn(e));return t.attach(this.picker),this.instances[t.getName()]=t,t}console.warn(`easepick: ${e} not found.`)}return null}removeInstance(e){return e in this.instances&&this.instances[e].detach(),delete this.instances[e]}reloadInstance(e){return this.removeInstance(e),this.addInstance(e)}getPluginFn(e){return[...this.picker.options.plugins].filter((t=>\"function\"==typeof t&&(new t).getName()===e)).shift()}}class n{Calendar=new t(this);PluginManager=new i(this);calendars=[];datePicked=[];cssLoaded=0;binds={hidePicker:this.hidePicker.bind(this),show:this.show.bind(this)};options={doc:document,css:[],element:null,firstDay:1,grid:1,calendars:1,lang:\"en-US\",date:null,format:\"YYYY-MM-DD\",readonly:!0,autoApply:!0,header:!1,inline:!1,locale:{nextMonth:'',previousMonth:'',cancel:\"Cancel\",apply:\"Apply\"},documentClick:this.binds.hidePicker,plugins:[]};ui={container:null,shadowRoot:null,wrapper:null};version=\"1.1.7\";constructor(e){const t={...this.options.locale,...e.locale};this.options={...this.options,...e},this.options.locale=t,this.handleOptions(),this.ui.wrapper=document.createElement(\"span\"),this.ui.wrapper.style.display=\"none\",this.ui.wrapper.style.position=\"absolute\",this.ui.wrapper.style.pointerEvents=\"none\",this.ui.wrapper.className=\"easepick-wrapper\",this.ui.wrapper.attachShadow({mode:\"open\"}),this.ui.shadowRoot=this.ui.wrapper.shadowRoot,this.ui.container=document.createElement(\"div\"),this.ui.container.className=\"container\",this.options.zIndex&&(this.ui.container.style.zIndex=String(this.options.zIndex)),this.options.inline&&(this.ui.wrapper.style.position=\"relative\",this.ui.container.classList.add(\"inline\")),this.ui.shadowRoot.appendChild(this.ui.container),this.options.element.after(this.ui.wrapper),this.handleCSS(),this.options.element.addEventListener(\"click\",this.binds.show),this.on(\"view\",this.onView.bind(this)),this.on(\"render\",this.onRender.bind(this)),this.PluginManager.initialize(),this.parseValues(),\"function\"==typeof this.options.setup&&this.options.setup(this),this.on(\"click\",this.onClick.bind(this)),this.renderAll()}on(e,t,i={}){this.ui.container.addEventListener(e,t,i)}off(e,t,i={}){this.ui.container.removeEventListener(e,t,i)}trigger(e,t={}){return this.ui.container.dispatchEvent(new CustomEvent(e,{detail:t}))}destroy(){this.options.element.removeEventListener(\"click\",this.binds.show),\"function\"==typeof this.options.documentClick&&document.removeEventListener(\"click\",this.options.documentClick,!0),Object.keys(this.PluginManager.instances).forEach((e=>{this.PluginManager.removeInstance(e)})),this.ui.wrapper.remove()}onRender(e){const{view:t,date:i}=e.detail;this.Calendar.render(i,t)}onView(e){const{view:t,target:i}=e.detail;if(\"Footer\"===t&&this.datePicked.length){i.querySelector(\".apply-button\").disabled=!1}}onClickHeaderButton(e){this.isCalendarHeaderButton(e)&&(e.classList.contains(\"next-button\")?this.calendars[0].add(1,\"month\"):this.calendars[0].subtract(1,\"month\"),this.renderAll(this.calendars[0]))}onClickCalendarDay(t){if(this.isCalendarDay(t)){const i=new e(t.dataset.time);this.options.autoApply?(this.setDate(i),this.trigger(\"select\",{date:this.getDate()}),this.hide()):(this.datePicked[0]=i,this.trigger(\"preselect\",{date:this.getDate()}),this.renderAll())}}onClickApplyButton(e){if(this.isApplyButton(e)){if(this.datePicked[0]instanceof Date){const e=this.datePicked[0].clone();this.setDate(e)}this.hide(),this.trigger(\"select\",{date:this.getDate()})}}onClickCancelButton(e){this.isCancelButton(e)&&this.hide()}onClick(e){const t=e.target;if(t instanceof HTMLElement){const e=t.closest(\".unit\");if(!(e instanceof HTMLElement))return;this.onClickHeaderButton(e),this.onClickCalendarDay(e),this.onClickApplyButton(e),this.onClickCancelButton(e)}}isShown(){return this.ui.container.classList.contains(\"inline\")||this.ui.container.classList.contains(\"show\")}show(e){if(this.isShown())return;const t=e&&\"target\"in e?e.target:this.options.element,{top:i,left:n}=this.adjustPosition(t);this.ui.container.style.top=`${i}px`,this.ui.container.style.left=`${n}px`,this.ui.container.classList.add(\"show\"),this.trigger(\"show\",{target:t})}hide(){this.ui.container.classList.remove(\"show\"),this.datePicked.length=0,this.renderAll(),this.trigger(\"hide\")}setDate(t){const i=new e(t,this.options.format);this.options.date=i.clone(),this.updateValues(),this.calendars.length&&this.renderAll()}getDate(){return this.options.date instanceof e?this.options.date.clone():null}parseValues(){this.options.date?this.setDate(this.options.date):this.options.element instanceof HTMLInputElement&&this.options.element.value.length&&this.setDate(this.options.element.value),this.options.date instanceof Date||(this.options.date=null)}updateValues(){const e=this.getDate(),t=e instanceof Date?e.format(this.options.format,this.options.lang):\"\",i=this.options.element;i instanceof HTMLInputElement?i.value=t:i instanceof HTMLElement&&(i.innerText=t)}hidePicker(e){let t=e.target,i=null;t.shadowRoot&&(t=e.composedPath()[0],i=t.getRootNode().host),this.isShown()&&i!==this.ui.wrapper&&t!==this.options.element&&this.hide()}renderAll(e){this.trigger(\"render\",{view:\"Container\",date:(e||this.calendars[0]).clone()})}isCalendarHeaderButton(e){return[\"previous-button\",\"next-button\"].some((t=>e.classList.contains(t)))}isCalendarDay(e){return e.classList.contains(\"day\")}isApplyButton(e){return e.classList.contains(\"apply-button\")}isCancelButton(e){return e.classList.contains(\"cancel-button\")}gotoDate(t){const i=new e(t,this.options.format);i.setDate(1),this.calendars[0]=i.clone(),this.renderAll()}clear(){this.options.date=null,this.datePicked.length=0,this.updateValues(),this.renderAll()}handleOptions(){this.options.element instanceof HTMLElement||(this.options.element=this.options.doc.querySelector(this.options.element)),\"function\"==typeof this.options.documentClick&&document.addEventListener(\"click\",this.options.documentClick,!0),this.options.element instanceof HTMLInputElement&&(this.options.element.readOnly=this.options.readonly),this.options.date?this.calendars[0]=new e(this.options.date,this.options.format):this.calendars[0]=new e}handleCSS(){if(Array.isArray(this.options.css))this.options.css.forEach((e=>{const t=document.createElement(\"link\");t.href=e,t.rel=\"stylesheet\";const i=()=>{this.cssLoaded++,this.cssLoaded===this.options.css.length&&(this.ui.wrapper.style.display=\"\")};t.addEventListener(\"load\",i),t.addEventListener(\"error\",i),this.ui.shadowRoot.append(t)}));else if(\"string\"==typeof this.options.css){const e=document.createElement(\"style\"),t=document.createTextNode(this.options.css);e.appendChild(t),this.ui.shadowRoot.append(e),this.ui.wrapper.style.display=\"\"}else\"function\"==typeof this.options.css&&(this.options.css.call(this,this),this.ui.wrapper.style.display=\"\")}adjustPosition(e){const t=e.getBoundingClientRect(),i=this.ui.wrapper.getBoundingClientRect();this.ui.container.classList.add(\"calc\");const n=this.ui.container.getBoundingClientRect();this.ui.container.classList.remove(\"calc\");let s=t.bottom-i.bottom,a=t.left-i.left;return\"undefined\"!=typeof window&&(window.innerHeight=0&&(s=t.top-i.top-n.height),window.innerWidth=0&&(a=t.right-i.right-n.width)),{left:a,top:s}}}var s=Object.freeze({__proto__:null,Core:n,create:n});export{n as Core,n as create,s as easepick};\n","class t extends Date{static parseDateTime(e,s=\"YYYY-MM-DD\",n=\"en-US\"){if(!e)return new Date((new Date).setHours(0,0,0,0));if(e instanceof t)return e.toJSDate();if(e instanceof Date)return e;if(/^-?\\d{10,}$/.test(String(e)))return new Date(Number(e));if(\"string\"==typeof e){const r=[];let a=null;for(;null!=(a=t.regex.exec(s));)\"\\\\\"!==a[1]&&r.push(a);if(r.length){const s={year:null,month:null,shortMonth:null,longMonth:null,day:null,hour:0,minute:0,second:0,ampm:null,value:\"\"};r[0].index>0&&(s.value+=\".*?\");for(const[e,a]of Object.entries(r)){const r=Number(e),{group:i,pattern:h}=t.formatPatterns(a[0],n);s[i]=r+1,s.value+=h,s.value+=\".*?\"}const a=new RegExp(`^${s.value}$`);if(a.test(e)){const r=a.exec(e),i=Number(r[s.year]);let h=null;s.month?h=Number(r[s.month])-1:s.shortMonth?h=t.shortMonths(n).indexOf(r[s.shortMonth]):s.longMonth&&(h=t.longMonths(n).indexOf(r[s.longMonth]));const g=Number(r[s.day])||1,o=Number(r[s.hour]);let u=Number.isNaN(o)?0:o;const c=Number(r[s.minute]),l=Number.isNaN(c)?0:c,m=Number(r[s.second]),d=Number.isNaN(m)?0:m,M=r[s.ampm];return M&&\"PM\"===M&&(u+=12,24===u&&(u=0)),new Date(i,h,g,u,l,d,0)}}}return new Date((new Date).setHours(0,0,0,0))}static regex=/(\\\\)?(Y{2,4}|M{1,4}|D{1,2}|H{1,2}|h{1,2}|m{1,2}|s{1,2}|A|a)/g;static MONTH_JS=[0,1,2,3,4,5,6,7,8,9,10,11];static shortMonths(e){return t.MONTH_JS.map((t=>new Date(2019,t).toLocaleString(e,{month:\"short\"})))}static longMonths(e){return t.MONTH_JS.map((t=>new Date(2019,t).toLocaleString(e,{month:\"long\"})))}static formatPatterns(e,s){switch(e){case\"YY\":case\"YYYY\":return{group:\"year\",pattern:`(\\\\d{${e.length}})`};case\"M\":return{group:\"month\",pattern:\"(\\\\d{1,2})\"};case\"MM\":return{group:\"month\",pattern:\"(\\\\d{2})\"};case\"MMM\":return{group:\"shortMonth\",pattern:`(${t.shortMonths(s).join(\"|\")})`};case\"MMMM\":return{group:\"longMonth\",pattern:`(${t.longMonths(s).join(\"|\")})`};case\"D\":return{group:\"day\",pattern:\"(\\\\d{1,2})\"};case\"DD\":return{group:\"day\",pattern:\"(\\\\d{2})\"};case\"h\":case\"H\":return{group:\"hour\",pattern:\"(\\\\d{1,2})\"};case\"hh\":case\"HH\":return{group:\"hour\",pattern:\"(\\\\d{2})\"};case\"m\":return{group:\"minute\",pattern:\"(\\\\d{1,2})\"};case\"mm\":return{group:\"minute\",pattern:\"(\\\\d{2})\"};case\"s\":return{group:\"second\",pattern:\"(\\\\d{1,2})\"};case\"ss\":return{group:\"second\",pattern:\"(\\\\d{2})\"};case\"a\":case\"A\":return{group:\"ampm\",pattern:\"(AM|PM|am|pm)\"}}}lang;constructor(e=null,s=\"YYYY-MM-DD\",n=\"en-US\"){super(t.parseDateTime(e,s,n)),this.lang=n}getWeek(t){const e=new Date(this.midnight_ts(this)),s=(this.getDay()+(7-t))%7;e.setDate(e.getDate()-s);const n=e.getTime();return e.setMonth(0,1),e.getDay()!==t&&e.setMonth(0,1+(4-e.getDay()+7)%7),1+Math.ceil((n-e.getTime())/6048e5)}clone(){return new t(this)}toJSDate(){return new Date(this)}inArray(t,e=\"[]\"){return t.some((t=>t instanceof Array?this.isBetween(t[0],t[1],e):this.isSame(t,\"day\")))}isBetween(t,e,s=\"()\"){switch(s){default:case\"()\":return this.midnight_ts(this)>this.midnight_ts(t)&&this.midnight_ts(this)=this.midnight_ts(t)&&this.midnight_ts(this)this.midnight_ts(t)&&this.midnight_ts(this)<=this.midnight_ts(e);case\"[]\":return this.midnight_ts()>=this.midnight_ts(t)&&this.midnight_ts()<=this.midnight_ts(e)}}isBefore(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>new Date(this.getFullYear(),this.getMonth(),1).getTime();case\"year\":case\"years\":return t.getFullYear()>this.getFullYear()}throw new Error(\"isBefore: Invalid unit!\")}isSameOrBefore(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()>=new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime();case\"month\":case\"months\":return new Date(t.getFullYear(),t.getMonth(),1).getTime()>=new Date(this.getFullYear(),this.getMonth(),1).getTime()}throw new Error(\"isSameOrBefore: Invalid unit!\")}isAfter(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>new Date(t.getFullYear(),t.getMonth(),1).getTime();case\"year\":case\"years\":return this.getFullYear()>t.getFullYear()}throw new Error(\"isAfter: Invalid unit!\")}isSameOrAfter(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()>=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()>=new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSameOrAfter: Invalid unit!\")}isSame(t,e=\"days\"){switch(e){case\"day\":case\"days\":return new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()===new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime();case\"month\":case\"months\":return new Date(this.getFullYear(),this.getMonth(),1).getTime()===new Date(t.getFullYear(),t.getMonth(),1).getTime()}throw new Error(\"isSame: Invalid unit!\")}add(t,e=\"days\"){switch(e){case\"day\":case\"days\":this.setDate(this.getDate()+t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()+t)}return this}subtract(t,e=\"days\"){switch(e){case\"day\":case\"days\":this.setDate(this.getDate()-t);break;case\"month\":case\"months\":this.setMonth(this.getMonth()-t)}return this}diff(t,e=\"days\"){switch(e){default:case\"day\":case\"days\":return Math.round((this.midnight_ts()-this.midnight_ts(t))/864e5);case\"month\":case\"months\":let e=12*(t.getFullYear()-this.getFullYear());return e-=t.getMonth(),e+=this.getMonth(),e}}format(e,s=\"en-US\"){let n=\"\";const r=[];let a=null;for(;null!=(a=t.regex.exec(e));)\"\\\\\"!==a[1]&&r.push(a);if(r.length){r[0].index>0&&(n+=e.substring(0,r[0].index));for(const[t,a]of Object.entries(r)){const i=Number(t);n+=this.formatTokens(a[0],s),r[i+1]&&(n+=e.substring(a.index+a[0].length,r[i+1].index)),i===r.length-1&&(n+=e.substring(a.index+a[0].length))}}return n.replace(/\\\\/g,\"\")}midnight_ts(t){return t?new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0).getTime():new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0,0).getTime()}formatTokens(e,s){switch(e){case\"YY\":return String(this.getFullYear()).slice(-2);case\"YYYY\":return String(this.getFullYear());case\"M\":return String(this.getMonth()+1);case\"MM\":return`0${this.getMonth()+1}`.slice(-2);case\"MMM\":return t.shortMonths(s)[this.getMonth()];case\"MMMM\":return t.longMonths(s)[this.getMonth()];case\"D\":return String(this.getDate());case\"DD\":return`0${this.getDate()}`.slice(-2);case\"H\":return String(this.getHours());case\"HH\":return`0${this.getHours()}`.slice(-2);case\"h\":return String(this.getHours()%12||12);case\"hh\":return`0${this.getHours()%12||12}`.slice(-2);case\"m\":return String(this.getMinutes());case\"mm\":return`0${this.getMinutes()}`.slice(-2);case\"s\":return String(this.getSeconds());case\"ss\":return`0${this.getSeconds()}`.slice(-2);case\"a\":return this.getHours()<12||24===this.getHours()?\"am\":\"pm\";case\"A\":return this.getHours()<12||24===this.getHours()?\"AM\":\"PM\";default:return\"\"}}}export{t as DateTime};\n","import{DateTime as t}from\"@easepick/datetime\";import{BasePlugin as i}from\"@easepick/base-plugin\";class s extends i{priority=1;binds={onView:this.onView.bind(this)};options={minDate:null,maxDate:null,minDays:null,maxDays:null,selectForward:null,selectBackward:null,presets:!0,inseparable:!1,filter:null};getName(){return\"LockPlugin\"}onAttach(){if(this.options.minDate&&(this.options.minDate=new t(this.options.minDate,this.picker.options.format,this.picker.options.lang)),this.options.maxDate&&(this.options.maxDate=new t(this.options.maxDate,this.picker.options.format,this.picker.options.lang),this.options.maxDate instanceof t&&this.picker.options.calendars>1&&this.picker.calendars[0].isSame(this.options.maxDate,\"month\"))){const t=this.picker.calendars[0].clone().subtract(1,\"month\");this.picker.gotoDate(t)}if((this.options.minDays||this.options.maxDays||this.options.selectForward||this.options.selectBackward)&&!this.picker.options.plugins.includes(\"RangePlugin\")){const t=[\"minDays\",\"maxDays\",\"selectForward\",\"selectBackward\"];console.warn(`${this.getName()}: options ${t.join(\", \")} required RangePlugin.`)}this.picker.on(\"view\",this.binds.onView)}onDetach(){this.picker.off(\"view\",this.binds.onView)}onView(i){const{view:s,target:e,date:a}=i.detail;if(\"CalendarHeader\"===s&&(this.options.minDate instanceof t&&a.isSameOrBefore(this.options.minDate,\"month\")&&e.classList.add(\"no-previous-month\"),this.options.maxDate instanceof t&&a.isSameOrAfter(this.options.maxDate,\"month\")&&e.classList.add(\"no-next-month\")),\"CalendarDay\"===s){const t=this.picker.datePicked.length?this.picker.datePicked[0]:null;if(this.testFilter(a))return void e.classList.add(\"locked\");if(this.options.inseparable){if(this.options.minDays){const t=a.clone().subtract(this.options.minDays-1,\"day\"),i=a.clone().add(this.options.minDays-1,\"day\");let s=!1,o=!1;for(;t.isBefore(a,\"day\");){if(this.testFilter(t)){s=!0;break}t.add(1,\"day\")}for(;i.isAfter(a,\"day\");){if(this.testFilter(i)){o=!0;break}i.subtract(1,\"day\")}s&&o&&e.classList.add(\"not-available\")}this.rangeIsNotAvailable(a,t)&&e.classList.add(\"not-available\")}this.dateIsNotAvailable(a,t)&&e.classList.add(\"not-available\")}if(this.options.presets&&\"PresetPluginButton\"===s){const i=new t(Number(e.dataset.start)),s=new t(Number(e.dataset.end)),a=s.diff(i,\"day\"),o=this.options.minDays&&athis.options.maxDays;(o||n||this.lockMinDate(i)||this.lockMaxDate(i)||this.lockMinDate(s)||this.lockMaxDate(s)||this.rangeIsNotAvailable(i,s))&&e.setAttribute(\"disabled\",\"disabled\")}}dateIsNotAvailable(t,i){return this.lockMinDate(t)||this.lockMaxDate(t)||this.lockMinDays(t,i)||this.lockMaxDays(t,i)||this.lockSelectForward(t)||this.lockSelectBackward(t)}rangeIsNotAvailable(t,i){if(!t||!i)return!1;const s=(t.isSameOrBefore(i,\"day\")?t:i).clone(),e=(i.isSameOrAfter(t,\"day\")?i:t).clone();for(;s.isSameOrBefore(e,\"day\");){if(this.testFilter(s))return!0;s.add(1,\"day\")}return!1}lockMinDate(i){return this.options.minDate instanceof t&&i.isBefore(this.options.minDate,\"day\")}lockMaxDate(i){return this.options.maxDate instanceof t&&i.isAfter(this.options.maxDate,\"day\")}lockMinDays(t,i){if(this.options.minDays&&i){const s=i.clone().subtract(this.options.minDays-1,\"day\"),e=i.clone().add(this.options.minDays-1,\"day\");return t.isBetween(s,e)}return!1}lockMaxDays(t,i){if(this.options.maxDays&&i){const s=i.clone().subtract(this.options.maxDays,\"day\"),e=i.clone().add(this.options.maxDays,\"day\");return!t.isBetween(s,e)}return!1}lockSelectForward(t){if(1===this.picker.datePicked.length&&this.options.selectForward){const i=this.picker.datePicked[0].clone();return t.isBefore(i,\"day\")}return!1}lockSelectBackward(t){if(1===this.picker.datePicked.length&&this.options.selectBackward){const i=this.picker.datePicked[0].clone();return t.isAfter(i,\"day\")}return!1}testFilter(t){return\"function\"==typeof this.options.filter&&this.options.filter(t,this.picker.datePicked)}}export{s as LockPlugin};\n","import{DateTime as t}from\"@easepick/datetime\";import{BasePlugin as e}from\"@easepick/base-plugin\";class i extends e{options={native:!1,seconds:!1,stepHours:1,stepMinutes:5,stepSeconds:5,format12:!1};rangePlugin;timePicked={input:null,start:null,end:null};timePrePicked={input:null,start:null,end:null};binds={getDate:this.getDate.bind(this),getStartDate:this.getStartDate.bind(this),getEndDate:this.getEndDate.bind(this),onView:this.onView.bind(this),onInput:this.onInput.bind(this),onChange:this.onChange.bind(this),onClick:this.onClick.bind(this),setTime:this.setTime.bind(this),setStartTime:this.setStartTime.bind(this),setEndTime:this.setEndTime.bind(this)};getName(){return\"TimePlugin\"}onAttach(){this.binds._getDate=this.picker.getDate,this.binds._getStartDate=this.picker.getStartDate,this.binds._getEndDate=this.picker.getEndDate,Object.defineProperties(this.picker,{getDate:{configurable:!0,value:this.binds.getDate},getStartDate:{configurable:!0,value:this.binds.getStartDate},getEndDate:{configurable:!0,value:this.binds.getEndDate},setTime:{configurable:!0,value:this.binds.setTime},setStartTime:{configurable:!0,value:this.binds.setStartTime},setEndTime:{configurable:!0,value:this.binds.setEndTime}}),this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\"),this.parseValues(),this.picker.on(\"view\",this.binds.onView),this.picker.on(\"input\",this.binds.onInput),this.picker.on(\"change\",this.binds.onChange),this.picker.on(\"click\",this.binds.onClick)}onDetach(){delete this.picker.setTime,delete this.picker.setStartTime,delete this.picker.setEndTime,Object.defineProperties(this.picker,{getDate:{configurable:!0,value:this.binds._getDate},getStartDate:{configurable:!0,value:this.binds._getStartDate},getEndDate:{configurable:!0,value:this.binds._getEndDate}}),this.picker.off(\"view\",this.binds.onView),this.picker.off(\"input\",this.binds.onInput),this.picker.off(\"change\",this.binds.onChange),this.picker.off(\"click\",this.binds.onClick)}onView(t){const{view:e,target:i}=t.detail;if(\"Main\"===e){this.rangePlugin=this.picker.PluginManager.getInstance(\"RangePlugin\");const t=document.createElement(\"div\");if(t.className=\"time-plugin-container\",this.rangePlugin){const e=this.getStartInput();t.appendChild(e),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:e});const i=this.getEndInput();t.appendChild(i),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:i})}else{const e=this.getSingleInput();t.appendChild(e),this.picker.trigger(\"view\",{view:\"TimePluginInput\",target:e})}i.appendChild(t),this.picker.trigger(\"view\",{view:\"TimePluginContainer\",target:t})}}onInput(e){const i=e.target;if(i instanceof HTMLInputElement&&i.classList.contains(\"time-plugin-input\")){const e=this.timePicked[i.name]||new t,[n,s]=i.value.split(\":\");e.setHours(Number(n)||0,Number(s)||0,0,0),this.picker.options.autoApply?(this.timePicked[i.name]=e,this.picker.updateValues()):this.timePrePicked[i.name]=e}}onChange(e){const i=e.target;if(i instanceof HTMLSelectElement&&i.classList.contains(\"time-plugin-custom-input\")){const e=/(\\w+)\\[(\\w+)\\]/,[,n,s]=i.name.match(e),o=Number(i.value);let a=new t;switch(!this.picker.options.autoApply&&this.timePrePicked[n]instanceof Date?a=this.timePrePicked[n].clone():this.timePicked[n]instanceof Date&&(a=this.timePicked[n].clone()),s){case\"HH\":if(this.options.format12){const t=i.closest(\".time-plugin-custom-block\").querySelector(`select[name=\"${n}[period]\"]`).value,e=this.handleFormat12(t,a,o);a.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0)}else a.setHours(o,a.getMinutes(),a.getSeconds(),0);break;case\"mm\":a.setHours(a.getHours(),o,a.getSeconds(),0);break;case\"ss\":a.setHours(a.getHours(),a.getMinutes(),o,0);break;case\"period\":if(this.options.format12){const t=i.closest(\".time-plugin-custom-block\").querySelector(`select[name=\"${n}[HH]\"]`).value,e=this.handleFormat12(i.value,a,Number(t));a.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),0)}}if(this.picker.options.autoApply)this.timePicked[n]=a,this.picker.updateValues();else{this.timePrePicked[n]=a;const t=this.picker.ui.container.querySelector(\".apply-button\");if(this.rangePlugin){const e=this.rangePlugin.options,i=this.picker.datePicked,n=e.strict&&2===i.length||!e.strict&&i.length>0||!i.length&&e.strict&&e.startDate instanceof Date&&e.endDate instanceof Date||!i.length&&!e.strict&&(e.startDate instanceof Date||e.endDate instanceof Date);t.disabled=!n}else this.picker.datePicked.length&&(t.disabled=!1)}}}onClick(t){const e=t.target;if(e instanceof HTMLElement){const t=e.closest(\".unit\");if(!(t instanceof HTMLElement))return;this.picker.isApplyButton(t)&&(Object.keys(this.timePicked).forEach((t=>{this.timePrePicked[t]instanceof Date&&(this.timePicked[t]=this.timePrePicked[t].clone())})),this.picker.updateValues(),this.timePrePicked={input:null,start:null,end:null}),this.picker.isCancelButton(t)&&(this.timePrePicked={input:null,start:null,end:null},this.picker.renderAll())}}setTime(t){const e=this.handleTimeString(t);this.timePicked.input=e.clone(),this.picker.renderAll(),this.picker.updateValues()}setStartTime(t){const e=this.handleTimeString(t);this.timePicked.start=e.clone(),this.picker.renderAll(),this.picker.updateValues()}setEndTime(t){const e=this.handleTimeString(t);this.timePicked.end=e.clone(),this.picker.renderAll(),this.picker.updateValues()}handleTimeString(e){const i=new t,[n,s,o]=e.split(\":\").map((t=>Number(t))),a=n&&!Number.isNaN(n)?n:0,c=s&&!Number.isNaN(s)?s:0,r=o&&!Number.isNaN(o)?o:0;return i.setHours(a,c,r,0),i}getDate(){if(this.picker.options.date instanceof Date){const e=new t(this.picker.options.date,this.picker.options.format);if(this.timePicked.input instanceof Date){const t=this.timePicked.input;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getStartDate(){if(this.rangePlugin.options.startDate instanceof Date){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format);if(this.timePicked.start instanceof Date){const t=this.timePicked.start;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getEndDate(){if(this.rangePlugin.options.endDate instanceof Date){const e=new t(this.rangePlugin.options.endDate,this.picker.options.format);if(this.timePicked.end instanceof Date){const t=this.timePicked.end;e.setHours(t.getHours(),t.getMinutes(),t.getSeconds(),0)}return e}return null}getSingleInput(){return this.options.native?this.getNativeInput(\"input\"):this.getCustomInput(\"input\")}getStartInput(){return this.options.native?this.getNativeInput(\"start\"):this.getCustomInput(\"start\")}getEndInput(){return this.options.native?this.getNativeInput(\"end\"):this.getCustomInput(\"end\")}getNativeInput(t){const e=document.createElement(\"input\");e.type=\"time\",e.name=t,e.className=\"time-plugin-input unit\";const i=this.timePicked[t];if(i){const t=`0${i.getHours()}`.slice(-2),n=`0${i.getMinutes()}`.slice(-2);e.value=`${t}:${n}`}return e}getCustomInput(t){const e=document.createElement(\"div\");e.className=\"time-plugin-custom-block\";const i=document.createElement(\"select\");i.className=\"time-plugin-custom-input unit\",i.name=`${t}[HH]`;const n=this.options.format12?1:0,s=this.options.format12?13:24;let o=null;!this.picker.options.autoApply&&this.timePrePicked[t]instanceof Date?o=this.timePrePicked[t].clone():this.timePicked[t]instanceof Date&&(o=this.timePicked[t].clone());for(let t=n;t{const e=document.createElement(\"option\");e.value=t,e.text=t,o&&\"PM\"===t&&o.getHours()>=12&&(e.selected=!0),i.appendChild(e)})),e.appendChild(i)}return e}handleFormat12(t,e,i){const n=e.clone();switch(t){case\"AM\":12===i?n.setHours(0,n.getMinutes(),n.getSeconds(),0):n.setHours(i,n.getMinutes(),n.getSeconds(),0);break;case\"PM\":12!==i?n.setHours(i+12,n.getMinutes(),n.getSeconds(),0):n.setHours(i,n.getMinutes(),n.getSeconds(),0)}return n}parseValues(){if(this.rangePlugin){if(this.rangePlugin.options.strict){if(this.rangePlugin.options.startDate&&this.rangePlugin.options.endDate){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format),i=new t(this.rangePlugin.options.endDate,this.picker.options.format);this.timePicked.start=e.clone(),this.timePicked.end=i.clone()}}else{if(this.rangePlugin.options.startDate){const e=new t(this.rangePlugin.options.startDate,this.picker.options.format);this.timePicked.start=e.clone()}if(this.rangePlugin.options.endDate){const e=new t(this.rangePlugin.options.endDate,this.picker.options.format);this.timePicked.end=e.clone()}}if(this.rangePlugin.options.elementEnd)if(this.rangePlugin.options.strict){if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length&&this.rangePlugin.options.elementEnd instanceof HTMLInputElement&&this.rangePlugin.options.elementEnd.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format),i=new t(this.rangePlugin.options.elementEnd.value,this.picker.options.format);this.timePicked.start=e.clone(),this.timePicked.end=i.clone()}}else{if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format);this.timePicked.start=e.clone()}if(this.rangePlugin.options.elementEnd instanceof HTMLInputElement&&this.rangePlugin.options.elementEnd.value.length){const e=new t(this.rangePlugin.options.elementEnd.value,this.picker.options.format);this.timePicked.start=e.clone()}}else if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const[e,i]=this.picker.options.element.value.split(this.rangePlugin.options.delimiter);if(this.rangePlugin.options.strict){if(e&&i){const n=new t(e,this.picker.options.format),s=new t(i,this.picker.options.format);this.timePicked.start=n.clone(),this.timePicked.end=s.clone()}}else{if(e){const i=new t(e,this.picker.options.format);this.timePicked.start=i.clone()}if(i){const e=new t(i,this.picker.options.format);this.timePicked.start=e.clone()}}}}else{if(this.picker.options.date){const e=new t(this.picker.options.date,this.picker.options.format);this.timePicked.input=e.clone()}if(this.picker.options.element instanceof HTMLInputElement&&this.picker.options.element.value.length){const e=new t(this.picker.options.element.value,this.picker.options.format);this.timePicked.input=e.clone()}}}}export{i as TimePlugin};\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","export type IEventHandler = (args: TArgs) => void;\n\nclass Subscription {\n\tisExecuted = false;\n\n\tconstructor(public handler: IEventHandler, public isOnce: boolean) {}\n\n\texecute(args: TArgs) {\n\t\tif (!this.isOnce || !this.isExecuted) {\n\t\t\tthis.isExecuted = true;\n\t\t\tthis.handler(args);\n\t\t}\n\t}\n}\n\nexport class EventDispatcher {\n\tprivate subscriptions = new Array>();\n\n\tdispatch(args: TArgs): void {\n\t\tfor (const sub of [...this.subscriptions]) {\n\t\t\tsub.execute(args);\n\t\t\tthis.cleanup(sub);\n\t\t}\n\t}\n\n\tsubscribe(fn: IEventHandler) {\n\t\tif (fn) {\n\t\t\tthis.subscriptions.push(new Subscription(fn, false));\n\t\t}\n\t\treturn this;\n\t}\n\n\tone(fn: IEventHandler) {\n\t\tif (fn) {\n\t\t\tthis.subscriptions.push(new Subscription(fn, true));\n\t\t}\n\t\treturn this;\n\t}\n\n\thas(fn: IEventHandler): boolean {\n\t\tif (!fn) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.subscriptions.some((sub) => sub.handler === fn);\n\t}\n\n\tunsubscribe(fn: IEventHandler) {\n\t\tif (!fn) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.subscriptions.length; i++) {\n\t\t\tif (this.subscriptions[i].handler === fn) {\n\t\t\t\tthis.subscriptions.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tclear(): void {\n\t\tthis.subscriptions.splice(0, this.subscriptions.length);\n\t}\n\n\tprivate cleanup(sub: Subscription) {\n\t\tif (sub.isOnce && sub.isExecuted) {\n\t\t\tconst i = this.subscriptions.indexOf(sub);\n\t\t\tif (i > -1) {\n\t\t\t\tthis.subscriptions.splice(i, 1);\n\t\t\t}\n\t\t}\n\t}\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","// TODO: cannot import typings and somehow ts does not know where to look for\r\n//import 'googlemaps';\r\n\r\nexport class FitBoundsPadding {\r\n\ttop? = 0;\r\n\tleft? = 0;\r\n\tbottom? = 0;\r\n\tright? = 0;\r\n}\r\n\r\nexport function fitBoundsWithPadding(\r\n\tmap: google.maps.Map,\r\n\tbounds: google.maps.LatLngBounds,\r\n\tpadding: FitBoundsPadding\r\n) {\r\n\tconst projection = map.getProjection();\r\n\tif (projection) {\r\n\t\t// copying the bounds object, since we will extend it\r\n\t\tbounds = new google.maps.LatLngBounds(\r\n\t\t\tbounds.getSouthWest(),\r\n\t\t\tbounds.getNorthEast()\r\n\t\t);\r\n\r\n\t\t// SW\r\n\t\tlet point1 = projection.fromLatLngToPoint(bounds.getSouthWest());\r\n\t\tmap.fitBounds(bounds);\r\n\r\n\t\tlet point2 = new google.maps.Point(\r\n\t\t\t(typeof padding.left === 'number' ? padding.left : 0) /\r\n\t\t\t\tMath.pow(2, map.getZoom()) || 0,\r\n\t\t\t(typeof padding.bottom === 'number' ? padding.bottom : 0) /\r\n\t\t\t\tMath.pow(2, map.getZoom()) || 0\r\n\t\t);\r\n\r\n\t\tlet newPoint = projection.fromPointToLatLng(\r\n\t\t\tnew google.maps.Point(point1.x - point2.x, point1.y + point2.y)\r\n\t\t);\r\n\r\n\t\tbounds.extend(newPoint);\r\n\r\n\t\tpoint1 = projection.fromLatLngToPoint(bounds.getNorthEast());\r\n\t\tpoint2 = new google.maps.Point(\r\n\t\t\t(typeof padding.right === 'number' ? padding.right : 0) /\r\n\t\t\t\tMath.pow(2, map.getZoom()) || 0,\r\n\t\t\t(typeof padding.top === 'number' ? padding.top : 0) /\r\n\t\t\t\tMath.pow(2, map.getZoom()) || 0\r\n\t\t);\r\n\t\tnewPoint = projection.fromPointToLatLng(\r\n\t\t\tnew google.maps.Point(point1.x + point2.x, point1.y - point2.y)\r\n\t\t);\r\n\r\n\t\tbounds.extend(newPoint);\r\n\t\tmap.fitBounds(bounds);\r\n\t}\r\n}\r\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":""}