{"version":3,"sources":["webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/anchor.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/cookie-consent.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/datepicker.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/dialog/dialog.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/filterpage.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/gtm-tracker.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/input-fields-filled.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/map-extended/map-extended.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/photoswipe/photoswipe.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/player/player.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/print-page.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/recaptcha-3.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/recaptcha.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/components/select/select.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/utilities/cookie.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/utilities/detection.ts","webpack://hbl/../Opten.HypothekarbankLenzburg.Core.Static/utilities/polyfills.ts","webpack://hbl/./app/components/breadcrumb.ts","webpack://hbl/./app/components/calculators/investment-savings-calculator.ts","webpack://hbl/./app/components/calculators/retirement-calculator.ts","webpack://hbl/./app/components/course-form.ts","webpack://hbl/./app/components/cross-selling.ts","webpack://hbl/./app/components/customer-pages-full-preview.ts","webpack://hbl/./app/components/filtermixitup.ts","webpack://hbl/./app/components/filterpage-blog.ts","webpack://hbl/./app/components/form-extended.ts","webpack://hbl/./app/components/header.ts","webpack://hbl/./app/components/magic-scroll.ts","webpack://hbl/./app/components/map-extended.ts","webpack://hbl/./app/components/mega-dropdown.ts","webpack://hbl/./app/components/mortgage-calculator.ts","webpack://hbl/./app/components/mortgage-funding-proposal-form.ts","webpack://hbl/./app/components/navbar/index.ts","webpack://hbl/./app/components/navbar/navbar-mega-dropdown.ts","webpack://hbl/./app/components/navbar/navbar-toggler.ts","webpack://hbl/./app/components/navbar/navbar.ts","webpack://hbl/./app/components/notification.ts","webpack://hbl/./app/components/parallax-slider/parallax-slider.ts","webpack://hbl/./app/components/search/index.ts","webpack://hbl/./app/components/search/search-autocomplete.ts","webpack://hbl/./app/components/search/search-toggler.ts","webpack://hbl/./app/components/search/search.ts","webpack://hbl/./app/components/sidebar.ts","webpack://hbl/./app/components/tangram.ts","webpack://hbl/./app/components/text-mask.ts","webpack://hbl/./app/components/tile-slider.ts","webpack://hbl/./app/utilities/chart.ts","webpack://hbl/./app/utilities/detection.ts","webpack://hbl/./app/utilities/form.ts","webpack://hbl/./app/utilities/scroll-helper.ts","webpack://hbl/./app/utilities/storage.ts","webpack://hbl/./node_modules/@opten/animation/ease-in-out-quad/index.ts","webpack://hbl/./node_modules/@opten/animation/linear-tween/index.ts","webpack://hbl/./node_modules/@opten/collapse/index.ts","webpack://hbl/./node_modules/@opten/collapse/initializer/index.ts","webpack://hbl/./node_modules/@opten/common/new-guid/index.ts","webpack://hbl/./node_modules/@opten/common/wrap-function/index.ts","webpack://hbl/./node_modules/@opten/compiler/factory/index.ts","webpack://hbl/./node_modules/@opten/compiler/index.ts","webpack://hbl/./node_modules/@opten/compiler/metadata/component.ts","webpack://hbl/./node_modules/@opten/compiler/metadata/di.ts","webpack://hbl/./node_modules/@opten/compiler/reflector/index.ts","webpack://hbl/./node_modules/@opten/compiler/resolver/index.ts","webpack://hbl/./node_modules/@opten/compiler/util/decorators.ts","webpack://hbl/./node_modules/@opten/compiler/util/factories.ts","webpack://hbl/./node_modules/@opten/compiler/util/type.ts","webpack://hbl/./node_modules/@opten/cross-selling/box/index.ts","webpack://hbl/./node_modules/@opten/cross-selling/component/index.ts","webpack://hbl/./node_modules/@opten/cross-selling/helpers/index.ts","webpack://hbl/./node_modules/@opten/cross-selling/index.ts","webpack://hbl/./node_modules/@opten/dialog/dialog.ts","webpack://hbl/./node_modules/@opten/dialog/index.ts","webpack://hbl/./node_modules/@opten/dom/add-class/index.ts","webpack://hbl/./node_modules/@opten/dom/as-html-element/index.ts","webpack://hbl/./node_modules/@opten/dom/change-class/index.ts","webpack://hbl/./node_modules/@opten/dom/class-regex/index.ts","webpack://hbl/./node_modules/@opten/dom/create-node/index.ts","webpack://hbl/./node_modules/@opten/dom/first-by-class/index.ts","webpack://hbl/./node_modules/@opten/dom/get-class/index.ts","webpack://hbl/./node_modules/@opten/dom/get-css/index.ts","webpack://hbl/./node_modules/@opten/dom/get-offset/index.ts","webpack://hbl/./node_modules/@opten/dom/get-parent-with-class/index.ts","webpack://hbl/./node_modules/@opten/dom/get-parents-or-self/index.ts","webpack://hbl/./node_modules/@opten/dom/get-parents/index.ts","webpack://hbl/./node_modules/@opten/dom/get-selector-element-from-element/index.ts","webpack://hbl/./node_modules/@opten/dom/get-selector-from-element/index.ts","webpack://hbl/./node_modules/@opten/dom/get-styles/index.ts","webpack://hbl/./node_modules/@opten/dom/get-window-scroll-top/index.ts","webpack://hbl/./node_modules/@opten/dom/has-class/index.ts","webpack://hbl/./node_modules/@opten/dom/is-ancestor-of-class/index.ts","webpack://hbl/./node_modules/@opten/dom/is-html-element/index.ts","webpack://hbl/./node_modules/@opten/dom/remove-class/index.ts","webpack://hbl/./node_modules/@opten/dom/toggle-class/index.ts","webpack://hbl/./node_modules/@opten/events/dispatch-custom-event/index.ts","webpack://hbl/./node_modules/@opten/events/event-namespace-factory/index.ts","webpack://hbl/./node_modules/@opten/keycodes/index.ts","webpack://hbl/./node_modules/@opten/menu/component.ts","webpack://hbl/./node_modules/@opten/menu/index.ts","webpack://hbl/./node_modules/@opten/menu/menu-trigger.ts","webpack://hbl/./node_modules/@opten/menu/menu.ts","webpack://hbl/./node_modules/@opten/number/parse-css-unit/index.ts","webpack://hbl/./node_modules/@opten/overlay/index.ts","webpack://hbl/./node_modules/@opten/overlay/keyboard/overlay-keyboard-dispatcher.ts","webpack://hbl/./node_modules/@opten/overlay/overlay-options.ts","webpack://hbl/./node_modules/@opten/overlay/overlay.ts","webpack://hbl/./node_modules/@opten/overlay/position/connected-position-strategy.ts","webpack://hbl/./node_modules/@opten/overlay/position/connected-position.ts","webpack://hbl/./node_modules/@opten/overlay/position/global-position-strategy.ts","webpack://hbl/./node_modules/@opten/overlay/position/overlay-position-builder.ts","webpack://hbl/./node_modules/@opten/overlay/scroll/reposition-scroll-strategy.ts","webpack://hbl/./node_modules/@opten/reactive/debounce/index.ts","webpack://hbl/./node_modules/@opten/script/create-script/index.ts","webpack://hbl/./node_modules/@opten/script/get-script-by-src/index.ts","webpack://hbl/./node_modules/@opten/script/load-script/index.ts","webpack://hbl/./node_modules/@opten/scroll/scroll-to-element/index.ts","webpack://hbl/./node_modules/@opten/scroll/scroll-to-offset/index.ts","webpack://hbl/./node_modules/@opten/scroll/scroll-to/index.ts","webpack://hbl/./node_modules/@opten/select/index.ts","webpack://hbl/./node_modules/@opten/sidebar/index.ts","webpack://hbl/./node_modules/@opten/tooltip/index.ts","webpack://hbl/./node_modules/@opten/transition/add-transition-end-listener/index.ts","webpack://hbl/./node_modules/@opten/transition/get-transition-end-event-name/index.ts","webpack://hbl/./node_modules/@opten/url/remove-domain/index.ts","webpack://hbl/./node_modules/@opten/viewport/is-element-clipped-by-scrolling/index.ts","webpack://hbl/./node_modules/@opten/viewport/is-element-scrolled-outside-view/index.ts","webpack://hbl/./node_modules/chart.js/dist/Chart.js","webpack://hbl/./node_modules/clip-path/dist/clippath.min.js","webpack://hbl/./node_modules/core-js/es6/reflect.js","webpack://hbl/./node_modules/core-js/fn/object/assign.js","webpack://hbl/./node_modules/core-js/modules/_a-function.js","webpack://hbl/./node_modules/core-js/modules/_an-object.js","webpack://hbl/./node_modules/core-js/modules/_array-includes.js","webpack://hbl/./node_modules/core-js/modules/_bind.js","webpack://hbl/./node_modules/core-js/modules/_cof.js","webpack://hbl/./node_modules/core-js/modules/_core.js","webpack://hbl/./node_modules/core-js/modules/_ctx.js","webpack://hbl/./node_modules/core-js/modules/_defined.js","webpack://hbl/./node_modules/core-js/modules/_descriptors.js","webpack://hbl/./node_modules/core-js/modules/_dom-create.js","webpack://hbl/./node_modules/core-js/modules/_enum-bug-keys.js","webpack://hbl/./node_modules/core-js/modules/_export.js","webpack://hbl/./node_modules/core-js/modules/_fails.js","webpack://hbl/./node_modules/core-js/modules/_function-to-string.js","webpack://hbl/./node_modules/core-js/modules/_global.js","webpack://hbl/./node_modules/core-js/modules/_has.js","webpack://hbl/./node_modules/core-js/modules/_hide.js","webpack://hbl/./node_modules/core-js/modules/_html.js","webpack://hbl/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://hbl/./node_modules/core-js/modules/_invoke.js","webpack://hbl/./node_modules/core-js/modules/_iobject.js","webpack://hbl/./node_modules/core-js/modules/_is-object.js","webpack://hbl/./node_modules/core-js/modules/_iter-create.js","webpack://hbl/./node_modules/core-js/modules/_library.js","webpack://hbl/./node_modules/core-js/modules/_object-assign.js","webpack://hbl/./node_modules/core-js/modules/_object-create.js","webpack://hbl/./node_modules/core-js/modules/_object-dp.js","webpack://hbl/./node_modules/core-js/modules/_object-dps.js","webpack://hbl/./node_modules/core-js/modules/_object-gopd.js","webpack://hbl/./node_modules/core-js/modules/_object-gopn.js","webpack://hbl/./node_modules/core-js/modules/_object-gops.js","webpack://hbl/./node_modules/core-js/modules/_object-gpo.js","webpack://hbl/./node_modules/core-js/modules/_object-keys-internal.js","webpack://hbl/./node_modules/core-js/modules/_object-keys.js","webpack://hbl/./node_modules/core-js/modules/_object-pie.js","webpack://hbl/./node_modules/core-js/modules/_own-keys.js","webpack://hbl/./node_modules/core-js/modules/_property-desc.js","webpack://hbl/./node_modules/core-js/modules/_redefine.js","webpack://hbl/./node_modules/core-js/modules/_set-proto.js","webpack://hbl/./node_modules/core-js/modules/_set-to-string-tag.js","webpack://hbl/./node_modules/core-js/modules/_shared-key.js","webpack://hbl/./node_modules/core-js/modules/_shared.js","webpack://hbl/./node_modules/core-js/modules/_to-absolute-index.js","webpack://hbl/./node_modules/core-js/modules/_to-integer.js","webpack://hbl/./node_modules/core-js/modules/_to-iobject.js","webpack://hbl/./node_modules/core-js/modules/_to-length.js","webpack://hbl/./node_modules/core-js/modules/_to-object.js","webpack://hbl/./node_modules/core-js/modules/_to-primitive.js","webpack://hbl/./node_modules/core-js/modules/_uid.js","webpack://hbl/./node_modules/core-js/modules/_wks.js","webpack://hbl/./node_modules/core-js/modules/es6.object.assign.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.apply.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.construct.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.define-property.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.get.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.has.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack://hbl/./node_modules/core-js/modules/es6.reflect.set.js","webpack://hbl/./node_modules/moment/locale/af.js","webpack://hbl/./node_modules/moment/locale/ar-dz.js","webpack://hbl/./node_modules/moment/locale/ar-kw.js","webpack://hbl/./node_modules/moment/locale/ar-ly.js","webpack://hbl/./node_modules/moment/locale/ar-ma.js","webpack://hbl/./node_modules/moment/locale/ar-sa.js","webpack://hbl/./node_modules/moment/locale/ar-tn.js","webpack://hbl/./node_modules/moment/locale/ar.js","webpack://hbl/./node_modules/moment/locale/az.js","webpack://hbl/./node_modules/moment/locale/be.js","webpack://hbl/./node_modules/moment/locale/bg.js","webpack://hbl/./node_modules/moment/locale/bm.js","webpack://hbl/./node_modules/moment/locale/bn-bd.js","webpack://hbl/./node_modules/moment/locale/bn.js","webpack://hbl/./node_modules/moment/locale/bo.js","webpack://hbl/./node_modules/moment/locale/br.js","webpack://hbl/./node_modules/moment/locale/bs.js","webpack://hbl/./node_modules/moment/locale/ca.js","webpack://hbl/./node_modules/moment/locale/cs.js","webpack://hbl/./node_modules/moment/locale/cv.js","webpack://hbl/./node_modules/moment/locale/cy.js","webpack://hbl/./node_modules/moment/locale/da.js","webpack://hbl/./node_modules/moment/locale/de-at.js","webpack://hbl/./node_modules/moment/locale/de-ch.js","webpack://hbl/./node_modules/moment/locale/de.js","webpack://hbl/./node_modules/moment/locale/dv.js","webpack://hbl/./node_modules/moment/locale/el.js","webpack://hbl/./node_modules/moment/locale/en-au.js","webpack://hbl/./node_modules/moment/locale/en-ca.js","webpack://hbl/./node_modules/moment/locale/en-gb.js","webpack://hbl/./node_modules/moment/locale/en-ie.js","webpack://hbl/./node_modules/moment/locale/en-il.js","webpack://hbl/./node_modules/moment/locale/en-in.js","webpack://hbl/./node_modules/moment/locale/en-nz.js","webpack://hbl/./node_modules/moment/locale/en-sg.js","webpack://hbl/./node_modules/moment/locale/eo.js","webpack://hbl/./node_modules/moment/locale/es-do.js","webpack://hbl/./node_modules/moment/locale/es-mx.js","webpack://hbl/./node_modules/moment/locale/es-us.js","webpack://hbl/./node_modules/moment/locale/es.js","webpack://hbl/./node_modules/moment/locale/et.js","webpack://hbl/./node_modules/moment/locale/eu.js","webpack://hbl/./node_modules/moment/locale/fa.js","webpack://hbl/./node_modules/moment/locale/fi.js","webpack://hbl/./node_modules/moment/locale/fil.js","webpack://hbl/./node_modules/moment/locale/fo.js","webpack://hbl/./node_modules/moment/locale/fr-ca.js","webpack://hbl/./node_modules/moment/locale/fr-ch.js","webpack://hbl/./node_modules/moment/locale/fr.js","webpack://hbl/./node_modules/moment/locale/fy.js","webpack://hbl/./node_modules/moment/locale/ga.js","webpack://hbl/./node_modules/moment/locale/gd.js","webpack://hbl/./node_modules/moment/locale/gl.js","webpack://hbl/./node_modules/moment/locale/gom-deva.js","webpack://hbl/./node_modules/moment/locale/gom-latn.js","webpack://hbl/./node_modules/moment/locale/gu.js","webpack://hbl/./node_modules/moment/locale/he.js","webpack://hbl/./node_modules/moment/locale/hi.js","webpack://hbl/./node_modules/moment/locale/hr.js","webpack://hbl/./node_modules/moment/locale/hu.js","webpack://hbl/./node_modules/moment/locale/hy-am.js","webpack://hbl/./node_modules/moment/locale/id.js","webpack://hbl/./node_modules/moment/locale/is.js","webpack://hbl/./node_modules/moment/locale/it-ch.js","webpack://hbl/./node_modules/moment/locale/it.js","webpack://hbl/./node_modules/moment/locale/ja.js","webpack://hbl/./node_modules/moment/locale/jv.js","webpack://hbl/./node_modules/moment/locale/ka.js","webpack://hbl/./node_modules/moment/locale/kk.js","webpack://hbl/./node_modules/moment/locale/km.js","webpack://hbl/./node_modules/moment/locale/kn.js","webpack://hbl/./node_modules/moment/locale/ko.js","webpack://hbl/./node_modules/moment/locale/ku.js","webpack://hbl/./node_modules/moment/locale/ky.js","webpack://hbl/./node_modules/moment/locale/lb.js","webpack://hbl/./node_modules/moment/locale/lo.js","webpack://hbl/./node_modules/moment/locale/lt.js","webpack://hbl/./node_modules/moment/locale/lv.js","webpack://hbl/./node_modules/moment/locale/me.js","webpack://hbl/./node_modules/moment/locale/mi.js","webpack://hbl/./node_modules/moment/locale/mk.js","webpack://hbl/./node_modules/moment/locale/ml.js","webpack://hbl/./node_modules/moment/locale/mn.js","webpack://hbl/./node_modules/moment/locale/mr.js","webpack://hbl/./node_modules/moment/locale/ms-my.js","webpack://hbl/./node_modules/moment/locale/ms.js","webpack://hbl/./node_modules/moment/locale/mt.js","webpack://hbl/./node_modules/moment/locale/my.js","webpack://hbl/./node_modules/moment/locale/nb.js","webpack://hbl/./node_modules/moment/locale/ne.js","webpack://hbl/./node_modules/moment/locale/nl-be.js","webpack://hbl/./node_modules/moment/locale/nl.js","webpack://hbl/./node_modules/moment/locale/nn.js","webpack://hbl/./node_modules/moment/locale/oc-lnc.js","webpack://hbl/./node_modules/moment/locale/pa-in.js","webpack://hbl/./node_modules/moment/locale/pl.js","webpack://hbl/./node_modules/moment/locale/pt-br.js","webpack://hbl/./node_modules/moment/locale/pt.js","webpack://hbl/./node_modules/moment/locale/ro.js","webpack://hbl/./node_modules/moment/locale/ru.js","webpack://hbl/./node_modules/moment/locale/sd.js","webpack://hbl/./node_modules/moment/locale/se.js","webpack://hbl/./node_modules/moment/locale/si.js","webpack://hbl/./node_modules/moment/locale/sk.js","webpack://hbl/./node_modules/moment/locale/sl.js","webpack://hbl/./node_modules/moment/locale/sq.js","webpack://hbl/./node_modules/moment/locale/sr-cyrl.js","webpack://hbl/./node_modules/moment/locale/sr.js","webpack://hbl/./node_modules/moment/locale/ss.js","webpack://hbl/./node_modules/moment/locale/sv.js","webpack://hbl/./node_modules/moment/locale/sw.js","webpack://hbl/./node_modules/moment/locale/ta.js","webpack://hbl/./node_modules/moment/locale/te.js","webpack://hbl/./node_modules/moment/locale/tet.js","webpack://hbl/./node_modules/moment/locale/tg.js","webpack://hbl/./node_modules/moment/locale/th.js","webpack://hbl/./node_modules/moment/locale/tk.js","webpack://hbl/./node_modules/moment/locale/tl-ph.js","webpack://hbl/./node_modules/moment/locale/tlh.js","webpack://hbl/./node_modules/moment/locale/tr.js","webpack://hbl/./node_modules/moment/locale/tzl.js","webpack://hbl/./node_modules/moment/locale/tzm-latn.js","webpack://hbl/./node_modules/moment/locale/tzm.js","webpack://hbl/./node_modules/moment/locale/ug-cn.js","webpack://hbl/./node_modules/moment/locale/uk.js","webpack://hbl/./node_modules/moment/locale/ur.js","webpack://hbl/./node_modules/moment/locale/uz-latn.js","webpack://hbl/./node_modules/moment/locale/uz.js","webpack://hbl/./node_modules/moment/locale/vi.js","webpack://hbl/./node_modules/moment/locale/x-pseudo.js","webpack://hbl/./node_modules/moment/locale/yo.js","webpack://hbl/./node_modules/moment/locale/zh-cn.js","webpack://hbl/./node_modules/moment/locale/zh-hk.js","webpack://hbl/./node_modules/moment/locale/zh-mo.js","webpack://hbl/./node_modules/moment/locale/zh-tw.js","webpack://hbl/./node_modules/moment/moment.js","webpack://hbl/./node_modules/picturefill/dist/picturefill.js","webpack://hbl/./node_modules/text-mask-core/dist/textMaskCore.js","webpack://hbl/./node_modules/moment/locale|sync|/^/.*$","webpack://hbl/webpack/bootstrap","webpack://hbl/webpack/runtime/hasOwnProperty shorthand","webpack://hbl/webpack/runtime/node module decorator","webpack://hbl/./app/main.ts"],"names":["Anchor","Component","className","element","_handleCollapse","_animate","_cookieConsent","removeEventListener","_handleCookieConsent","_scroll","this","document","getElementsByClassName","addEventListener","check","window","_canScroll","sidebarPanel","getElementById","hasClass","closeElement","Array","from","click","setTimeout","hash","location","indexOf","querySelector","substring","getElement","getAttribute","target","getSelectorElementFromElement","api","Collapse","isOpen","show","offset","getOffset","top","parseCssUnit","getCss","getStickyOffset","Math","round","scrollTo","stickyElements","options","CookieConsent","_stickyElements","_options","approveClassName","showAfter","animationDuration","cookie","expirationInDays","secure","_attributeName","_cachedHeight","_boundResize","_handleResize","bind","_eventNamespaceFn","eventNamespaceFactory","_init","banner","_getBanner","_cookieKey","forEach","button","event","_handleClick","offsetHeight","start","distance","duration","complete","timeStart","timeElapsed","loop","time","style","height","easeInOutQuad","requestAnimationFrame","call","addClass","_setSticky","body","_setElements","remove","sticky","attributeName","hasAttribute","calculated","Number","removeAttribute","setAttribute","toString","_height","setCookie","preventDefault","_setCookie","parentElement","removeChild","_update","Error","date","Date","setDate","getDate","path","domain","getBoundingClientRect","input","name","Datepicker","observe","_locales","i18n","previousMonth","nextMonth","months","JSON","parse","weekdays","weekdaysShort","yearRange","moment","locale","Pikaday","field","format","onSelect","inputElement","id","value","createEvent","initEvent","dispatchEvent","Dialog","hasWall","getElementsByTagName","undefined","$","validator","$form","removeData","unobtrusive","one","e","Cookiebot","submitCustomConsent","submit","querySelectorAll","Select","classes","component","active","highlighted","disabled","iconHtml","_api","dialog","maxWidth","disableClose","open","_toggle","wrapper","FilterPage","isInitialPageLoad","pagingSize","page","language","selectors","content","selects","selectTag","tag","tagCategory","dropdown","dropdownToggle","tagsDropdown","searchText","searchButton","tagAll","tagAllActive","tagActive","resetAllActiveTagsElements","paging","pageBack","pageNext","pageJump","pageJumpAttribute","loading","contentLoading","contentYScroll","hidden","hasActiveTags","contentLocation","wrapperId","searchValueText","tagValue","scrollToTopAfterFiltering","hasStickyOffsetDesktop","wrapperElement","dataLanguage","documentElement","lang","length","init","filter","initContentFilter","contentElement","tags","tagsCategory","o","searchTextInput","allTags","toggleTag","searchTextButton","which","keyCode","loadFilterElements","search","searchValues","split","index","searchTextValue","decodeURIComponent","history","pushState","title","pathname","select","onChange","allTag","allTagClick","getParentWithClass","resetTags","resetAllActiveTags","updateSelectTag","that","newSelects","newTags","push","setPageDefault","setPageToDefault","dataSearch","getFilters","overflow","innerHTML","fetch","method","headers","then","response","contentType","get","includes","text","data","setPreviousNextJumpPageEvents","reinitFilter","picturefill","callbackAfterFilter","isPad","crossselling","navbar","cookieBannerHeight","parseInt","scrollToElement","currentTarget","pageStep","loadPreviousPage","loadNextPage","loadJumpPage","activeTags","getTagsFromLocationHash","filters","setActiveTagsClasses","setFilterPageHasActiveTags","removeClass","isTagActive","deactivateAllTag","isSelectOption","selectedIndex","addTagToFilters","activateAllTag","removeTagFromFilters","newHash","getTagsLocationHash","join","doActivateTag","deactivateActiveTags","activateTag","deactivateTag","deactivateActiveTag","activateActiveTag","selectMenu","selectedTag","toggleClass","getTagValue","tagValueIndex","getTagValueIndex","splice","allTagActive","dropdownToggleBtn","filterAll","indexFilter","GtmTrackerComponent","scriptElement","createElement","appendChild","InputFieldsFilled","_element","_checkValue","replace","tagName","valid","MapExtended","MapMarkerExtended","marker","draggable","screen","width","animation","google","maps","Animation","DROP","mapStyles","mapMarkerClasses","showMapMarkerClasses","hasMapMarkerClassesButtonIfMultiple","mapMarkerClassesButtonActiveClass","mapMarkerInfoClass","mapTypes","MapTypeId","ROADMAP","TERRAIN","SATELLITE","HYBRID","mapTypeControlStyle","MapTypeControlStyle","HORIZONTAL_BAR","fitToBounds","_mapMarkers","_currentInfoWindow","map","markerClass","markerElement","showHideMapMarkerClass","mapZoom","zoom","_bounds","LatLngBounds","mapOptions","center","LatLng","lat","lng","mapTypeControlOptions","mapTypeIds","Map","nameMap","styledMapName","styledMap","StyledMapType","set","setMapTypeId","markersClass","showMarker","markerClassInfo","createMarkerClass","fitBounds","addListenerOnce","setZoom","console","error","markerInfoData","latlng","mapMarkerIcon","mapMarkerWidth","mapMarkerHeight","mapMarkerOriginX","mapMarkerOriginY","mapMarkerAnchorX","mapMarkerAnchorY","mapMarkerInfo","createMarker","Marker","position","icon","size","Size","origin","Point","anchor","url","visible","extend","getPosition","infoWindow","InfoWindow","addListener","wasCurrentWindow","close","classList","contains","mapMarker","setVisible","PhotoswipeItem","el","PhotoswipeHtmlItem","html","node","createNode","toLowerCase","outerHTML","PhotoswipeImageItem","src","w","h","image","img","msrc","currentSrc","Photoswipe","_triggerElements","galleryId","items","_getItems","trigger","_open","item","embed","elements","getThumbBoundsFn","pageYScroll","getWindowScrollTop","rect","x","left","y","pswp","gallery","PhotoSwipe","PhotoSwipeUI_Default","listen","IFramePlayer","_boundClick","_buttonElement","_iFrameElement","play","player","Player","PrintPageComponent","printPage","print","Recaptcha3Validator","closest","siteKey","actionName","scriptUrl","culture","loadScript","catch","exc","form","grecaptcha","ready","timerFunction","execute","action","token","RecaptchaValidator","$captcha","recaptchaOnLoadCallback","render","callback","sitekey","$textarea","find","attr","css","display","border","margin","updateForm","on","getResponse","SelectComponent","key","toUTCString","cookies","getCookie","all","i","innerWidth","Breadcrumb","expandClassName","itemClassName","itemStaticClassName","initializedClassName","hiddenClassName","scrollToLabel","shrinkMode","shrinkCap","breakpoints","expanded","listElement","firstElementChild","itemElements","togglers","slice","link","href","_setFocus","_getItemTotalWidth","offsetWidth","_shrink","totalWidth","toggler","lastItem","cap","cut","_scrollToLabel","focus","selected","_updateScrollPosition","offsetLeft","scrollDistance","scrollLeft","_updateAria","end","_checkWidth","InvestmentSavingsCalculator","_loadingIndicator","_hasProposal","_proposalElement","_formElement","_fetch","canvas","xAxisData","_getValuesByElementName","yAxisData","_getDataset","createChart","log","values","getElementsByName","yearlyInvestments","yearlyProfits","label","_getLabelByElementName","backgroundColor","borderColor","_generateSingleInvestmentData","mapFields","_createHiddenInput","type","formData","FormData","append","ok","res","result","succeeded","status","attempt","hide","_onChangeEvent","initializeContentForm","_show","_hide","formElementWrappers","_formSendCalculationsElementWrapper","formElements","_formSendCalculationsElement","handleSubmitSendCalculationsForm","defaultRangeValidator","methods","range","param","checked","serialize","credentials","linearTween","_apply","_createChart","mortgageId","proposalId","others","spanIds","RetirementCalculator","yearlyBasicProfits","CourseForm","$element","$teamMemberWrapper","$addTeamMember","$removeTeamMember","maxParticipantsData","template","appendTo","updateIdentifiers","updateAddButton","reinitSelect","first","maxParticipants","parent","nextElementSibling","toReplace","$teamMember","each","elem","itemIndex","$item","prop","CrossSelling","gutterBottom","crossSelling","gutterTop","PAD_WIDTH","CustomerPagesFullPreview","_handleMouseEnter","_backdropElement","svg","_redrawSvg","parentNode","_createSvg","_handleMouseLeave","_selectElement","_elements","isElementScrolledOutsideView","FilterMixitup","classNames","block","elementContainer","elementFilter","elementSort","elementMultimix","elementToggle","modifierActive","modifierDisabled","modifierFailed","delineatorElement","delineatorModifier","load","sort","mixElement","enable","effects","effectsIn","effectsOut","easing","applyPerspective","perspectiveDistance","perspectiveOrigin","queue","queueLimit","animateResizeContainer","animateResizeTargets","staggerSequence","reverseOut","nudge","clampHeight","clampWidth","_wrapperElement","mixitup","control","FilterPageBlog","ComponentRef","activeFromStart","tangrammEntries","tangrammElements","jumpToFilter","filterIsAnchor","scrollHeight","FormExtended","dropzone","dropzoneWrappers","initFileUpload","files","previewTemplate","previewsContainer","fileItem","dropzoneElement","Dropzone","paramName","parallelUploads","uploadMultiple","autoProcessQueue","clickable","acceptedFiles","processQueue","Header","_marginTop","_handleBoxShadow","_handleScroll","marginTop","ScrollMagicController","ScrollMagic","Controller","MagicScrollComponent","triggerElement","scene","toUpperCase","initSceneStickyColumn","initSceneTangram","header","tangramWrapper","tangramContainer","tangramContent","tangramElement","tangramSlide","scenes","isMobile","setSceneTangram","debounce","destroy","headerHeight","getScrollMagicHeaderHeight","durationContainer","fullHeightContainer","isAnimatingClassToToggle","triggerHook","innerHeight","mainMagicScroll","mainMagicScrollScene","Scene","setPin","addTo","tangramContainerScene","setClassToggle","tangramWrapperStickyScene","pushFollowers","containerWidthPart","targetSpacingLeft","scalingSize","setTween","TweenMax","fromTo","scaleX","scaleY","ease","Linear","delay","tangramSlideContent","originalClipPath","targetClipPath","clipPath","proxySlideContent","tangramSlideContentScene","onUpdate","tangramSlideScene","scrollDirection","removeClassToggle","targetElements","stickyColumnScene","setSceneStickyColumn","smallerElement","smallestHeight","bounds","triggerBounds","getComputedStyle","marginBottom","headerElement","isDesktop","MapExtendedComponent","consent","marketing","mapExtended","initMap","showMapMarkerClassesList","mapMarkerInformations","v","a","mapStylesAll","getMapStyles","featureType","elementType","stylers","color","visibility","saturation","lightness","gamma","backdropElement","addTransitionEndListener","MortgageCalculator","ChildrenRef","_ignoreRead","ignoreReadMortgage","_cookieChecked","_tabElements","_typeSelect","_selects","htmlSelectElement","tab","_collapse","_saveCookie","Event","checkboxCookie","_handleCookie","checkbox","getStorage","MortgageFundingProposalFormKey","json","setFieldsFromJson","propName","getFields","setStorage","stringify","selector","MortgageCalculatorCookieSave","MortgageCalculatorCookieDelete","deleteStorage","MortgageCalculatorForm","_ignoreWrite","ignore","_save","NavbarMegaDropdown","Search","toggle","_handleBackdropClick","_dropdownElement","_dropdownElements","container","stickyOffset","maxHeight","wasOpen","_isOpen","oldWindowWidth","_currentWindowWidth","resizedBetweenMobileAndDesktop","changedSizeBetweenMobileAndDesktop","_removeDesktopListener","_setContainerHeight","_addDesktopListeners","anyOpen","hideMegaDropdown","transition","showMegaDropdown","_search","NavbarToggler","Navbar","ComponentRefs","_navbar","blur","_dropdowns","_handleNavbarHeaderClick","_scrollableElements","scrollable","_removeScrollable","_setScrollable","_mainScrollElement","_header","_navbar1stLevelElements","_navbar2ndLevelElements","_navbarTogglerElements","_navbarHeaderElements","children","_togglerElements","_click","_addMobileListeners","_removeMobileListeners","lockScrollbar","unlockScrollbar","collapseElement","t","titleElement","NotificationComponent","backdrop","setSessionCookie","ParallaxSliderComponent","swiper","Swiper","parallax","effect","fadeEffect","crossFade","speed","allowTouchMove","slides","slide","isLastSlide","ev","progress","slideTo","stickyScene","clientHeight","update","SearchAutocompleteComponent","currentFocus","autocompleteListItems","autocompleteSections","searchField","searchForm","autocompleteList","searchSectionFields","searchSectionField","handleAutocompleteSectionClicked","_handleSearchFieldInput","handleSearchFieldKeyDown","cleanAutocompleteList","handleAutocompleteListItemClicked","setAutocompleteListElementActive","itemInput","SearchToggler","updateSearchTop","Sidebar","_cacheMarginBottom","sidebar","bodyElement","sidebarElement","styles","getStyles","calculatedMarginBottom","links","Tangram","_countSliderElements","_currentSlide","sliderElement","sliderLinkElements","transitionEnd","speedAttribute","_sliderElements","dataSpeed","_svg","_sliderLinkElements","clearInterval","_interval","setInterval","changeSlide","minus","minusRegExp","nonDigitsRegExp","number","digitRegExp","caretTrap","TextMaskCurrency","mask","createTextMaskInputElement","createNumberMask","guide","placeholderChar","keepCharPositions","prefix","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","decimalSymbol","decimalLimit","requireDecimal","allowNegative","allowLeadingZeroes","integerLimit","prefixLength","suffixLength","thousandsSeparatorSymbolLength","rawValue","rawValueLength","concat","isNegative","substr","integer","fraction","indexOfLastDecimal","lastIndexOf","hasDecimal","convertToMask","thousandsSeparatorRegex","numberOfThousandSeparators","match","RegExp","addThousandsSeparator","strNumber","char","test","n","TileSliderComponent","slidesPerView","spaceBetween","pagination","displayYAxis","myOptions","scales","yAxes","ticks","Chart","getContext","labels","datasets","_fontColor","_fontFamily","handleResize","chart","responsive","maintainAspectRatio","layout","padding","right","bottom","showTooltips","tooltips","enabled","cornerRadius","bodyFontFamily","bodyFontColor","bodyFontStyle","titleFontColor","titleFontStyle","titleFontFamily","callbacks","tooltipItem","datasetIndex","yLabel","xAxes","fontFamily","fontSize","lineHeight","fontColor","fontStyle","gridLines","userCallback","point","hitRadius","line","borderWidth","legend","onResize","fields","trim","datepicker","getDatepicker","has","Object","keys","String","textarea","scroll","clampScroll","reduce","pv","cv","localStorage","getItem","setItem","removeItem","CollapseComponent","collapse","activeClass","activeParentClass","animateProp","collapsingClass","componentClass","showClass","showClassDesktop","desktopWidth","transitionDuration","isHideable","closeSiblings","useShowClassDesktop","dataParentSelector","dataTargetSelector","dataToggleSelector","hrefSelector","isTransitioning","eventNamespaceFn","handleClick","getInstance","triggers","outerWidth","actives","collapseInstance","_handleShow","_handleClose","_addAriaAndCollapsedClass","create","c","r","random","baseFn","extendFn","apply","components","rootElement","observables","componentType","resolver","resolve","safeRootElement","compiler","compile","MutationObserver","mutations","componentInitializer","mutation","addedNodes","isHTMLElement","asHTMLElement","comps","childList","subtree","reflector","Reflector","Resolver","Compiler","componentCache","constructor","queries","query","nodes","descendants","cache","acc","val","f","isType","onInit","makeDecorator","createComponent","makeMetadataFactory","Query","makePropDecorator","ChildRef","typeOrFunc","parentCtor","getParentCtor","ownAnnotations","_ownAnnotations","annotations","propMetadata","parentPropMetadata","ownPropMetadata","_ownPropMetadata","decorators","hasOwnProperty","ANNOTATIONS","PROP_METADATA","ctor","parentProto","getPrototypeOf","prototype","QUERY_METADATA_IDENTIFIERS","typeMetadata","metadata","findLast","metadataName","propertyMetadata","_mergeWithPropertyMetadata","some","_merge","mergedQueries","propertyName","_getQueryMetadata","q","read","arr","condition","props","parentClass","chainFn","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","args","annotationInstance","typeDecorator","cls","defineProperty","PropDecoratorFactory","decoratorInstance","metaName","meta","unshift","factory","isTypeOf","obj","Type","Function","CrossSellingBox","selectorBody","selectorToggle","before","toggleElement","_setData","stickPosition","maxTopMarginMove","currentHeight","state","isFixed","isExpanded","offsetTop","box","fixed","computed","scrolled","_handleDesktopScroll","_data","scrollTop","_handleResizeChange","cloneElement","_cloneElement","paddingLeft","_parentElement","paddingFull","minHeight","_getBoxes","_boxes","_scrapElement","cloneNode","_handleBreakpointChange","_disableListeners","_destroy","_setDesktopListeners","boxes","boxElement","parentHeight","scrapValue","_handleCollapsibleLink","_updateBox","_checkScrapValue","_updateContainerState","_updateBoxHeight","_updateBoxTop","max","min","_toggleBox","_collapseBox","_expandBox","_updateScrap","animateCss","_collapseAllOpenedBoxes","_getAllBoxesHeight","targetHeight","difference","dialogOpen","hasBackdrop","createOverlay","addListeners","overlayRef","portalElement","overlay","getOverlayOptions","afterOpened","beforeClose","detachBackdrop","afterClosed","dispose","backdropClick","onKeyboardEvent","KEYCODES","ESCAPE","dialogSettings","OverlayOptions","positionStrategy","OverlayPositionBuilder","global","minWidth","backdropClassName","getClass","add","classRegexCache","getPropertyValue","clientRect","ownerDocument","documentTop","pageYOffset","clientTop","documentLeft","pageXOffset","clientLeft","firstByClass","getParents","getParentsOrSelf","parents","attribute","fallbackHref","getSelectorFromElement","view","defaultView","opener","classRegex","includeSelf","nodeType","HTMLElement","nodeName","removeClassFactory","regex","changeClass","eventName","CustomEvent","namespace","dispatchCustomEvent","DOWN","ENTER","SPACE","UP","MenuTriggerComponent","menuTrigger","MenuTrigger","stopPropagation","menuOpen","defaults","menuElementSelector","menuElement","menu","Menu","lazyContent","updatePortal","scrollStrategy","RepositionScrollStrategy","_getPosition","_subscribeToPositions","onDetached","xPosition","originX","originFallbackX","yPosition","overlayY","overlayFallbackY","originY","originFallbackY","overlayX","overlayFallbackX","overlapTrigger","connectedTo","connectTo","withOffsetY","withFallbackPosition","onPositionChange","change","posX","connectionPair","posY","transformOrigin","getMenuContent","unit","units","u","parsed","OverlayKeyboardDispatcher","attachedOverlays","keydownListener","_selectOverlayFromEvent","isAttached","_detach","overlayElement","Overlay","attached","keyboardDispatcher","uuid","newGuid","attach","overlayContainerElement","insertBefore","lastElementChild","overlayClassName","backdropToDetach","pointerEvents","sizeConfig","_updateElementSize","_attach","updatePosition","beforeOpen","disable","_attachBackdrop","onAttached","hasAttached","detach","formatCssUnit","isAncestorOfClass","ConnectedPositionStrategy","originPos","overlayPos","offsetX","offsetY","scrollables","preferredPositions","applied","positionLocked","boundResizeChange","pane","lastConnectedPosition","recalculateLastPosition","_validatePositions","fallbackPoint","fallbackPosition","originRect","overlayRect","viewportSize","pos","originPoint","_getOriginConnectionPoint","overlayPoint","_getOverlayPoint","fitsInViewport","_setElementPosition","visibleArea","lastPosition","ConnectionPositionPair","isLocked","positions","originStartX","_getStartX","originEndX","_getEndX","overlayStartX","overlayStartY","leftOverflow","rightOverflow","topOverflow","bottomOverflow","_subtractOverflows","originBounds","overlayBounds","scrollContainerBounds","s","isOriginClipped","isElementClippedByScrolling","isOriginOutsideView","isOverlayClipped","isOverlayOutsideView","verticalStyleProperty","horizontalStyleProperty","clientWidth","p","scrollableViewProperties","_getScrollVisibility","positionChange","ConnectedOverlayPositionChange","overflows","currentValue","currentOverflow","pair","validateHorizontalPosition","validateVerticalPosition","property","GlobalPositionStrategy","cssPosition","topOffset","bottomOffset","leftOffset","rightOffset","alignItems","justifyContent","getOptions","updateSize","parentStyles","marginLeft","marginRight","elementRef","config","handleScroll","throttle","scrollThrottle","autoClose","parentRects","func","wait","immediate","timeout","context","arguments","later","callNow","clearTimeout","onerror","async","onload","removeLoadingScript","loadingScriptWindow","loadingScripts","scripts","currentScriptElement","removeDomain","Promise","reject","script","getScriptBySrc","wrapFunction","newScript","createScript","head","scrollToOffset","animationFunction","b","d","Window","Option","textContent","_disabled","_text","selectElement","panelOpen","_getSelectedIndex","activeIndex","triggerRect","_createOverlay","_calculateOverlayPosition","_highlightCorrectOption","_scrollActiveOptionIntoView","_shouldForward","option","tabIndex","insertAdjacentHTML","_render","_handleKeydown","_emit","delta","_updateActiveItem","_handleActiveIndex","panelHTML","_getOverlayOptions","_onPanelDone","_calculateOverlayOffsetX","optionElements","currentOption","_createPositionStrategy","primaryPosition","strategy","withOffsetX","shouldForwardEvent","newValue","newLabel","_getOptionIndex","arrowHtml","current","itemHeight","_getItemHeight","scrollOffset","panelTop","_getPanelMaxHeight","panelHeight","maxScroll","selectedOptionOffset","scrollBuffer","_calculateOverlayScroll","_calculateOverlayOffsetY","_checkOverlayWithinViewport","paddingWidth","_getPanelToViewportPadding","topSpaceAvailable","bottomSpaceAvailable","panelHeightTop","abs","panelHeightBottom","_adjustPanelUp","_adjustPanelDown","_getOriginBasedOnOption","distanceBelowViewport","distanceAboveViewport","optionHeightAdjustment","optimalScrollPosition","maxOptionsDisplayed","floor","closeClassName","_lastScrollPosition","_navElement","_linkElements","_adjustElement","_close","_adjustOverlay","_getBackdrop","_resetOverlay","_isBodyOverflowing","scrollbarWidth","_getScrollbarWidth","_setScrollbarOfElement","paddingRight","paddingTop","_setScrollbar","_createBackdrop","_resetScrollbar","_getStyleName","actual","_resetScrollbarOfElement","div","Tooltip","_tooltipOpen","_cachedTitleTag","_overlayRef","_getOrigin","overlayPosition","_getOverlayPosition","main","fallback","fallbackDuration","called","listener","transitionEndEventName","getTransitionEndEventName","transitions","WebkitTransition","scrollContainers","scrollContainerRect","clippedAbove","clippedBelow","clippedLeft","clippedRight","containerBounds","outsideAbove","outsideBelow","outsideLeft","outsideRight","colorName","conversions","fn","module","reverseKeywords","convert","exports","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","gray","model","l","g","rdif","gdif","bdif","diff","diffc","k","reversed","currentClosestKeyword","currentClosestDistance","Infinity","pow","z","t1","t2","t3","smin","lmin","hi","sl","vmin","wh","bl","ratio","m","y2","x2","z2","atan2","PI","sqrt","hr","cos","sin","ansi","mult","rem","string","colorString","hue","chroma","mg","pure","createCommonjsModule","to","wrapConversion","toModel","graph","cur","conversion","fromModel","routes","models","len","buildGraph","pop","adjacents","adjacent","deriveBFS","route","wrappedFn","wrapRounded","raw","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","parseFloat","scale","isNaN","num","str","Color","setValues","red","whiteness","cyan","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","green","blue","saturationv","blackness","magenta","yellow","black","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","level","contrastRatio","dark","light","negate","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","clone","source","spaces","maxes","getValues","space","charAt","capped","chans","sname","svalues","chartjsColor","isValidKey","helpers","noop","uid","isNullOrUndef","isArray","isObject","isFinite","valueOrDefault","defaultValue","valueAtIndexOrDefault","thisArg","loopable","reverse","arrayEquals","a0","a1","ilen","v0","v1","klen","_merger","tval","sval","merge","_mergerIf","mergeIf","sources","merger","assign","dst","inherits","extensions","me","ChartElement","Surrogate","__super__","_deprecated","scope","previous","warn","helpers_core","callCallback","array","fromIndex","getValueOrDefault","getValueAtIndexOrDefault","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clear","ctx","clearRect","roundedRect","radius","moveTo","arc","closePath","drawPoint","rotation","xOffset","yOffset","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","fill","stroke","_isPointInArea","area","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","matches","toPadding","_parseFont","globalDefaults","font","family","toFontString","inputs","info","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","helpers$1","math","rtl","getRtlAdapter","rectX","setWidth","textAlign","align","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","Element","configuration","initialize","_type","pivot","_view","_model","_start","c0","c1","interpolate","tooltipPosition","hasValue","isNumber","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","onComplete","core_animations","animations","request","addAnimation","lazy","startTime","now","animating","cancelAnimation","findIndex","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","listeners","DatasetController","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","dataset","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","reset","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","configurable","enumerable","base","object","resyncElements","_configure","_config","_cachedDataOpts","easingValue","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","hover","readKey","datasetOpts","custom","elementOptions","cached","dataIndex","freeze","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","prev","numMeta","numData","insertElements","count","onDataPush","onDataPop","onDataShift","shift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","borderAlign","element_arc","inLabelRange","mouseX","vm","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","fullCircles","circumference","fillStyle","strokeStyle","inner","lineWidth","lineJoin","drawFullCircleBorders","drawBorder","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","points","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","skip","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","pointStyle","element_point","mouseY","inXRange","inYRange","chartArea","defaultColor$2","isVertical","getBarBounds","x1","y1","half","swap","orig","v2","skipX","skipY","rectangle","borderSkipped","element_rectangle","rects","maxW","maxH","edge","horizontal","parseBorderSkipped","parseBorderWidth","outer","boundingRects","fillRect","Arc","Line","Rectangle","deprecated","valueOrDefault$3","mode","offsetGridLines","bar","categoryPercentage","barPercentage","controller_bar","scaleOpts","stack","barThickness","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","ruler","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","last","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","pixels","getPixelForValue","_startPixel","_endPixel","stackCount","imeta","ivalue","stackLength","_parseValue","curr","next","percent","chunk","computeFlexCategoryTraits","thickness","_length","getTicks","getPixelForTick","computeMinSampleSize","computeFitCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","dataPoint","xLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","NaN","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","list","createTextNode","generateLabels","controller","onClick","legendItem","cutoutPercentage","dataLabel","controller_doughnut","getRingIndex","ringIndex","j","isDatasetVisible","opts","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","minX","minY","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","axis","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","pt","cubicInterpolationMode","splineCurveMonotone","splineCurve","nextItem","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","handler","jlen","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","deltaX","deltaY","indexMode","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","params","newWidth","newHeight","getPadding","boxPadding","outerHeight","sizes","getMargins","fitBoxes","refit","changed","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","availableWidth","availableHeight","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","handleMaxPadding","stylesheet","__proto__","CSS_SIZE_MONITOR","CSS_PREFIX","CSS_RENDER_MONITOR","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","supports","passive","removeListener","nativeEvent","createDiv","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","root","getRootNode","rootNode","expando","containsStyles","injectCSS","host","acquireContext","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","initCanvas","releaseContext","proxies","fromNativeEvent","ticking","resizer","maxSize","expand","shrink","_reset","onScroll","createResizer","proxy","renderProxy","animationName","reflow","offsetParent","watchForRender","firstChild","addResizeListener","unwatchForRender","addEvent","removeEvent","implementation","platform","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","idx","getAll","notify","hook","descriptor","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleSpacing","titleMarginBottom","titleAlign","bodySpacing","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","_bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","opacity","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","lines","getBeforeBody","getBody","bodyItems","bodyItem","after","getAfterBody","getFooter","indexScale","valueScale","existingModel","_active","alignment","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","dataPoints","tooltip","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","lf","rf","olf","orf","yf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","onHover","responsiveAnimationDuration","construct","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","stop","silent","getMaximumWidth","getMaximumHeight","newSize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","order","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","abstract","DateAdapter","types","configMerge","scaleMerge","formats","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","toFixed","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","parseTickFontOptions","minor","major","nonSkipped","ticksToFilter","filtered","spacing","majorStart","majorEnd","tick","ceil","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","paddingBottom","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","increment","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","widest","highest","toDegrees","scaleLabelOpts","gridLineOpts","isBottom","tickFonts","firstLabelSize","lastLabelSize","widestLabelSize","highestLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetRight","labelWidth","handleMargins","isFullWidth","caches","tickFont","nestedLabel","widths","heights","offsets","gc","valueAt","gcLen","garbageCollect","computeLabelSizes","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","maxTicksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","sign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","maxTicks","stepSize","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","extra","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","MAX_SAFE_INTEGER","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","getMin","getMax","interpolate$1","table","skey","tkey","mid","i0","i1","lo","lookup","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","adapters","displayFormats","timestamp","labelsAdded","timestamps","dataLabels","out","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","unitStepSize","weekday","isoWeekday","generate","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","tooltipFormat","datetime","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","displayFormat","category","radialLinear","FORMATS","_id","valueOf","amount","filler","propagate","mappers","boundary","decodeFill","computeBoundary","cx","cy","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","p1","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","ci","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","cursor","alignmentOffset","dimension","blockSize","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","collection","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","srcElement","boundingRect","touches","clientX","clientY","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","ch","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","animationService","Interaction","scaleService","Ticks","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","require","createElementNS","setAttributeNS","replaceChild","webkitClipPath","navigator","userAgent","applyClipPath","jQuery","ClipPath","it","TypeError","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","O","aFunction","invoke","arraySlice","factories","F","partArgs","bound","core","version","__e","is","redefine","$export","own","IS_FORCED","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","S","expProto","U","W","R","exec","self","__g","dP","createDesc","un","cof","propertyIsEnumerable","setToStringTag","IteratorPrototype","Constructor","NAME","DESCRIPTORS","getKeys","gOPS","pIE","toObject","IObject","$assign","A","Symbol","K","T","aLen","getSymbols","isEnum","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","defineProperties","gOPD","getOwnPropertyDescriptor","$keys","hiddenKeys","getOwnPropertyNames","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","gOPN","Reflect","ownKeys","bitmap","writable","SRC","$toString","TO_STRING","TPL","safe","isFunction","proto","setPrototypeOf","buggy","def","TAG","stat","shared","SHARED","store","copyright","toInteger","defined","px","USE_SYMBOL","rApply","fApply","thisArgument","argumentsList","L","fails","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","instance","propertyKey","attributes","deleteProperty","desc","Enumerate","iterated","_t","_i","_k","done","enumerate","getProto","receiver","$isExtensible","$preventExtensions","preventExtensions","setProto","V","existingDescriptor","ownDesc","defineLocale","monthsShort","weekdaysMin","meridiemParse","isPM","meridiem","hours","minutes","isLower","longDateFormat","LT","LTS","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","ss","mm","hh","dd","M","MM","yy","dayOfMonthOrdinalParse","ordinal","dow","doy","define","pluralForm","plurals","pluralize","withoutSuffix","isFuture","weekdaysParseExact","postformat","symbolMap","1","2","3","4","5","6","7","8","9","0","preparse","numberMap","suffixes","70","80","20","50","100","10","30","60","90","relativeTimeWithPlural","forms","standalone","isFormat","period","ww","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutationTable","softMutation","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","ll","lll","llll","output","plural","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","abbr","until","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","separator","days","12","13","numbersNouns","numberNoun","hundred","ten","word","numberAsNoun","hm","processHoursFunction","nominative","accusative","genitive","hookCallback","hooks","hasOwnProp","isObjectEmpty","isUndefined","isDate","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","_isValid","flags","parsedParts","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","fun","momentProperties","updateInProgress","copyConfig","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","Moment","updateOffset","isMoment","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","arg","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","lastIndex","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","isLeapYear","absFloor","toInt","argumentForCoercion","coercedNumber","makeGetSet","keepTime","set$1","daysInMonth","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","matched","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","daysInYear","parseTwoDigitYear","getSetYear","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","locales","localeFamilies","commonPrefix","arr1","arr2","minl","normalizeLocale","loadLocale","oldLocale","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","monthStr","dayStr","hourStr","minuteStr","secondStr","weekdayStr","parsedInput","getDay","checkWeekday","obsOffset","militaryOffset","numOffset","calculateOffset","setUTCMinutes","getUTCMinutes","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","currentDateArray","weekYear","temp","weekdayOverflow","curWeek","GG","E","createLocal","_week","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","isPm","meridiemFixWrap","erasConvertYear","prepareConfig","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","score","configFromStringAndArray","createFromInputFallback","configFromString","dayOrDate","configFromObject","configFromInput","isUTC","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","weeks","isoWeek","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","matcher","parts","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","invalid","subtract","isString","isMomentInput","arrayTest","dataTypeTest","isNumberOrStringArray","objectTest","propertyTest","properties","isMomentInputObject","isCalendarSpec","monthDiff","wholeMonthDiff","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getter","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","erasNameRegex","erasNarrowRegex","erasParse","_eraYearOrdinalRegex","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","toArray","toDate","toISOString","keepOffset","inspect","zone","isLocal","for","unix","creationData","eraName","eraNarrow","eraAbbr","eraYear","dir","isoWeeks","weekInfo","weeksInWeekYear","isoWeeksInYear","isoWeeksInISOWeekYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","array1","array2","dontConvert","lengthDiff","diffs","compareArrays","proto$1","get$1","setter","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","_eras","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","argWithSuffix","argThresholds","withSuffix","th","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","timer","dummySrc","fixRespimg","findPictureImgs","mq","ua","HTMLPictureElement","picture","_pfLastSize","imgs","matchMedia","srcset","readyState","eminpx","alwaysCheckWDescriptor","evalId","pf","isSupportTestReady","getImgAttr","setImgAttr","removeImgAttr","docElem","algorithm","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","capture","attachEvent","memoize","isSpace","regLength","buildStr","image2","width1","isDomReady","regReady","run","timerId","lastClientWidth","evalCSS","parsedLength","setResolution","candidate","sizesattr","cWidth","calcListLength","opt","plen","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","candidates","parseSet","makeUrl","hasFeature","ns","supSrcset","supSizes","supPicture","setSize","matchesMedia","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","currentDescriptor","inputLength","parseDescriptors","lastChar","intVal","floatVal","pError","has1x","tokenize","parseSrcset","getEmValue","originalHTMLCSS","cssText","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","regexCssLengthWithUnits","regexCssCalc","chrctr","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","imageData","dpr","sets","setSrcToCur","setSrc","origWidth","getSet","parseSets","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","getAllSourceElements","supported","extreme","evaled","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","vw","vh","em","fillImgs","_","typeUri","Image","detectTypeSupport","loaded","__esModule","default","strFunction","previousConformedValue","previousPlaceholder","currentCaretPosition","conformedValue","placeholder","indexesOfPipedChars","caretTrapIndexes","C","N","J","H","Q","iterator","processCaretTraps","maskWithoutCaretTraps","convertMaskToPlaceholder","isNew","I","D","someCharsRejected","isNil","indexes","activeElement","setSelectionRange","pipe","showMask","selectionEnd","rejected","webpackContext","req","webpackContextResolve","__webpack_require__","code","__webpack_module_cache__","moduleId","__webpack_modules__","nmd","paths","FormFieldAccept","connectionIsSecure","breadcrumb","MOBILE_WIDTH","AccordionHeader","MortgageFundingProposalForm"],"mappings":"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","file":"Scripts/main.js","sourcesContent":["import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { getOffset } from '@opten/dom/get-offset';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { getStickyOffset } from '../../Opten.HypothekarbankLenzburg.Web.Static/app/utilities/scroll-helper';\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\n// todo: way to bind it do data-anchor?\r\n@Component({ className: 'js-anchor' })\r\nexport class Anchor implements OnInit {\r\n private _cookieConsent: HTMLElement;\r\n\r\n\r\n constructor(private element: HTMLElement) {\r\n this._cookieConsent = document.getElementsByClassName(\r\n 'js-cookie-consent'\r\n )[0] as HTMLElement;\r\n // check if we have a cookie consent (animation)\r\n if (this._cookieConsent) {\r\n // wait till cookie has animated\r\n this._cookieConsent.addEventListener(\r\n 'shown.hbl.cookie-consent',\r\n this._handleCookieConsent\r\n );\r\n }\r\n }\r\n\r\n onInit() {\r\n this.check();\r\n window.addEventListener('hashchange', () => this.check());\r\n window.addEventListener('popstate', () => this.check());\r\n\r\n }\r\n\r\n check() {\r\n if (this._canScroll()) {\r\n\r\n /*if (this._cookieConsent) {// check if we have a cookie consent (animation)\r\n // wait till cookie has animated\r\n this._cookieConsent.addEventListener(\r\n 'shown.hbl.cookie-consent',\r\n this._handleCookieConsent\r\n );\r\n } else {*/\r\n // otherwise just scroll to the element\r\n var sidebarPanel = document.getElementById('c-sidebar-panel');\r\n if (sidebarPanel && hasClass(sidebarPanel, '--collapsed') == false) {\r\n var closeElement = Array.from(document.getElementsByClassName('js-sidebar-close')) as Array;\r\n if (closeElement) {\r\n closeElement[0].click();\r\n setTimeout(() => {\r\n this._scroll();\r\n }, 650);\r\n }\r\n }\r\n else {\r\n this._scroll();\r\n }\r\n /*}*/\r\n }\r\n }\r\n\r\n private _canScroll(): boolean {\r\n const hash = window.location.hash;\r\n\r\n return hash && hash.indexOf('#anchor-') !== -1;\r\n }\r\n\r\n private getElement(): HTMLElement {\r\n if (this._canScroll()) {\r\n return this.element.querySelector(\r\n `[data-anchor='${window.location.hash.substring(1)}']`\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _scroll() {\r\n const element = this.getElement();\r\n\r\n if (element) {\r\n // check if it's an accordion element, so we can open it\r\n if (element.getAttribute('data-toggle') === 'collapse') {\r\n const target = getSelectorElementFromElement(\r\n element,\r\n 'data-target',\r\n true\r\n );\r\n\r\n if (target) {\r\n const api = new Collapse(target);\r\n\r\n // check if the collapse is already open\r\n // because then the shown event might not be triggered!\r\n if (api.isOpen()) {\r\n this._animate();\r\n } else {\r\n target.addEventListener(\r\n 'shown.opten.collapse',\r\n this._handleCollapse\r\n );\r\n\r\n api.show();\r\n }\r\n } else {\r\n // fallback\r\n this._animate();\r\n }\r\n } else {\r\n // otherwise just scroll to the element...\r\n this._animate();\r\n }\r\n }\r\n }\r\n\r\n private _animate() {\r\n const element = this.getElement();\r\n\r\n if (element) {\r\n let offset = getOffset(element).top();\r\n\r\n offset += parseCssUnit(getCss(element, 'margin-top')) * -1;\r\n offset += getStickyOffset() * -1;\r\n\r\n offset = Math.round(offset);\r\n\r\n window.scrollTo(0, offset);\r\n }\r\n }\r\n\r\n private _handleCollapse = () => {\r\n this._animate();\r\n\r\n this._cookieConsent.removeEventListener(\r\n 'shown.opten.collapse',\r\n this._handleCollapse\r\n );\r\n }\r\n\r\n private _handleCookieConsent = () => {\r\n this._scroll();\r\n\r\n this._cookieConsent.removeEventListener(\r\n 'shown.hbl.cookie-consent',\r\n this._handleCookieConsent\r\n );\r\n }\r\n}\r\n","import { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { easeInOutQuad } from '@opten/animation/ease-in-out-quad';\r\nimport { eventNamespaceFactory } from '@opten/events/event-namespace-factory';\r\nimport { setCookie } from '../utilities/cookie';\r\n\r\nexport class CookieConsentOptions {\r\n className?: string;\r\n approveClassName?: string;\r\n showAfter: number;\r\n animationDuration?: number;\r\n // closeClassName?: string;\r\n cookie: {\r\n expirationInDays?: number;\r\n domain?: string;\r\n path?: string;\r\n secure?: boolean;\r\n };\r\n}\r\n\r\n// todo: Global in @opten/typescript?\r\nexport class CookieConsent {\r\n private _options: CookieConsentOptions = {\r\n className: 'js-cookie-consent',\r\n approveClassName: 'js-cookie-consent-approve',\r\n showAfter: 600,\r\n animationDuration: 350,\r\n // closeClassName: 'js-cookie-consent-close',\r\n cookie: {\r\n expirationInDays: 356,\r\n secure: false\r\n }\r\n };\r\n\r\n private _cookieKey: string;\r\n private _height: number;\r\n private _attributeName: string = 'data-cookie-consent';\r\n\r\n // prevent multiple resizings to add more height\r\n // if it's the same height as before!\r\n private _cachedHeight: number | null = null;\r\n\r\n private _boundResize = this._handleResize.bind(this);\r\n\r\n private _eventNamespaceFn = eventNamespaceFactory('hbl.cookie-consent');\r\n\r\n constructor(\r\n private _stickyElements: Array,\r\n options: CookieConsentOptions\r\n ) {\r\n this._options = { ...this._options, ...options };\r\n\r\n if (this._options.showAfter) {\r\n setTimeout(() => this._init(), this._options.showAfter);\r\n } else {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init() {\r\n const banner = this._getBanner();\r\n\r\n if (banner) {\r\n this._cookieKey = banner.getAttribute('data-cookie-key');\r\n\r\n if (this._cookieKey) {\r\n Array.from(\r\n document.getElementsByClassName(\r\n this._options.approveClassName\r\n )\r\n ).forEach(button =>\r\n button.addEventListener('click', event =>\r\n this._handleClick(event, true)\r\n )\r\n );\r\n\r\n this._eventNamespaceFn(banner, 'show');\r\n\r\n this._animate(\r\n banner,\r\n 0,\r\n banner.offsetHeight,\r\n this._options.animationDuration,\r\n () => {\r\n this._handleResize();\r\n\r\n window.addEventListener('resize', this._boundResize);\r\n\r\n this._eventNamespaceFn(banner, 'shown');\r\n }\r\n );\r\n\r\n /*Array.from(\r\n document.getElementsByClassName(\r\n this._options.closeClassName\r\n )\r\n ).forEach(button =>\r\n button.addEventListener('click', event =>\r\n this._handleClick(event, false)\r\n )\r\n );*/\r\n\r\n /* addClass(banner, '--show');\r\n this._handleResize();\r\n window.addEventListener('resize', this._boundResize);*/\r\n }\r\n }\r\n }\r\n\r\n private _animate(\r\n banner: HTMLElement,\r\n start: number,\r\n distance: number,\r\n duration: number,\r\n complete: Function\r\n ) {\r\n if (banner) {\r\n // todo: function in @opten/events?\r\n let timeStart: number;\r\n let timeElapsed: number;\r\n\r\n const loop = time => {\r\n timeElapsed = time - timeStart;\r\n\r\n banner.style.height = `${easeInOutQuad(\r\n timeElapsed,\r\n start,\r\n distance,\r\n duration\r\n )}px`;\r\n\r\n // todo: encapsulate?\r\n this._handleResize();\r\n\r\n if (timeElapsed < duration) {\r\n requestAnimationFrame.call(window, loop);\r\n } else {\r\n banner.style.height = null;\r\n complete();\r\n }\r\n };\r\n\r\n requestAnimationFrame.call(window, time => {\r\n timeStart = time;\r\n // todo: encapsulate?\r\n addClass(banner, '--show');\r\n loop(time);\r\n });\r\n }\r\n }\r\n\r\n private _getBanner(): HTMLElement {\r\n return document.getElementsByClassName(\r\n this._options.className\r\n )[0] as HTMLElement;\r\n }\r\n\r\n private _update(banner?: HTMLElement) {\r\n\r\n if (banner) {\r\n this._setSticky(document.body, 'margin-bottom', false);\r\n this._setElements(false);\r\n } else {\r\n this._setSticky(document.body, 'margin-bottom', true);\r\n this._setElements(true);\r\n }\r\n }\r\n\r\n private _setElements(remove: boolean) {\r\n if (this._stickyElements) {\r\n this._stickyElements.forEach(sticky =>\r\n this._setSticky(sticky, 'bottom', remove)\r\n );\r\n }\r\n }\r\n\r\n private _setSticky(sticky: HTMLElement, style: string, remove: boolean) {\r\n const attributeName = `${this._attributeName}-${style}`;\r\n\r\n if (!remove) {\r\n const calculated = parseCssUnit(getCss(sticky, style));\r\n sticky.setAttribute(attributeName, calculated.toString());\r\n sticky.style[style] = `${calculated + this._height}px`;\r\n } else if (sticky.hasAttribute(attributeName)) {\r\n const calculated = Number(sticky.getAttribute(attributeName));\r\n\r\n if (calculated && calculated > 0) {\r\n sticky.style[style] = `${calculated}px`;\r\n } else {\r\n sticky.style[style] = null;\r\n }\r\n\r\n sticky.removeAttribute(attributeName);\r\n }\r\n }\r\n\r\n private _handleClick(event: Event, setCookie: boolean) {\r\n event.preventDefault();\r\n\r\n if (setCookie) {\r\n this._setCookie();\r\n }\r\n\r\n const banner = this._getBanner();\r\n\r\n if (banner) {\r\n this._eventNamespaceFn(banner, 'hide');\r\n\r\n // todo: animation?\r\n // todo: kill events?\r\n banner.parentElement.removeChild(banner);\r\n\r\n this._eventNamespaceFn(banner, 'hidden');\r\n\r\n // remove attributes, height, ...\r\n this._update();\r\n\r\n // kills events\r\n window.removeEventListener('resize', this._boundResize);\r\n }\r\n }\r\n\r\n private _setCookie(): void {\r\n if (!this._cookieKey) {\r\n throw new Error(\r\n `Cookie-Consent: Cannot set Cookie, no key defined!`\r\n );\r\n }\r\n\r\n const date = new Date();\r\n date.setDate(\r\n date.getDate() + (this._options.cookie.expirationInDays || 365)\r\n );\r\n\r\n setCookie(\r\n this._cookieKey,\r\n 'true',\r\n date,\r\n this._options.cookie.secure,\r\n this._options.cookie.path,\r\n this._options.cookie.domain\r\n );\r\n }\r\n\r\n private _handleResize() {\r\n const banner = this._getBanner();\r\n\r\n if (banner) {\r\n this._height = Math.round(banner.getBoundingClientRect().height);\r\n\r\n if (this._cachedHeight !== this._height) {\r\n this._setSticky(document.body, 'margin-bottom', true);\r\n this._setElements(true);\r\n\r\n this._cachedHeight = this._height;\r\n this._update(banner);\r\n\r\n this._eventNamespaceFn(banner, 'resize');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default function cookieConsent(\r\n stickyElements: Array,\r\n options: CookieConsentOptions\r\n): CookieConsent {\r\n return new CookieConsent(stickyElements, options);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { hasClass } from '@opten/dom/has-class';\r\ndeclare const moment;\r\ndeclare const Pikaday;\r\n\r\n@Component({ className: 'js-datepicker-field', observe: true })\r\nexport default class Datepicker implements OnInit {\r\n private _locales: {\r\n i18n?: {\r\n previousMonth?: string;\r\n nextMonth?: string;\r\n months?: string[];\r\n weekdays?: string[];\r\n weekdaysShort?: string[];\r\n };\r\n yearRange?: number | number[];\r\n };\r\n\r\n constructor(private element: HTMLInputElement) {}\r\n\r\n onInit() {\r\n this._locales = {\r\n i18n: {\r\n previousMonth: this.element.getAttribute('data-previous-month'),\r\n nextMonth: this.element.getAttribute('data-next-month'),\r\n months: JSON.parse(this.element.getAttribute('data-months')),\r\n weekdays: JSON.parse(\r\n this.element.getAttribute('data-weekdays')\r\n ),\r\n weekdaysShort: JSON.parse(\r\n this.element.getAttribute('data-weekdays-short')\r\n )\r\n },\r\n yearRange: JSON.parse(this.element.getAttribute('data-year-range'))\r\n };\r\n\r\n moment.locale(this.element.getAttribute('data-locale'));\r\n\r\n new Pikaday({\r\n field: this.element,\r\n yearRange: this._locales.yearRange,\r\n i18n: this._locales.i18n,\r\n format: 'DD.MM.YYYY',\r\n onSelect: date => {\r\n const inputElement = document.getElementById(\r\n `${this.element.id}_hidden`\r\n ) as HTMLInputElement;\r\n\r\n inputElement.value = date\r\n ? moment(date).format('YYYY-MM-DD')\r\n : null;\r\n\r\n const event = document.createEvent('HTMLEvents');\r\n event.initEvent('change', false, true);\r\n inputElement.dispatchEvent(event);\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport function getDatepicker(\r\n input: HTMLInputElement\r\n): HTMLInputElement | null {\r\n if (!input || !hasClass(input, 'js-datepicker-field-hidden')) {\r\n return null;\r\n }\r\n\r\n return document.querySelector(\r\n `input[name='${input.name}_datepicker'].js-datepicker-field`\r\n );\r\n}\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\nimport { dialog } from \"@opten/dialog\";\r\nimport { hasClass } from \"@opten/dom/has-class\";\r\nimport { addClass } from \"@opten/dom/add-class\";\r\nimport { Select, SelectOptions } from \"@opten/select\";\r\n//import { Select, SelectOptions } from './select';\r\ndeclare var Cookiebot;\r\n\r\n@Component({ className: \"js-dialog\" })\r\nexport default class Dialog {\r\n // todo: better way?\r\n private _api: any;\r\n\r\n constructor(private element: HTMLElement) {\r\n const hasWall = hasClass(element, \"js-wall\");\r\n if (hasWall) {\r\n const body = document.getElementsByTagName(\"body\")[0] as HTMLElement;\r\n\r\n element.addEventListener(\"opened.opten.dialog\", () => {\r\n if (body) {\r\n addClass(body, \"c-wall__container--active\");\r\n if ($ !== undefined && $.validator !== undefined) {\r\n // get the relevant form\r\n const $form = $(\"form\");\r\n if ($form) {\r\n // delete validator in case someone called form.validate()\r\n $form.removeData(\"validator\");\r\n $.validator.unobtrusive.parse($form);\r\n $form.one(\"submit\", function (e) {\r\n e.preventDefault();\r\n if (typeof Cookiebot !== \"undefined\") {\r\n setTimeout(() => {\r\n Cookiebot.submitCustomConsent(true, true, true);\r\n }, 300);\r\n }\r\n $(this).submit();\r\n });\r\n }\r\n }\r\n\r\n // initialize selects\r\n Array.from(\r\n body.querySelectorAll(\".c-overlay__container .js-select-dialog\")\r\n ).forEach(\r\n (element) =>\r\n new Select(\r\n element as HTMLSelectElement,\r\n {\r\n classes: {\r\n component: \"c-select\",\r\n active: \"--active\",\r\n highlighted: \"--highlighted\",\r\n disabled: \"--disabled\",\r\n iconHtml: \"\",\r\n },\r\n } as SelectOptions\r\n )\r\n );\r\n }\r\n element.parentElement.removeChild(element);\r\n });\r\n }\r\n this._api = dialog(element, {\r\n maxWidth: 1200,\r\n disableClose: hasWall,\r\n });\r\n if (hasWall) {\r\n this._api.open();\r\n }\r\n }\r\n\r\n toggle() {\r\n // todo: better way?\r\n this._api._toggle();\r\n }\r\n}\r\n","import { hasClass } from '@opten/dom/has-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { getParentWithClass } from '@opten/dom/get-parent-with-class';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { getStickyOffset } from '../../Opten.HypothekarbankLenzburg.Web.Static/app/utilities/scroll-helper';\r\nimport { getOffset } from '@opten/dom/get-offset';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { isPad } from '../utilities/detection';\r\n\r\n// todo: better way? global?\r\ndeclare const picturefill;\r\n\r\nexport class FilterPageOptions {\r\n selectors?: {\r\n content: string;\r\n selects: string;\r\n selectTag: string;\r\n tag: string;\r\n tagCategory: string;\r\n dropdown: string;\r\n dropdownToggle: string;\r\n tagsDropdown: string;\r\n searchText: string;\r\n searchButton: string;\r\n tagAll: string;\r\n tagAllActive: string;\r\n tagActive: string;\r\n resetAllActiveTagsElements: string;\r\n };\r\n paging?: {\r\n pageBack: string;\r\n pageNext: string;\r\n pageJump: string;\r\n pageJumpAttribute: string;\r\n pagingSize: string;\r\n };\r\n loading?: {\r\n contentLoading: string;\r\n contentYScroll: number;\r\n };\r\n classes?: {\r\n active: string;\r\n hidden: string;\r\n hasActiveTags: string;\r\n };\r\n\r\n contentLocation?: string;\r\n wrapperId?: string;\r\n searchValueText?: string;\r\n tagValue?: string;\r\n scrollToTopAfterFiltering?: boolean;\r\n hasStickyOffsetDesktop?: boolean;\r\n callbackAfterFilter?: Function;\r\n}\r\n\r\nexport class FilterPage {\r\n private isInitialPageLoad = true;\r\n private wrapperElement: HTMLElement;\r\n private wrapperId: number;\r\n private contentElement: HTMLElement;\r\n private contentLocation: string;\r\n private tags: Array;\r\n private filters: Array;\r\n private activeTags: Array;\r\n private selects: Array;\r\n private searchTextInput: HTMLInputElement;\r\n private searchTextButton: HTMLElement;\r\n private resetAllActiveTagsElements: Array;\r\n private allTags: Array;\r\n private pagingSize: number = 15;\r\n private page: number = 1;\r\n private language: string = 'de-CH';\r\n\r\n private _options: FilterPageOptions = {\r\n selectors: {\r\n content: 'js-filter__page__content',\r\n selects: 'js-filter__select',\r\n selectTag: 'js-filter__select__tag',\r\n tag: 'js-filter__tag',\r\n tagCategory: 'js-filter__tag--category',\r\n dropdown: 'js-filter__dropdown',\r\n dropdownToggle: 'js-filter__dropdown-toggle',\r\n tagsDropdown: 'js-filter-tags-dropdown',\r\n searchText: 'js-filter__search-text',\r\n searchButton: 'js-filter__search-button',\r\n tagAll: 'js-filter__tag-all',\r\n tagAllActive: 'js-filter__tag-all--active',\r\n tagActive: 'js-filter__tag-active',\r\n resetAllActiveTagsElements: 'js-filter__reset-all'\r\n },\r\n paging: {\r\n pageBack: 'js-filter__page-back',\r\n pageNext: 'js-filter__page-next',\r\n pageJump: 'js-filter__page-jump',\r\n pageJumpAttribute: 'data-value',\r\n pagingSize: 'data-paging-size'\r\n },\r\n loading: {\r\n contentLoading:\r\n '
Loading...
',\r\n contentYScroll: 0\r\n },\r\n classes: {\r\n active: '--active',\r\n hidden: '--hidden',\r\n hasActiveTags: 'has--active-tags'\r\n },\r\n contentLocation: 'data-location',\r\n wrapperId: 'data-id',\r\n searchValueText: 'search_text',\r\n tagValue: 'data-value',\r\n scrollToTopAfterFiltering: true,\r\n hasStickyOffsetDesktop: true\r\n };\r\n tagsCategory: Element[];\r\n\r\n constructor(private wrapper: HTMLElement, options?: FilterPageOptions) {\r\n this.wrapperElement = wrapper;\r\n this._options = { ...this._options, ...options };\r\n let dataLanguage = document.documentElement.lang;\r\n\t\tif (dataLanguage && dataLanguage.length > 0) {\r\n\t\t\tthis.language = dataLanguage;\r\n\t\t}\r\n this.init();\r\n\r\n window.addEventListener('hashchange', () => this.filter());\r\n\r\n this.filter();\r\n\r\n this.initContentFilter();\r\n }\r\n\r\n private init() {\r\n this.wrapperId = Number(\r\n this.wrapperElement.getAttribute(this._options.wrapperId)\r\n );\r\n this.pagingSize = Number(\r\n this.wrapperElement.getAttribute(this._options.paging.pagingSize)\r\n );\r\n this.contentLocation = this.wrapperElement.getAttribute(\r\n this._options.contentLocation\r\n );\r\n this.contentElement = this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.content\r\n )[0];\r\n this.selects = Array.from(\r\n this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.selects\r\n )\r\n );\r\n this.tags = Array.from(\r\n this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.tag\r\n )\r\n );\r\n this.tagsCategory = this.tags && this.tags.length > 0 ? this.tags.filter(o => hasClass(o, this._options.selectors.tagCategory)) : null;\r\n this.searchTextInput = this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.searchText\r\n )[0];\r\n this.allTags = Array.from(\r\n this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.tagAll\r\n )\r\n );\r\n this.resetAllActiveTagsElements = Array.from(\r\n this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.resetAllActiveTagsElements\r\n )\r\n );\r\n\r\n this.tags.forEach(tag => {\r\n if (!hasClass(tag, this._options.selectors.selectTag)) {\r\n tag.addEventListener('click', () => this.toggleTag(tag));\r\n }\r\n });\r\n\r\n if (this.searchTextInput != null) {\r\n this.searchTextButton = this.searchTextInput.parentElement.getElementsByClassName(\r\n this._options.selectors.searchButton\r\n )[0];\r\n\r\n this.searchTextInput.addEventListener('keypress', e => {\r\n const key = e.which || e.keyCode;\r\n if (key === 13) {\r\n // 13 is enter\r\n this.loadFilterElements();\r\n }\r\n });\r\n\r\n if (this.searchTextButton != null) {\r\n this.searchTextButton.addEventListener('click', () =>\r\n this.loadFilterElements()\r\n );\r\n }\r\n\r\n if (location.search.length > 0 && this.searchTextButton != null) {\r\n const searchValues = location.search.substring(1).split('=');\r\n for (const index in searchValues) {\r\n if (searchValues[index] === this._options.searchValueText) {\r\n let searchTextValue = searchValues[Number(index) + 1];\r\n if (\r\n searchTextValue !== null &&\r\n searchTextValue !== ''\r\n ) {\r\n searchTextValue = decodeURIComponent(\r\n searchTextValue\r\n );\r\n }\r\n this.searchTextInput.value = searchTextValue;\r\n break;\r\n }\r\n }\r\n const query = window.location.search.substring(1);\r\n\r\n // is there anything there ?\r\n if (query.length) {\r\n // are the new history methods available ?\r\n if (\r\n window.history !== undefined &&\r\n window.history.pushState !== undefined\r\n ) {\r\n // if pushstate exists, add a new state the the history, this changes the url without reloading the page\r\n window.history.pushState(\r\n {},\r\n document.title,\r\n window.location.pathname\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (this.selects && this.selects.length > 0) {\r\n this.selects.forEach(select => {\r\n select.addEventListener('change', this.onChange);\r\n });\r\n }\r\n\r\n if (this.allTags && this.allTags.length > 0) {\r\n this.allTags.forEach(allTag =>\r\n allTag.addEventListener('click', () =>\r\n this.allTagClick(\r\n getParentWithClass(\r\n allTag,\r\n 'js-filter-tags-dropdown'\r\n )\r\n )\r\n )\r\n );\r\n }\r\n\r\n if (\r\n this.resetAllActiveTagsElements &&\r\n this.resetAllActiveTagsElements.length > 0\r\n ) {\r\n this.resetAllActiveTagsElements.forEach(resetTags =>\r\n resetTags.addEventListener('click', () =>\r\n this.resetAllActiveTags()\r\n )\r\n );\r\n }\r\n }\r\n\r\n private onChange(event: Event) {\r\n this.updateSelectTag(event.target as HTMLSelectElement);\r\n }\r\n\r\n public initContentFilter() {\r\n const that = this;\r\n if (this.contentElement != null) {\r\n const newSelects = Array.from(\r\n this.contentElement.getElementsByClassName(\r\n this._options.selectors.selects\r\n )\r\n );\r\n const newTags = Array.from(\r\n this.contentElement.getElementsByClassName(\r\n this._options.selectors.tag\r\n )\r\n );\r\n\r\n if (newTags && newTags.length > 0) {\r\n newTags.forEach(tag => {\r\n if (!hasClass(tag, this._options.selectors.selectTag)) {\r\n tag.addEventListener('click', () =>\r\n this.toggleTag(tag)\r\n );\r\n }\r\n that.tags.push(tag);\r\n });\r\n }\r\n if (newSelects && newSelects.length > 0) {\r\n newSelects.forEach(select => {\r\n select.addEventListener('change', () =>\r\n this.updateSelectTag(select)\r\n );\r\n that.selects.push(select);\r\n });\r\n }\r\n }\r\n }\r\n\r\n private loadFilterElements(setPageDefault: boolean = true) {\r\n if (setPageDefault) {\r\n this.setPageToDefault();\r\n }\r\n const searchText =\r\n this.searchTextInput != null ? this.searchTextInput.value : '';\r\n const dataSearch =\r\n 'id=' +\r\n this.wrapperId +\r\n '&filter=' +\r\n this.getFilters() +\r\n '&pagingSize=' +\r\n this.pagingSize +\r\n '&page=' +\r\n this.page +\r\n '&searchText=' +\r\n searchText;\r\n\r\n this.contentElement.parentElement.style.overflow = 'hidden';\r\n this.contentElement.innerHTML = this._options.loading.contentLoading;\r\n\r\n fetch('/umbraco/surface/' + this.contentLocation, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded',\r\n // todo: set language from chooser in the future\r\n 'accept-language': this.language,\r\n // todo: why? if we change to a api controller we don't have this problem...\r\n 'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n },\r\n body: dataSearch\r\n })\r\n .then(response => {\r\n const contentType = response.headers.get('content-type');\r\n if (contentType && contentType.includes('text/html')) {\r\n return response.text();\r\n }\r\n })\r\n .then(data => {\r\n if (data != null && data.length > 0) {\r\n this.contentElement.parentElement.style.overflow = null;\r\n this.contentElement.innerHTML = data;\r\n this.setPreviousNextJumpPageEvents();\r\n // this.initContentFilter();\r\n this.reinitFilter();\r\n picturefill();\r\n\r\n // todo: change here to other offsettop ? this.contentElement.offsetTop + this._options.loading.contentYScroll;\r\n // this.jumpToFilter();\r\n if (this._options.scrollToTopAfterFiltering) {\r\n window.scrollTo(0, 0);\r\n }\r\n else if (this.isInitialPageLoad == false) {\r\n this._animate();\r\n }\r\n this.isInitialPageLoad = false;\r\n if(this._options.callbackAfterFilter != undefined && this._options.callbackAfterFilter != null){\r\n this._options.callbackAfterFilter();\r\n }\r\n }\r\n });\r\n }\r\n\r\n private _animate() {\r\n const element = this.wrapperElement;\r\n\r\n if (element) {\r\n let offset = getOffset(element).top();\r\n\r\n offset += parseCssUnit(getCss(element, 'margin-top')) * -1;\r\n if (isPad() || (isPad() == false && this._options.hasStickyOffsetDesktop)) {\r\n offset += getStickyOffset() * -1;\r\n }\r\n\r\n offset = Math.round(offset);\r\n\r\n window.scrollTo(0, offset);\r\n }\r\n }\r\n\r\n private jumpToFilter() {\r\n if ((this.getFilters() === '') !== true) {\r\n const crossselling = document.getElementsByClassName('js-cross-selling-box')[0] as HTMLElement;\r\n if (crossselling) {\r\n const navbar = document.getElementsByClassName('c-header')[0] as HTMLElement;\r\n if (navbar) {\r\n let cookieBannerHeight = 0;\r\n if (navbar.style.top) {\r\n cookieBannerHeight = parseInt(navbar.style.top, 10);\r\n }\r\n const offset = ((navbar.offsetHeight * -1) - cookieBannerHeight - 20);\r\n scrollToElement(crossselling, undefined, 0, offset);\r\n }\r\n }\r\n }\r\n }\r\n\r\n private loadPreviousPage(event: any) {\r\n event.preventDefault();\r\n this.page = this.page - 1 >= 1 ? this.page - 1 : 1;\r\n this.loadFilterElements(false);\r\n }\r\n\r\n private loadNextPage(event: any) {\r\n event.preventDefault();\r\n this.page = this.page + 1;\r\n this.loadFilterElements(false);\r\n }\r\n\r\n private loadJumpPage(event: any) {\r\n event.preventDefault();\r\n const element = event.target || event.currentTarget;\r\n this.page = Number(\r\n element.getAttribute(this._options.paging.pageJumpAttribute)\r\n );\r\n this.loadFilterElements(false);\r\n }\r\n\r\n private setPreviousNextJumpPageEvents() {\r\n const pageBack = Array.from(\r\n this.contentElement.getElementsByClassName(\r\n this._options.paging.pageBack\r\n )\r\n );\r\n const pageNext = Array.from(\r\n this.contentElement.getElementsByClassName(\r\n this._options.paging.pageNext\r\n )\r\n );\r\n\r\n const pageJump = Array.from(\r\n this.contentElement.getElementsByClassName(\r\n this._options.paging.pageJump\r\n )\r\n );\r\n\r\n if (pageBack.length > 0) {\r\n pageBack.forEach(pageStep =>\r\n pageStep.addEventListener('click', e =>\r\n this.loadPreviousPage(e)\r\n )\r\n );\r\n }\r\n if (pageNext.length > 0) {\r\n pageNext.forEach(pageStep =>\r\n pageStep.addEventListener('click', e => this.loadNextPage(e))\r\n );\r\n }\r\n\r\n if (pageJump.length > 0) {\r\n pageJump.forEach(pageStep =>\r\n pageStep.addEventListener('click', e => this.loadJumpPage(e))\r\n );\r\n }\r\n }\r\n\r\n private setPageToDefault() {\r\n this.page = 1;\r\n }\r\n\r\n private filter() {\r\n this.reinitFilter();\r\n this.loadFilterElements();\r\n }\r\n\r\n public reinitFilter() {\r\n this.activeTags = this.getTagsFromLocationHash();\r\n this.filters = [];\r\n this.setActiveTagsClasses();\r\n this.setFilterPageHasActiveTags();\r\n }\r\n\r\n private setActiveTagsClasses() {\r\n this.tags.forEach(tag => {\r\n const tagsDropdown = getParentWithClass(\r\n tag,\r\n this._options.selectors.tagsDropdown\r\n );\r\n if (tagsDropdown != null) {\r\n if (hasClass(tag, this._options.selectors.tagActive)) {\r\n addClass(tag.parentElement, this._options.classes.hidden);\r\n } else {\r\n removeClass(\r\n tag.parentElement,\r\n this._options.classes.hidden\r\n );\r\n }\r\n }\r\n\r\n if (this.isTagActive(tag)) {\r\n if (tagsDropdown != null) {\r\n this.deactivateAllTag(tagsDropdown);\r\n } else {\r\n addClass(tag, this._options.classes.active);\r\n if (this.isSelectOption(tag)) {\r\n (tag.parentElement).selectedIndex = (tag).index;\r\n }\r\n }\r\n this.addTagToFilters(tag);\r\n } else {\r\n if (tagsDropdown != null) {\r\n const allTagsActive = Array.from(\r\n tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tag +\r\n ' ' +\r\n this._options.selectors.tagActive\r\n )\r\n ).filter(\r\n tag =>\r\n hasClass(\r\n tag.parentElement,\r\n this._options.classes.hidden\r\n ) !== true\r\n );\r\n if (allTagsActive.length === 0) {\r\n this.activateAllTag(tagsDropdown);\r\n }\r\n } else {\r\n removeClass(tag, this._options.classes.active);\r\n }\r\n this.removeTagFromFilters(tag);\r\n }\r\n });\r\n this.activeTags = this.filters;\r\n let newHash = this.getTagsLocationHash();\r\n\r\n if (newHash && newHash.length > 1) {\r\n location.hash = newHash;\r\n }\r\n }\r\n\r\n private getTagsFromLocationHash(): Array {\r\n return location.hash\r\n .split('/')\r\n .filter(o => ['', '#'].indexOf(o) === -1);\r\n }\r\n\r\n private getTagsLocationHash(): string {\r\n return '/' + this.activeTags.join('/');\r\n }\r\n\r\n private toggleTag(tag: Element): void {\r\n const doActivateTag = !this.isTagActive(tag);\r\n const tagsDropdown = getParentWithClass(\r\n tag,\r\n this._options.selectors.tagsDropdown\r\n );\r\n if (tagsDropdown != null) {\r\n this.deactivateActiveTags(tagsDropdown);\r\n if (doActivateTag) {\r\n this.activateTag(tag);\r\n } else {\r\n this.deactivateTag(tag);\r\n }\r\n } else {\r\n if (doActivateTag) {\r\n if (hasClass(tag, this._options.selectors.tagCategory) && this.tagsCategory != null) {\r\n this.tags.filter(o => this.isTagActive(o)).forEach(o => this.deactivateActiveTag(o));\r\n }\r\n this.activateActiveTag(tag);\r\n } else {\r\n this.deactivateActiveTag(tag);\r\n }\r\n }\r\n }\r\n\r\n private updateSelectTag(select: Element): void {\r\n const selectMenu = select;\r\n const selectedIndex = selectMenu.selectedIndex;\r\n const selectedTag = selectMenu.options[selectedIndex];\r\n this.deactivateActiveTags(select);\r\n if (selectedTag != null) {\r\n this.activateActiveTag(selectedTag);\r\n }\r\n }\r\n\r\n private resetAllActiveTags(): void {\r\n this.filters = [];\r\n this.setFilterPageHasActiveTags();\r\n location.hash = '';\r\n this.selects.forEach(select => {\r\n (select).selectedIndex = 0;\r\n });\r\n this.loadFilterElements();\r\n }\r\n\r\n private isSelectOption(tag: Element): boolean {\r\n return this.selects.indexOf(tag.parentElement) > -1;\r\n }\r\n\r\n private setFilterPageHasActiveTags() {\r\n const hasActiveTags = this.filters != null && this.filters.length > 0;\r\n toggleClass(this.wrapperElement, this._options.classes.hasActiveTags, hasActiveTags);\r\n }\r\n\r\n private activateActiveTag(tag: Element) {\r\n addClass(tag, this._options.classes.active);\r\n this.activateTag(tag);\r\n }\r\n\r\n private activateTag(tag: Element) {\r\n const tagValue = this.getTagValue(tag);\r\n if (tagValue.length > 0) {\r\n this.activeTags.push(tagValue);\r\n location.hash = this.getTagsLocationHash();\r\n }\r\n }\r\n\r\n private deactivateTag(tag: Element) {\r\n const tagValue = this.getTagValue(tag);\r\n if (tagValue.length > 0) {\r\n const tagValueIndex = this.getTagValueIndex(tagValue);\r\n if (tagValueIndex > -1) {\r\n this.activeTags.splice(tagValueIndex, 1);\r\n location.hash = this.getTagsLocationHash();\r\n }\r\n }\r\n }\r\n\r\n private deactivateActiveTags(tagsDropdown: Element): void {\r\n const allTagsActive = Array.from(\r\n tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tag +\r\n ' ' +\r\n this._options.selectors.tagActive\r\n )\r\n ).filter(\r\n tag =>\r\n hasClass(tag.parentElement, this._options.classes.hidden) !==\r\n true\r\n );\r\n allTagsActive.forEach(tag => this.deactivateTag(tag));\r\n const tagsActive = Array.from(\r\n tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tag + ' ' + this._options.classes.active\r\n )\r\n );\r\n tagsActive.forEach(tag => this.deactivateActiveTag(tag));\r\n }\r\n\r\n private deactivateActiveTag(tag: Element): void {\r\n removeClass(tag, this._options.classes.active);\r\n this.deactivateTag(tag);\r\n }\r\n\r\n private allTagClick(tagsDropdown: Element) {\r\n this.deactivateActiveTags(tagsDropdown);\r\n this.activateAllTag(tagsDropdown);\r\n }\r\n\r\n private activateAllTag(tagsDropdown: HTMLElement) {\r\n if (this.allTags != null && this.allTags.length) {\r\n const allTag = tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tagAll\r\n )[0];\r\n const allTagActive = tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tagAllActive\r\n )[0];\r\n const dropdownToggleBtn = getParentWithClass(\r\n tagsDropdown,\r\n this._options.selectors.dropdown\r\n ).getElementsByClassName(this._options.selectors.dropdownToggle)[0];\r\n const filterAll = this.getTagValue(allTag);\r\n\r\n if (filterAll !== 'undefined' && filterAll !== '') {\r\n this.addTagToFilters(allTag);\r\n }\r\n addClass(allTag.parentElement, this._options.classes.hidden);\r\n removeClass(\r\n allTagActive.parentElement,\r\n this._options.classes.hidden\r\n );\r\n removeClass(dropdownToggleBtn, this._options.classes.active);\r\n }\r\n }\r\n\r\n private deactivateAllTag(tagsDropdown: HTMLElement) {\r\n if (this.allTags != null && this.allTags.length) {\r\n const allTag = tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tagAll\r\n )[0];\r\n const allTagActive = tagsDropdown.getElementsByClassName(\r\n this._options.selectors.tagAllActive\r\n )[0];\r\n const dropdownToggleBtn = getParentWithClass(\r\n tagsDropdown,\r\n this._options.selectors.dropdown\r\n ).getElementsByClassName(this._options.selectors.dropdownToggle)[0];\r\n const filterAll = this.getTagValue(allTag);\r\n\r\n if (filterAll !== 'undefined' && filterAll !== '') {\r\n this.removeTagFromFilters(allTag);\r\n }\r\n removeClass(allTag.parentElement, this._options.classes.hidden);\r\n addClass(allTagActive.parentElement, this._options.classes.hidden);\r\n addClass(dropdownToggleBtn, this._options.classes.active);\r\n }\r\n }\r\n\r\n private isTagActive(tag: Element): boolean {\r\n return this.getTagValueIndex(this.getTagValue(tag)) > -1;\r\n }\r\n\r\n private getTagValueIndex(tagValue: string): number {\r\n return this.activeTags.indexOf(tagValue);\r\n }\r\n\r\n private getTagValue(tag: Element): string {\r\n return tag.getAttribute(this._options.tagValue);\r\n }\r\n\r\n private getFilters(): string {\r\n return this.filters.toString();\r\n }\r\n\r\n private addTagToFilters(tag: Element) {\r\n const tagValue = this.getTagValue(tag);\r\n\r\n if (tagValue !== 'undefined' && tagValue !== '') {\r\n if (this.filters.indexOf(tagValue) < 0) {\r\n this.filters.push(tagValue);\r\n }\r\n }\r\n }\r\n private removeTagFromFilters(tag: Element) {\r\n const tagValue = this.getTagValue(tag);\r\n\r\n if (tagValue !== 'undefined' && tagValue !== '') {\r\n const indexFilter = this.filters.indexOf(tagValue);\r\n\r\n if (indexFilter > -1) {\r\n this.filters.splice(indexFilter, 1);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default function filterpage(\r\n wrapper: HTMLElement,\r\n options?: FilterPageOptions\r\n): FilterPage {\r\n return new FilterPage(wrapper, options);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n@Component({ className: 'js-gtm-async', observe: true })\r\nexport class GtmTrackerComponent {\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n const scriptElement = document.createElement(\"script\");\r\n scriptElement.innerHTML = element.innerHTML;\r\n document.body.appendChild(scriptElement);\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { addClass }from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\n@Component({ className: 'js-form__field__input', observe: true })\r\nexport default class InputFieldsFilled implements OnInit {\r\n constructor(private _element: HTMLInputElement | HTMLSelectElement) {}\r\n\r\n onInit(): void {\r\n if (hasClass(this._element, 'js-select')) {\r\n // todo: @SelfRef(Select)?\r\n // todo: we cannot use that, we don't know when initialized\r\n /*const select = document.querySelector(\r\n `[data-select='${this._element.id}']`\r\n ) as HTMLSelectElement;*/\r\n const select = this._element.parentElement.getElementsByTagName(\r\n 'select'\r\n )[0];\r\n\r\n if (select) {\r\n // todo: somehow the select is too slow\r\n // when we trigger change, because then it animates the label\r\n // so we attach extra events...\r\n /*select.addEventListener('focus', () =>\r\n addClass(this._element, '--is-filled')\r\n );\r\n select.addEventListener(\r\n 'blur',\r\n () => select.value || this._checkValue(select)\r\n );*/\r\n this._checkValue(select);\r\n select.addEventListener('change', () =>\r\n this._checkValue(select)\r\n );\r\n }\r\n } else if (hasClass(this._element, 'js-datepicker-field')) {\r\n const hidden = this._element.parentElement.querySelector(\r\n `input[type='hidden'][name='${this._element.name.replace(\r\n '_datepicker',\r\n ''\r\n )}']`\r\n ) as HTMLInputElement;\r\n\r\n if (hidden) {\r\n this._checkValue(hidden);\r\n hidden.addEventListener('change', () => this._checkValue(hidden));\r\n }\r\n } else {\r\n this._checkValue();\r\n this._element.addEventListener('input', () => this._checkValue());\r\n this._element.addEventListener('change', () => this._checkValue());\r\n\r\n }\r\n\r\n // IE\r\n document.addEventListener('DOMContentLoaded', () => this._checkValue());\r\n }\r\n\r\n private _checkValue(\r\n element: HTMLInputElement | HTMLSelectElement = this._element\r\n ) {\r\n if (element.tagName === 'select') {\r\n // todo: why?\r\n if ($ && $.validator && element.value) {\r\n $(element).valid();\r\n }\r\n }\r\n\r\n if (element.value) {\r\n addClass(this._element, '--is-filled');\r\n } else {\r\n removeClass(this._element, '--is-filled');\r\n }\r\n }\r\n}\r\n","import { toggleClass } from '@opten/dom/toggle-class';\r\nclass MapMarkerExtended {\r\n public marker: any;\r\n public className: any;\r\n constructor(element, className) {\r\n this.marker = element;\r\n this.className = className;\r\n }\r\n}\r\n\r\nexport interface MapExtendedOptions {\r\n zoom?: number;\r\n draggable?: boolean;\r\n urlLocation?: string;\r\n urlDatacenter?: string;\r\n animation?: google.maps.Animation;\r\n mapStyles?: any;\r\n styledMapName?: string;\r\n mapMarkerClasses?: string[];\r\n showMapMarkerClasses?: string[];\r\n hasMapMarkerClassesButtonIfMultiple?: boolean;\r\n mapMarkerClassesButtonActiveClass?: string;\r\n mapMarkerInfoClass?: string;\r\n mapTypes?: google.maps.MapTypeId[];\r\n mapTypeControlStyle?: google.maps.MapTypeControlStyle;\r\n fitToBounds?: boolean;\r\n}\r\nexport class MapExtended {\r\n private _options: MapExtendedOptions = {\r\n draggable: screen.width < 1025 === false,\r\n animation: google.maps.Animation.DROP,\r\n mapStyles: null,\r\n mapMarkerClasses: ['map-location'],\r\n showMapMarkerClasses: ['map-location'],\r\n hasMapMarkerClassesButtonIfMultiple: false,\r\n mapMarkerClassesButtonActiveClass: '--active',\r\n mapMarkerInfoClass: 'c-map-extended__information__marker',\r\n mapTypes: [\r\n google.maps.MapTypeId.ROADMAP,\r\n google.maps.MapTypeId.TERRAIN,\r\n google.maps.MapTypeId.SATELLITE,\r\n google.maps.MapTypeId.HYBRID\r\n ],\r\n mapTypeControlStyle: google.maps.MapTypeControlStyle.HORIZONTAL_BAR,\r\n fitToBounds: true\r\n };\r\n private _mapMarkers = Array();\r\n private _element: HTMLElement;\r\n private _currentInfoWindow = null;\r\n private _bounds: google.maps.LatLngBounds;\r\n\r\n constructor(element: HTMLElement, options: MapExtendedOptions) {\r\n this._element = element;\r\n this._options = { ...this._options, ...options };\r\n this.init();\r\n if (this._options.hasMapMarkerClassesButtonIfMultiple &&\r\n this._options.mapMarkerClasses.length > 1) {\r\n this._options.mapMarkerClasses\r\n .map(markerClass => document.getElementById(markerClass))\r\n .filter(markerElement => markerElement != null)\r\n .forEach(markerElement => markerElement.addEventListener('click', () => this.showHideMapMarkerClass(markerElement)));\r\n }\r\n }\r\n init() {\r\n if (typeof google === 'object' && typeof google.maps === 'object') {\r\n const id = this._element.getAttribute('data-map-id');\r\n const zoom = this._element.getAttribute('data-zoom');\r\n let mapZoom;\r\n if (typeof zoom == 'undefined' || zoom == null) {\r\n mapZoom = this._options.zoom;\r\n }\r\n else {\r\n mapZoom = zoom;\r\n }\r\n let lat;\r\n let lng;\r\n this._bounds = new google.maps.LatLngBounds();\r\n const mapTypes: any = this._options.mapTypes;\r\n if (this._options.mapStyles != null) {\r\n mapTypes.push('map_style');\r\n }\r\n const mapOptions = {\r\n zoom: +mapZoom,\r\n center: new google.maps.LatLng(lat, lng),\r\n draggable: true,\r\n mapTypeControlOptions: {\r\n mapTypeIds: mapTypes,\r\n style: this._options.mapTypeControlStyle\r\n }\r\n };\r\n const map = new google.maps.Map(document.getElementById(id), mapOptions);\r\n if (this._options.mapStyles != null) {\r\n const nameMap = this._options.styledMapName != null\r\n ? this._options.styledMapName\r\n : 'Map';\r\n const styledMap = new google.maps.StyledMapType(this._options.mapStyles, { name: nameMap });\r\n map.mapTypes.set('map_style', styledMap);\r\n map.setMapTypeId('map_style');\r\n }\r\n if (this._options.mapMarkerClasses != null &&\r\n this._options.mapMarkerClasses.length > 0) {\r\n this._options.mapMarkerClasses.forEach(markerClass => {\r\n const markersClass = Array.from(this._element.getElementsByClassName(markerClass));\r\n if (markersClass.length > 0) {\r\n const showMarker = this._options.showMapMarkerClasses.indexOf(markerClass) > -1;\r\n markersClass.forEach(markerClassInfo => this.createMarkerClass(markerClassInfo, markerClass, map, showMarker));\r\n }\r\n });\r\n }\r\n if (this._options.fitToBounds) {\r\n map.fitBounds(this._bounds);\r\n }\r\n if (mapZoom != null && mapZoom > 0) {\r\n google.maps.event.addListenerOnce(map, 'idle', function () {\r\n map.setZoom(+mapZoom);\r\n });\r\n }\r\n }\r\n else {\r\n console.error('Google Maps API is not included');\r\n }\r\n }\r\n createMarkerClass(markerClassInfo, markerClass, map, showMarker) {\r\n const markerInfoData = markerClassInfo;\r\n const dataCoordinates = markerInfoData.getAttribute('data-coordinates');\r\n const latlng = dataCoordinates.replace(' ', '').split(',');\r\n\r\n const mapMarkerIcon = markerInfoData.getAttribute('data-marker');\r\n const mapMarkerWidth = markerInfoData.getAttribute('data-marker-width');\r\n const mapMarkerHeight = markerInfoData.getAttribute('data-marker-height');\r\n const mapMarkerOriginX = markerInfoData.getAttribute('data-marker-origin-x');\r\n const mapMarkerOriginY = markerInfoData.getAttribute('data-marker-origin-y');\r\n const mapMarkerAnchorX = markerInfoData.getAttribute('data-marker-anchor-x');\r\n const mapMarkerAnchorY = markerInfoData.getAttribute('data-marker-anchor-y');\r\n const mapMarkerInfoArray = Array.from(markerInfoData.getElementsByClassName(this._options.mapMarkerInfoClass));\r\n let mapMarkerInfo = '';\r\n if (mapMarkerInfoArray.length > 0) {\r\n mapMarkerInfo = markerInfoData.innerHTML;\r\n }\r\n this.createMarker(latlng[0], latlng[1], mapMarkerIcon, mapMarkerWidth, mapMarkerHeight, mapMarkerOriginX, mapMarkerOriginY, mapMarkerAnchorX, mapMarkerAnchorY, mapMarkerInfo, map, showMarker, markerClass);\r\n }\r\n createMarker(lat, lng, mapMarkerIcon, mapMarkerWidth, mapMarkerHeight, mapMarkerOriginX, mapMarkerOriginY, mapMarkerAnchorX, mapMarkerAnchorY, mapMarkerInfo, map, showMarker, markerClass) {\r\n const marker = new google.maps.Marker({\r\n position: new google.maps.LatLng(+lat, +lng),\r\n map: map,\r\n icon: {\r\n size: new google.maps.Size(+mapMarkerWidth, +mapMarkerHeight),\r\n origin: new google.maps.Point(+mapMarkerOriginX, +mapMarkerOriginY),\r\n anchor: new google.maps.Point(+mapMarkerAnchorX, +mapMarkerAnchorY),\r\n url: mapMarkerIcon\r\n },\r\n visible: showMarker\r\n });\r\n this._bounds.extend(marker.getPosition());\r\n if (mapMarkerInfo != '') {\r\n const infoWindow = new google.maps.InfoWindow({\r\n content: mapMarkerInfo\r\n });\r\n marker.addListener('click', () => {\r\n var wasCurrentWindow = this._currentInfoWindow != null && this._currentInfoWindow == infoWindow;\r\n if (this._currentInfoWindow != null) {\r\n this._currentInfoWindow.close();\r\n }\r\n if (this._currentInfoWindow == null || this._currentInfoWindow !== infoWindow) {\r\n infoWindow.open(map, marker);\r\n this._currentInfoWindow = infoWindow;\r\n }\r\n else if (wasCurrentWindow) {\r\n this._currentInfoWindow = null;\r\n }\r\n });\r\n marker.addListener('mouseover', () => {\r\n if (this._currentInfoWindow != null && this._currentInfoWindow !== infoWindow) {\r\n this._currentInfoWindow.close();\r\n }\r\n if (this._currentInfoWindow == null || this._currentInfoWindow !== infoWindow) {\r\n infoWindow.open(map, marker);\r\n this._currentInfoWindow = infoWindow;\r\n }\r\n });\r\n\r\n /*marker.addListener('mouseout', function() {\r\n infoWindow.close();\r\n });*/\r\n }\r\n this._mapMarkers.push(new MapMarkerExtended(marker, markerClass));\r\n }\r\n showHideMapMarkerClass(button) {\r\n const className = button.id;\r\n toggleClass(button, this._options.mapMarkerClassesButtonActiveClass);\r\n const visible = button.classList.contains(this._options.mapMarkerClassesButtonActiveClass); // show if checked, otherwise hide\r\n if (className.length != null && className.length > 0) {\r\n this._mapMarkers\r\n .filter(mapMarker => mapMarker.className === className)\r\n .forEach(mapMarker => mapMarker.marker.setVisible(visible));\r\n }\r\n }\r\n}\r\n\r\nexport default function mapExtended(\r\n element: HTMLElement,\r\n options: MapExtendedOptions\r\n): MapExtended {\r\n return new MapExtended(element, options);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { createNode } from '@opten/dom/create-node';\r\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\r\n\r\nimport { isMobile } from '../../utilities/detection';\r\nimport player from '../player/player';\r\n\r\ndeclare var PhotoSwipeUI_Default;\r\ndeclare var PhotoSwipe;\r\n\r\n\r\nexport abstract class PhotoswipeItem {\r\n constructor(public el: HTMLElement) {}\r\n}\r\n\r\nexport class PhotoswipeHtmlItem extends PhotoswipeItem {\r\n constructor(el: HTMLElement, public html: string) {\r\n super(el);\r\n\r\n const node = createNode(html);\r\n\r\n if (node.tagName.toLowerCase() === 'iframe') {\r\n (node as HTMLIFrameElement).width = `100%`;\r\n (node as HTMLIFrameElement).height = `100%`;\r\n }\r\n\r\n this.html = node.outerHTML;\r\n }\r\n}\r\n\r\nexport class PhotoswipeImageItem extends PhotoswipeItem {\r\n public img?: HTMLImageElement;\r\n public msrc?: string;\r\n\r\n constructor(\r\n el: HTMLElement,\r\n public src: string,\r\n public w: number,\r\n public h: number\r\n ) {\r\n super(el);\r\n\r\n const image = el.getElementsByTagName('img')[0];\r\n\r\n if (image) {\r\n this.img = image;\r\n\r\n this.msrc = this.img.hasAttribute('srcset')\r\n ? this.img.currentSrc || this.img.src\r\n : this.img.src;\r\n }\r\n }\r\n}\r\n\r\n@Component({ className: 'js-photoswipe' })\r\nexport default class Photoswipe {\r\n private _triggerElements: Array;\r\n\r\n constructor(private element: HTMLElement) {\r\n this._triggerElements = Array.from(\r\n element.getElementsByClassName('js-photoswipe-toggler')\r\n ) as Array;\r\n\r\n const galleryId = this.element.getAttribute('data-gallery-id');\r\n\r\n if (galleryId) {\r\n const items = this._getItems(galleryId);\r\n\r\n this._triggerElements.forEach(trigger =>\r\n trigger.addEventListener('click', event => this._open(items))\r\n );\r\n\r\n this.element.addEventListener('click', event => {\r\n event.preventDefault();\r\n\r\n this._open(items, this.element);\r\n });\r\n }\r\n }\r\n\r\n private _getItems(\r\n galleryId: string\r\n ): Array {\r\n return Array.from(\r\n document.querySelectorAll(`[data-gallery-id=\"${galleryId}\"]`)\r\n ).map(item => {\r\n // todo: settings for class name\r\n const embed = item.getElementsByClassName(\r\n 'js-photoswipe-video-embed'\r\n )[0];\r\n\r\n if (embed) {\r\n return new PhotoswipeHtmlItem(\r\n item as HTMLElement,\r\n embed.innerHTML\r\n );\r\n } else {\r\n return new PhotoswipeImageItem(\r\n item as HTMLElement,\r\n item.getAttribute('data-href'),\r\n parseInt(item.getAttribute('data-width'), 10),\r\n parseInt(item.getAttribute('data-height'), 10)\r\n );\r\n }\r\n });\r\n }\r\n\r\n private _open(\r\n items: Array,\r\n element?: HTMLElement\r\n ) {\r\n const elements = items.map(o => o.el);\r\n let index = element ? elements.indexOf(element) : 0;\r\n\r\n // todo: settings\r\n // in mobile we only start the videos, we don't open the images\r\n // because there is no benefit at all...\r\n // if (isMobile()) {\r\n // if (items[index] instanceof PhotoswipeHtmlItem) {\r\n // player(items[index].el).play();\r\n // }\r\n\r\n // return;\r\n // }\r\n\r\n const options: PhotoSwipe.Options = {\r\n history: false,\r\n index,\r\n getThumbBoundsFn: index => {\r\n const item = items[index];\r\n const pageYScroll = getWindowScrollTop();\r\n\r\n if (item instanceof PhotoswipeImageItem && item.img) {\r\n const rect = item.img.getBoundingClientRect();\r\n return {\r\n x: rect.left,\r\n y: rect.top + pageYScroll,\r\n w: rect.width\r\n };\r\n } else {\r\n const rect = item.el.getBoundingClientRect();\r\n return {\r\n x: rect.left + rect.width / 2,\r\n y: rect.top + pageYScroll + rect.height / 2,\r\n w: 0\r\n };\r\n }\r\n }\r\n };\r\n\r\n const pswp = document.getElementById('pswp');\r\n const gallery = new PhotoSwipe(\r\n pswp,\r\n PhotoSwipeUI_Default,\r\n items,\r\n options\r\n );\r\n\r\n gallery.init();\r\n gallery.listen('close', () =>\r\n Array.from(pswp.getElementsByTagName('iframe')).forEach(\r\n (element: Element) => element.removeAttribute('src')\r\n )\r\n );\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { addClass } from '@opten/dom/add-class';\r\n\r\nconst stringPlayer = 'Player';\r\n\r\n// todo: @opten/typescript?\r\nclass IFramePlayer {\r\n private _buttonElement: HTMLElement;\r\n private _iFrameElement: HTMLIFrameElement;\r\n\r\n private _boundClick = this._handleClick.bind(this);\r\n\r\n constructor(private element: HTMLElement) {\r\n this._buttonElement = element.getElementsByClassName(\r\n 'js-player-start'\r\n )[0] as HTMLElement;\r\n\r\n this._iFrameElement = element.getElementsByTagName('iframe')[0];\r\n\r\n this._init();\r\n }\r\n\r\n private _init() {\r\n // init\r\n if (!(stringPlayer in this.element)) {\r\n // prevent adding event handlers twice\r\n if (this._buttonElement && this._iFrameElement) {\r\n this._buttonElement.addEventListener('click', this._boundClick);\r\n }\r\n }\r\n\r\n this.element[stringPlayer] = this;\r\n }\r\n\r\n private _handleClick() {\r\n this.play();\r\n this._buttonElement.removeEventListener('click', this._boundClick);\r\n }\r\n\r\n play() {\r\n // remove autoplay for all browsers, due to customer wish of 11.01.2019\r\n // added again, due to customer wish of 03.07.2019\r\n if (this._iFrameElement.src.indexOf('autoplay') === -1) {\r\n if (this._iFrameElement.src.indexOf('?') === -1) {\r\n this._iFrameElement.src += '?autoplay=1';\r\n } else {\r\n let src = this._iFrameElement.src.split('?');\r\n this._iFrameElement.src = src[0] + '?autoplay=1&' + src[1];\r\n }\r\n addClass(this.element, '--playing');\r\n }\r\n // addClass(this.element, '--playing');\r\n }\r\n}\r\n\r\nexport default function player(element: HTMLElement) {\r\n let data = element[stringPlayer] as IFramePlayer;\r\n\r\n if (!data) {\r\n data = new IFramePlayer(element);\r\n }\r\n\r\n return data;\r\n}\r\n\r\n@Component({ className: 'js-player', observe: true })\r\nexport class Player {\r\n constructor(private element: HTMLElement) {\r\n player(element);\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-print-page' })\r\nexport class PrintPageComponent{\r\n constructor(private element: HTMLElement){\r\n this.element.addEventListener('click',()=> this.printPage());\r\n }\r\n\r\n private printPage(){\r\n window.print();\r\n return false;\r\n }\r\n}","import { loadScript } from '@opten/script/load-script';\r\n\r\nexport class Recaptcha3Validator {\r\n\tprivate submit: HTMLElement;\r\n\tprivate siteKey: string;\r\n\tprivate actionName: string;\r\n\r\n\tconstructor(private element: HTMLInputElement) {\r\n\t\tthis.submit = this.element\r\n\t\t\t.closest('form')\r\n\t\t\t.querySelector('[type=submit]');\r\n\t\tthis.siteKey = this.element.getAttribute('data-site-key');\r\n\t\tthis.actionName = this.element.getAttribute('data-action-name');\r\n\r\n\t\tlet scriptUrl =\r\n\t\t\t'//www.google.com/recaptcha/api.js?render=' + this.siteKey;\r\n\t\tconst culture = document.documentElement.lang;\r\n\t\tif (culture) {\r\n\t\t\tscriptUrl += '&hl=' + culture;\r\n\t\t}\r\n\r\n\t\tloadScript(scriptUrl)\r\n\t\t\t.then(() => {\r\n\t\t\t\tthis.init();\r\n\t\t\t})\r\n\t\t\t.catch((exc) => console.error('catch', exc));\r\n\t}\r\n\r\n\tprivate init() {\r\n\t\t// Disable the submit button for this form, until we actually have a key from Google reCAPTCHA\r\n\t\tthis.element.form.querySelector('[type=submit]').setAttribute('disabled','disabled');\r\n\r\n\t\tgrecaptcha.ready(() => {\r\n\t\t\tthis.timerFunction();\r\n\t\t});\r\n\r\n\t\t// var form = this.element.closest('form');\r\n\t\t// form.addEventListener('submit', (e) => {\r\n\t\t// \te.preventDefault();\r\n\t\t// \tgrecaptcha.ready(() => {\r\n\t\t// \t\tgrecaptcha\r\n\t\t// \t\t\t.execute(this.siteKey, { action: this.actionName })\r\n\t\t// \t\t\t.then((token) => {\r\n\t\t// \t\t\t\tthis.element.value = token;\r\n\t\t// \t\t\t\tform.submit();\r\n\t\t// \t\t\t});\r\n\t\t// \t});\r\n\t\t// });\r\n\t}\r\n\r\n\tprivate timerFunction() {\r\n\t\tgrecaptcha\r\n\t\t\t.execute(this.siteKey, {\r\n\t\t\t\taction: this.actionName,\r\n\t\t\t})\r\n\t\t\t.then((token) => {\r\n\t\t\t\t // Enable the submit button now we have a token\r\n\t\t\t\tthis.element.form.querySelector('[type=submit]').removeAttribute('disabled'); \r\n\t\t\t\tthis.element.value = token;\r\n\t\t\t});\r\n\t\tsetTimeout(() => this.timerFunction(), 60 * 1000);\r\n\t}\r\n}\r\n\r\nexport default function recaptchaValidator(\r\n\telement: HTMLInputElement\r\n): Recaptcha3Validator {\r\n\treturn new Recaptcha3Validator(element);\r\n}\r\n","import { loadScript } from \"@opten/script/load-script\";\r\n\r\nexport class RecaptchaValidator {\r\n private $captcha: JQuery;\r\n private $form: JQuery;\r\n private $textarea: JQuery;\r\n\r\n constructor(private element: HTMLElement) {\r\n this.$captcha = $(element);\r\n this.$form = this.$captcha.closest(\"form\");\r\n\r\n let scriptUrl =\r\n \"//www.google.com/recaptcha/api.js?render=explicit&onload=recaptchaOnLoadCallback\";\r\n const culture = this.$captcha.data(\"hl\");\r\n if (culture) {\r\n scriptUrl += \"&hl=\" + culture;\r\n }\r\n\r\n loadScript(scriptUrl).catch((exc) => console.error(\"catch\", exc));\r\n\r\n window.recaptchaOnLoadCallback = () => {\r\n this.init();\r\n };\r\n }\r\n\r\n private init() {\r\n try {\r\n grecaptcha.render(this.$captcha[0], {\r\n callback: (response) => this.callback(response),\r\n sitekey: this.$captcha.data(\"sitekey\"),\r\n });\r\n\r\n this.$textarea = this.$form.find(\"#g-recaptcha-response\");\r\n\r\n this.$textarea\r\n .attr(\"data-val-required\", this.$captcha.data(\"message\"))\r\n .attr(\"data-val\", \"true\")\r\n .attr(\"required\", \"required\")\r\n .attr(\"readonly\", \"readonly\")\r\n .css({\r\n display: \"block\",\r\n height: \"0px\",\r\n width: \"0px\",\r\n border: \"none\",\r\n margin: \"0\",\r\n });\r\n\r\n this.updateForm();\r\n\r\n this.$form.on(\"submit\", (e) => {\r\n const response = grecaptcha.getResponse();\r\n\r\n if (response.length === 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n });\r\n } catch (error) {\r\n /*possible duplicated instances*/\r\n }\r\n }\r\n\r\n private callback(response) {\r\n this.$textarea.valid();\r\n this.updateForm();\r\n }\r\n\r\n private updateForm() {\r\n this.$form.removeData(\"validator\");\r\n this.$form.removeData(\"unobtrusiveValidation\");\r\n $.validator.unobtrusive.parse(this.$form);\r\n }\r\n}\r\n\r\nexport default function recaptchaValidator(\r\n element: HTMLElement\r\n): RecaptchaValidator {\r\n return new RecaptchaValidator(element);\r\n}\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\nimport { Select, SelectOptions } from \"@opten/select\";\r\n\r\n@Component({ className: 'js-select' })\r\nexport class SelectComponent {\r\n\tselect: Select\r\n constructor(private element: HTMLSelectElement) {\r\n this.select = new Select(element, {\r\n\t\t\tclasses: {\r\n\t\t\t\tcomponent: 'c-select',\r\n\t\t\t\tactive: '--active',\r\n\t\t\t\thighlighted: '--highlighted',\r\n\t\t\t\tdisabled: '--disabled',\r\n\t\t\t\ticonHtml: ''\r\n\t\t\t}\r\n\t\t} as SelectOptions);\r\n }\r\n}","// global cookie cache\r\nconst cookies = {};\r\n\r\nexport function getCookie(key: string) {\r\n if (cookies[key]) {\r\n return cookies[key];\r\n }\r\n\r\n const all = document.cookie.split('; ');\r\n\r\n for (let i = all.length - 1; i >= 0; i--) {\r\n const cookie = all[i].split('=');\r\n cookies[cookie[0]] = cookie[1];\r\n }\r\n\r\n return cookies[key];\r\n}\r\n\r\nexport function setCookie(\r\n key: string,\r\n value: string,\r\n date: Date,\r\n secure: boolean = true,\r\n path: string = '/',\r\n domain?: string\r\n) {\r\n const cookie = [\r\n `${key}${value ? `=${value}` : '='}`,\r\n `expires=${date.toUTCString()}`,\r\n `path=${path}`\r\n ];\r\n\r\n if (domain) {\r\n cookie.push(`domain=${domain}`);\r\n }\r\n\r\n if (secure) {\r\n cookie.push(`secure`);\r\n }\r\n\r\n delete cookies[key];\r\n document.cookie = cookie.join(';');\r\n}\r\n\r\nexport function deleteCookie(key: string, path: string = '/') {\r\n if (getCookie(key)) {\r\n delete cookies[key];\r\n document.cookie = `${key}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=${path};`;\r\n }\r\n}\r\n","export const MOBILE_WIDTH = 1024;\r\nexport const PAD_WIDTH = 1200;\r\n\r\n// todo: something like Angular? Breakpoint detection?\r\nexport function isMobile() {\r\n return window.innerWidth < MOBILE_WIDTH;\r\n}\r\n\r\n// todo: something like Angular? Breakpoint detection?\r\nexport function isPad() {\r\n return window.innerWidth < PAD_WIDTH;\r\n}\r\n","import 'core-js/es6/reflect';\r\nimport 'core-js/fn/object/assign';\r\n\r\nimport 'picturefill';\r\nimport 'clip-path';","import { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\n\r\nexport class BreadcrumbOptions {\r\n\texpandClassName?: string;\r\n\titemClassName?: string;\r\n\titemStaticClassName?: string;\r\n\tinitializedClassName?: string;\r\n\thiddenClassName?: string;\r\n\tscrollToLabel?: boolean;\r\n\tshrinkMode?: 'None' | 'Width';\r\n\tshrinkCap?: number;\r\n\tbreakpoints?: {\r\n\t\tmaxWidth: number;\r\n\t\tshrinkMode?: 'None' | 'Width';\r\n\t};\r\n}\r\n\r\nexport class Breadcrumb {\r\n\tprivate options: BreadcrumbOptions = {\r\n\t\texpandClassName: 'js-breadcrumb-expand',\r\n\t\titemClassName: 'js-breadcrumb-item',\r\n\t\titemStaticClassName: 'js-breadcrumb-static-item',\r\n\t\tinitializedClassName: 'is-initialized',\r\n\t\thiddenClassName: 'is-hidden',\r\n\t\tscrollToLabel: false,\r\n\t\tshrinkMode: 'None',\r\n\t\tshrinkCap: 5,\r\n\t\tbreakpoints: {\r\n\t\t\tmaxWidth: undefined,\r\n\t\t\tshrinkMode: 'Width',\r\n\t\t},\r\n\t};\r\n\r\n\t// todo: config? or data-expanded=\"true|false\"\r\n\tprivate expanded = true;\r\n\tprivate listElement: HTMLElement;\r\n\tprivate itemElements: HTMLElement[];\r\n\r\n\tconstructor(private element: HTMLElement, options?: BreadcrumbOptions) {\r\n\t\tthis.options = { ...this.options, ...options };\r\n\r\n\t\tthis.listElement = this.element.firstElementChild as HTMLElement;\r\n\r\n\t\tthis._init();\r\n\t}\r\n\r\n\tprivate _init() {\r\n\t\tthis.itemElements = Array.from(\r\n\t\t\tthis.element.getElementsByClassName(this.options.itemClassName)\r\n\t\t) as HTMLElement[];\r\n\r\n\t\tif (this.itemElements && this.itemElements.length) {\r\n\t\t\tconst togglers = Array.from(\r\n\t\t\t\tdocument.getElementsByClassName(this.options.expandClassName)\r\n\t\t\t) as HTMLElement[];\r\n\r\n\t\t\ttogglers.forEach((button) =>\r\n\t\t\t\tbutton.addEventListener('click', (event) =>\r\n\t\t\t\t\tthis._handleClick(event, button)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\t// todo: better way?\r\n\t\t\t// slice(1) to exlude expander\r\n\t\t\tif (this.options.scrollToLabel) {\r\n\t\t\t\tthis.itemElements.slice(1).forEach((item, index) => {\r\n\t\t\t\t\t//TODO: js-breadcrumb-label?\r\n\t\t\t\t\tconst link = item.getElementsByTagName('a')[0];\r\n\r\n\t\t\t\t\tif (link) {\r\n\t\t\t\t\t\tlink.addEventListener('click', (event) => {\r\n\t\t\t\t\t\t\t// only prevent default if we have a menu\r\n\t\t\t\t\t\t\t// otherwise normal links doesn' work anymore\r\n\r\n\t\t\t\t\t\t\tif (link.href.indexOf('#menu-breadcrumb') !== -1) {\r\n\t\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t\t\tthis._setFocus(index);\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\r\n\t\t\t// TODO: more shrink modes?\r\n\t\t\t// shrink the breadcrumb if children are bigger than the container\r\n\t\t\tif (this.options.shrinkMode === 'Width') {\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.expanded &&\r\n\t\t\t\t\tthis._getItemTotalWidth() > this.element.offsetWidth &&\r\n\t\t\t\t\tthis.itemElements.length > 2\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis._shrink(togglers);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// TODO: more shrink modes?\r\n\t\t\t// shrink the breadcrumb if we hit the breakpoint\r\n\t\t\tif (\r\n\t\t\t\tthis.options.breakpoints &&\r\n\t\t\t\tthis.options.breakpoints.shrinkMode === 'Width'\r\n\t\t\t) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.expanded &&\r\n\t\t\t\t\tthis.options.breakpoints.maxWidth &&\r\n\t\t\t\t\twindow.innerWidth < this.options.breakpoints.maxWidth &&\r\n\t\t\t\t\tthis.itemElements.length > 2\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis._shrink(togglers);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.options.initializedClassName) {\r\n\t\t\taddClass(this.element, this.options.initializedClassName);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Get the total width of all child elements\r\n\t */\r\n\tprivate _getItemTotalWidth() {\r\n\t\tlet totalWidth = 0;\r\n\r\n\t\tArray.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`.${this.options.itemClassName}:not(.${this.options.hiddenClassName})`\r\n\t\t\t)\r\n\t\t).forEach((item) => (totalWidth += item.offsetWidth));\r\n\r\n\t\tif (this.options.itemStaticClassName) {\r\n\t\t\tArray.from(\r\n\t\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t\t`.${this.options.itemStaticClassName}:not(.${this.options.hiddenClassName})`\r\n\t\t\t\t)\r\n\t\t\t).forEach((item) => {\r\n\t\t\t\ttotalWidth += item.offsetWidth;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn totalWidth;\r\n\t}\r\n\r\n\t/**\r\n\t * Shrink the breadcrumb\r\n\t */\r\n\tprivate _shrink(togglers: HTMLElement[]) {\r\n\t\tif (!this.expanded) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.expanded = false;\r\n\t\ttogglers.forEach((toggler) => this._toggle(toggler));\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the last item is still too big when the breadcrumb is shrinked.\r\n\t * You need to add text-overflow: ellipsis and overflow: hidden for better UX.\r\n\t */\r\n\tprivate _checkWidth() {\r\n\t\tif (this.options.shrinkMode !== 'Width') {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst items = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`.${this.options.itemClassName}:not(.${this.options.hiddenClassName})`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tif (!items.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst lastItem = items[items.length - 1];\r\n\r\n\t\t// reset width\r\n\t\tlastItem.style.width = null;\r\n\r\n\t\tif (this.expanded) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst totalWidth = this._getItemTotalWidth();\r\n\t\tconst maxWidth = this.element.offsetWidth;\r\n\t\tconst cap = this.options.shrinkCap || 0;\r\n\r\n\t\t//TODO: add cap here (totalWidth +/- cap)? Does it matter?\r\n\t\tif (totalWidth < maxWidth) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (items.length !== 2) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// set new width\r\n\t\tconst cut = totalWidth - maxWidth + cap;\r\n\t\tlastItem.style.width = `${lastItem.offsetWidth - cut}px`;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets focus on the HTML element for the label and scrolls it into the view if\r\n\t * scrolling is enabled.\r\n\t */\r\n\tprivate _setFocus(index: number) {\r\n\t\tthis._scrollToLabel(index);\r\n\r\n\t\tif (this.itemElements && this.itemElements.length) {\r\n\t\t\tthis.itemElements[index].focus();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Moves the list such that the desired label (marked by index) is moved into view.\r\n\t */\r\n\tprivate _scrollToLabel(index: number) {\r\n\t\tconst selected = this.itemElements ? this.itemElements[index + 1] : null;\r\n\r\n\t\tif (!selected) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._updateScrollPosition(selected.offsetLeft);\r\n\t}\r\n\r\n\t/** Performs transformation on the list that will cause the list to scroll. */\r\n\tprivate _updateScrollPosition(scrollDistance: number) {\r\n\t\tthis.listElement.scrollLeft = scrollDistance + 20;\r\n\t}\r\n\r\n\tprivate _handleClick(event: Event, button: HTMLElement) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tthis.expanded = !this.expanded;\r\n\r\n\t\tthis._toggle(button);\r\n\r\n\t\t// scroll to last one...\r\n\t\tthis._scrollToLabel(this.itemElements.length - 1);\r\n\t}\r\n\r\n\tprivate _toggle(button: HTMLElement) {\r\n\t\tif (this.expanded) {\r\n\t\t\taddClass(button.parentElement, this.options.hiddenClassName);\r\n\t\t\tthis._updateAria(button.parentElement, false);\r\n\r\n\t\t\t// slice(1) to exlude expander and last item\r\n\t\t\tthis.itemElements.slice(1).forEach((item) => {\r\n\t\t\t\tremoveClass(item, this.options.hiddenClassName);\r\n\t\t\t\tthis._updateAria(item, true);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tremoveClass(button.parentElement, this.options.hiddenClassName);\r\n\t\t\tthis._updateAria(button.parentElement, true);\r\n\r\n\t\t\t// slice(1, end) to exlude expander and last item\r\n\t\t\t// because last item is always expanded...\r\n\t\t\tconst end = this.itemElements.length - 1;\r\n\t\t\tthis.itemElements.slice(1, end).forEach((item) => {\r\n\t\t\t\taddClass(item, this.options.hiddenClassName);\r\n\t\t\t\tthis._updateAria(item, false);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._checkWidth();\r\n\t}\r\n\r\n\tprivate _updateAria(item: HTMLElement, expanded: boolean): void {\r\n\t\titem.setAttribute('aria-expanded', expanded.toString());\r\n\t}\r\n}\r\n\r\nexport function breadcrumb(\r\n\telement: HTMLElement,\r\n\toptions?: BreadcrumbOptions\r\n): Breadcrumb {\r\n\treturn new Breadcrumb(element, options);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { linearTween } from '@opten/animation/linear-tween';\r\nimport { easeInOutQuad } from '@opten/animation/ease-in-out-quad';\r\nimport { getStickyOffset } from '../../utilities/scroll-helper';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { mapFields } from '../../utilities/form';\r\nimport { Chart } from 'chart.js';\r\n\r\nimport { createChart } from '../../utilities/chart';\r\nimport Dataset from '../../utilities/chart';\r\n\r\nconst inDuration = 450;\r\nconst outDuration = 300;\r\nexport const InvestmentSavingsCalculatorFormKey =\r\n\t'InvestmentSavingsCalculatorCalculatorForm';\r\n\r\n@Component({ className: 'js-investment-savings-calculator' })\r\nexport default class InvestmentSavingsCalculator implements OnInit {\r\n\tprivate _proposalElement: HTMLElement;\r\n\tprivate _formElement: HTMLFormElement;\r\n\tprivate _formSendCalculationsElementWrapper: HTMLElement;\r\n\tprivate _formSendCalculationsElement: HTMLFormElement;\r\n\tprivate _loadingIndicator =\r\n\t\t'
Loading...
';\r\n\r\n\tprivate _hasProposal: boolean = false;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis._proposalElement = element.getElementsByClassName(\r\n\t\t\t'js-investment-savings-calculator-proposal'\r\n\t\t)[0] as HTMLElement;\r\n\t\tthis._formElement = this.element.getElementsByClassName(\r\n\t\t\t'js-investment-savings-calculator-form'\r\n\t\t)[0] as HTMLFormElement;\r\n\t}\r\n\r\n\tonInit() {\r\n\t\tthis._formElement.addEventListener('submit', event => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis._fetch();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _createChart() {\r\n\t\tlet canvas: HTMLCanvasElement = document.getElementById(\r\n\t\t\t'js-investmentCalculationChart'\r\n\t\t) as HTMLCanvasElement;\r\n\t\tlet xAxisData: string[] = this._getValuesByElementName('js-year');\r\n\t\tlet yAxisData: Dataset[] = this._getDataset();\r\n\r\n\t\tif (canvas !== null && canvas !== undefined) {\r\n\t\t\ttry {\r\n\t\t\t\tlet chart: Chart = createChart(canvas, xAxisData, yAxisData);\r\n\t\t\t\t//initially handle resize\r\n\t\t\t\t//handleResize(chart,chart.size)\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _getValuesByElementName(name: string) {\r\n\t\tlet values = [];\r\n\t\tlet elements = document.getElementsByName(name);\r\n\t\tArray.from(elements).forEach(element => {\r\n\t\t\tvalues.push(Number((element as HTMLInputElement).value));\r\n\t\t});\r\n\t\treturn values;\r\n\t}\r\n\r\n\tprivate _getDataset() {\r\n\t\tlet dataset: Dataset[];\r\n\r\n\t\tlet yearlyInvestments: number[] = this._getValuesByElementName(\r\n\t\t\t'js-yearlyInvestment'\r\n\t\t);\r\n\t\tlet yearlyProfits: number[] =\r\n\t\t\tthis._getValuesByElementName('js-yearlyProfit');\r\n\r\n\t\tdataset = [\r\n\t\t\t{\r\n\t\t\t\t//single investment\r\n\t\t\t\tlabel: this._getLabelByElementName('js-singleInvestment-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(221, 221, 221)',\r\n\t\t\t\tborderColor: 'rgb(221, 221, 221)',\r\n\t\t\t\tdata: this._generateSingleInvestmentData()\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t//yearly investments\r\n\t\t\t\tlabel: this._getLabelByElementName('js-yearlyInvestment-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(196, 229, 250)',\r\n\t\t\t\tborderColor: 'rgb(196, 229, 250)',\r\n\t\t\t\tdata: yearlyInvestments\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\t//yearly profit\r\n\t\t\t\tlabel: this._getLabelByElementName('js-yearlyProfit-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(0, 110, 181)',\r\n\t\t\t\tborderColor: 'rgb(0, 110, 181)',\r\n\t\t\t\tdata: yearlyProfits\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\treturn dataset;\r\n\t}\r\n\r\n\tprivate _generateSingleInvestmentData() {\r\n\t\tlet singleInvestment: number = Number(\r\n\t\t\t(document.getElementById('js-singleInvestment'))\r\n\t\t\t\t.value\r\n\t\t);\r\n\t\t//let years = this._getValuesByElementName('js-year');\r\n\t\t//let singleInvestments = new Array(years.length);\r\n\t\t//singleInvestments.fill(singleInvestment);\r\n\t\tconst singleInvestments = [singleInvestment];\r\n\t\treturn singleInvestments;\r\n\t}\r\n\tprivate _getLabelByElementName(name: string) {\r\n\t\tlet elements = document.getElementsByClassName(name);\r\n\t\tlet label = '';\r\n\t\tif (elements && elements.length > 0) {\r\n\t\t\tlabel = elements[0].getAttribute('data-label');\r\n\t\t}\r\n\t\treturn label;\r\n\t}\r\n\r\n\tprivate _apply(link: HTMLAnchorElement) {\r\n\t\tif (link.hasAttribute('data-proposal-id')) {\r\n\t\t\tconst form = document.createElement('form');\r\n\t\t\tform.method = 'POST';\r\n\t\t\tform.action = link.href;\r\n\t\t\tform.style.display = 'none';\r\n\r\n\t\t\t// todo: better way for ufprt?\r\n\t\t\tmapFields(this._formElement, ['ufprt']).forEach((value, key) =>\r\n\t\t\t\tform.appendChild(this._createHiddenInput(key, value))\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'ProposalId',\r\n\t\t\t\t\tlink.getAttribute('data-proposal-id')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'SpanIds',\r\n\t\t\t\t\tlink.getAttribute('data-span-ids')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tdocument.body.appendChild(form);\r\n\t\t\tform.submit();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _createHiddenInput(name: string, value: any): HTMLInputElement {\r\n\t\tconst input = document.createElement('input');\r\n\t\tinput.type = 'hidden';\r\n\t\tinput.name = name;\r\n\t\tinput.value = value;\r\n\t\treturn input;\r\n\t}\r\n\r\n\tprivate _fetch() {\r\n\t\tthis._proposalElement.style.overflow = 'hidden';\r\n\r\n\t\tconst get = () => {\r\n\t\t\tconst formData = new FormData();\r\n\t\t\tmapFields(this._formElement).forEach((value, key) =>\r\n\t\t\t\tformData.append(key, value)\r\n\t\t\t);\r\n\t\t\tthis._proposalElement.innerHTML = this._loadingIndicator;\r\n\r\n\t\t\tfetch(this._formElement.action, {\r\n\t\t\t\tmethod: this._formElement.method,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t// todo: set language from chooser in the future\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: formData\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tconsole.log(response);\r\n\t\t\t\t\tif (response.ok) {\r\n\t\t\t\t\t\tconst contentType =\r\n\t\t\t\t\t\t\tresponse.headers.get('content-type');\r\n\r\n\t\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\t\treturn response.text().then(res => {\r\n\t\t\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t\t\tresult: res,\r\n\t\t\t\t\t\t\t\t\tsucceeded: 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\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tresult:\r\n\t\t\t\t\t\t\tresponse.status === 400\r\n\t\t\t\t\t\t\t\t? 'Überprüfen Sie Ihre Angaben und stellen Sie sicher, dass alle Pflichtfelder ausgefüllt sind.'\r\n\t\t\t\t\t\t\t\t: 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.',\r\n\t\t\t\t\t\tsucceeded: false\r\n\t\t\t\t\t};\r\n\t\t\t\t})\r\n\t\t\t\t.then(attempt => {\r\n\t\t\t\t\tconsole.log('attempt', attempt);\r\n\t\t\t\t\tif (attempt.succeeded) {\r\n\t\t\t\t\t\t// todo: kill events?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = attempt.result;\r\n\r\n\t\t\t\t\t\t// initialize collapse\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-investment-savings-calculator-proposal-collapse'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(element =>\r\n\t\t\t\t\t\t\tnew Collapse(element as HTMLElement).hide()\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// initialize spans\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-select-investment-savings-calculator-proposal-span'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(select =>\r\n\t\t\t\t\t\t\tselect.addEventListener('change', () =>\r\n\t\t\t\t\t\t\t\tthis._onChangeEvent(select as HTMLSelectElement)\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.initializeContentForm();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// todo: apply in html and get with javascript for translation?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = `
${attempt.result}
`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._show();\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tif ($(this._formElement).valid()) {\r\n\t\t\tif (this._hasProposal) {\r\n\t\t\t\tthis._hide(() => get());\r\n\t\t\t} else {\r\n\t\t\t\tget();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initializeContentForm() {\r\n\t\tconst formElementWrappers =\r\n\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t'js-investment-calculator-savings-form'\r\n\t\t\t);\r\n\t\tif (formElementWrappers && formElementWrappers.length > 0) {\r\n\t\t\tthis._formSendCalculationsElementWrapper =\r\n\t\t\t\tformElementWrappers[0] as HTMLElement;\r\n\t\t}\r\n\t\tif (this._formSendCalculationsElementWrapper) {\r\n\t\t\tconst formElements =\r\n\t\t\t\tthis._formSendCalculationsElementWrapper.getElementsByTagName(\r\n\t\t\t\t\t'form'\r\n\t\t\t\t);\r\n\t\t\tif (formElements && formElements.length > 0) {\r\n\t\t\t\tthis._formSendCalculationsElement = formElements[0];\r\n\t\t\t\tthis._formSendCalculationsElement.addEventListener(\r\n\t\t\t\t\t'submit',\r\n\t\t\t\t\te => this.handleSubmitSendCalculationsForm(e)\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// extend jquery range validator to work for required checkboxes\r\n\t\t\t\tvar defaultRangeValidator = $.validator.methods.range;\r\n\t\t\t\t$.validator.methods.range = function (value, element, param) {\r\n\t\t\t\t\tif (element.type === 'checkbox') {\r\n\t\t\t\t\t\t// if it's a checkbox return true if it is checked\r\n\t\t\t\t\t\treturn element.checked;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// otherwise run the default validation function\r\n\t\t\t\t\t\treturn defaultRangeValidator.call(\r\n\t\t\t\t\t\t\tthis,\r\n\t\t\t\t\t\t\tvalue,\r\n\t\t\t\t\t\t\telement,\r\n\t\t\t\t\t\t\tparam\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\t$.validator.unobtrusive.parse('form');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleSubmitSendCalculationsForm(event: Event) {\r\n\t\tevent.preventDefault();\r\n\t\tif ($(this._formSendCalculationsElement).valid()) {\r\n\t\t\tconst formData = $(this._formSendCalculationsElement).serialize();\r\n\t\t\tthis._formSendCalculationsElementWrapper.innerHTML =\r\n\t\t\t\tthis._loadingIndicator;\r\n\t\t\tfetch(this._formSendCalculationsElement.action, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: formData,\r\n\t\t\t\tcredentials: 'include'\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\treturn response.text();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis._formSendCalculationsElementWrapper.innerHTML = data;\r\n\t\t\t\t\tthis.initializeContentForm();\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _hide(callback: Function) {\r\n\t\tif (!this._hasProposal) {\r\n\t\t\tcallback();\r\n\t\t} else {\r\n\t\t\tthis._animate(\r\n\t\t\t\tthis._proposalElement.offsetHeight,\r\n\t\t\t\tthis._proposalElement.offsetHeight * -1,\r\n\t\t\t\toutDuration,\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis._proposalElement.style.display = 'none';\r\n\t\t\t\t\tthis._hasProposal = false;\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _show() {\r\n\t\tthis._proposalElement.style.display = 'block';\r\n\t\tthis._animate(0, this._proposalElement.offsetHeight, inDuration);\r\n\r\n\t\tlet offset = getStickyOffset();\r\n\t\toffset += parseCssUnit(getCss(this._proposalElement, 'margin-top'));\r\n\r\n\t\tscrollToElement(\r\n\t\t\tthis._proposalElement,\r\n\t\t\tlinearTween,\r\n\t\t\tinDuration,\r\n\t\t\toffset * -1\r\n\t\t);\r\n\r\n\t\tthis._hasProposal = true;\r\n\r\n\t\tArray.from(\r\n\t\t\tthis.element.getElementsByClassName(\r\n\t\t\t\t'js-investment-savings-calculator-proposal-apply'\r\n\t\t\t)\r\n\t\t).forEach((link: HTMLAnchorElement) =>\r\n\t\t\tlink.addEventListener('click', event => {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tthis._apply(link);\r\n\t\t\t})\r\n\t\t);\r\n\t\tthis._createChart();\r\n\t}\r\n\r\n\tprivate _animate(\r\n\t\tstart: number,\r\n\t\tdistance: number,\r\n\t\tduration: number,\r\n\t\tcomplete?: Function\r\n\t) {\r\n\t\t// todo: function in @opten/events?\r\n\t\tlet timeStart: number;\r\n\t\tlet timeElapsed: number;\r\n\r\n\t\tconst loop = time => {\r\n\t\t\ttimeElapsed = time - timeStart;\r\n\r\n\t\t\tthis._proposalElement.style.height = `${easeInOutQuad(\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)}px`;\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\tthis._proposalElement.style.height = null;\r\n\t\t\t\tif (complete) {\r\n\t\t\t\t\tcomplete();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\trequestAnimationFrame.call(window, time => {\r\n\t\t\ttimeStart = time;\r\n\t\t\tloop(time);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _onChangeEvent(element: HTMLSelectElement) {\r\n\t\tconst mortgageId = element.getAttribute('data-mortgage-id');\r\n\t\tconst proposalId = element.getAttribute('data-proposal-id');\r\n\r\n\t\tconst all = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`[data-proposal-id=\"${proposalId}\"].js-investment-savings-calculator-proposal-details,\r\n [data-mortgage-id=\"${mortgageId}\"][data-proposal-id=\"${proposalId}\"].js-investment-savings-calculator-proposal-table`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tconst others = all.filter(\r\n\t\t\to => o.getAttribute('data-span-id') !== element.value\r\n\t\t);\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tothers.forEach(element => (element.style.display = 'none'));\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tall.filter(element => others.indexOf(element) < 0).forEach(\r\n\t\t\telement => (element.style.display = 'block')\r\n\t\t);\r\n\r\n\t\tconst button = document.querySelector(\r\n\t\t\t`[data-proposal-id=\"${proposalId}\"].js-investment-savings-calculator-proposal-apply`\r\n\t\t);\r\n\r\n\t\tif (button) {\r\n\t\t\tconst spanIds = button.getAttribute('data-span-ids').split(',');\r\n\r\n\t\t\tspanIds.splice(\r\n\t\t\t\tspanIds.indexOf(element.getAttribute('data-old-id')),\r\n\t\t\t\t1,\r\n\t\t\t\telement.value\r\n\t\t\t);\r\n\r\n\t\t\telement.setAttribute('data-old-id', element.value);\r\n\t\t\tbutton.setAttribute('data-span-ids', spanIds.join(','));\r\n\t\t}\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { linearTween } from '@opten/animation/linear-tween';\r\nimport { easeInOutQuad } from '@opten/animation/ease-in-out-quad';\r\nimport { getStickyOffset } from '../../utilities/scroll-helper';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { mapFields } from '../../utilities/form';\r\nimport { Chart } from 'chart.js';\r\n\r\nimport { createChart } from '../../utilities/chart';\r\nimport Dataset from '../../utilities/chart';\r\n\r\nconst inDuration = 450;\r\nconst outDuration = 300;\r\nexport const RetirementCalculatorFormKey = 'RetirementCalculatorCalculatorForm';\r\n\r\n\r\n@Component({ className: 'js-retirement-calculator' })\r\nexport default class RetirementCalculator implements OnInit {\r\n\tprivate _proposalElement: HTMLElement;\r\n\tprivate _formElement: HTMLFormElement;\r\n\tprivate _formSendCalculationsElementWrapper: HTMLElement;\r\n\tprivate _formSendCalculationsElement: HTMLFormElement;\r\n\tprivate _loadingIndicator = '
Loading...
';\r\n\r\n\tprivate _hasProposal: boolean = false;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis._proposalElement = element.getElementsByClassName(\r\n\t\t\t'js-retirement-calculator-proposal'\r\n\t\t)[0] as HTMLElement;\r\n\t\tthis._formElement = this.element.getElementsByClassName(\r\n\t\t\t'js-retirement-calculator-form'\r\n\t\t)[0] as HTMLFormElement;\r\n\t}\r\n\r\n\tonInit() {\r\n\t\tthis._formElement.addEventListener('submit', event => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis._fetch();\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _createChart() {\r\n\t\tlet canvas: HTMLCanvasElement = (document.getElementById('js-retirementCalculationChart') as HTMLCanvasElement);\r\n\t\tlet xAxisData: string[] = this._getValuesByElementName('js-year');\r\n\t\tlet yAxisData: Dataset[] = this._getDataset();\r\n\r\n\t\tif (canvas !== null && canvas !== undefined) {\r\n\t\t\ttry {\r\n\t\t\t\tlet chart: Chart = createChart(canvas, xAxisData, yAxisData);\r\n\t\t\t\t//initially handle resize\r\n\t\t\t\t//handleResize(chart,chart.size)\r\n\t\t\t} catch (error) {\r\n\t\t\t\tconsole.log(error);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _getValuesByElementName(name: string) {\r\n\t\tlet values = [];\r\n\t\tlet elements = document.getElementsByName(name);\r\n\t\tArray.from(elements).forEach(element => {\r\n\t\t\tvalues.push(Number((element as HTMLInputElement).value));\r\n\t\t});\r\n\t\treturn values;\r\n\t}\r\n\r\n\tprivate _getDataset() {\r\n\t\tlet dataset: Dataset[];\r\n\r\n\t\tlet yearlyInvestments: number[] = this._getValuesByElementName('js-yearlyInvestment');\r\n\t\tlet yearlyProfits: number[] = this._getValuesByElementName('js-yearlyProfit');\r\n\t\tlet yearlyBasicProfits: number[] = this._getValuesByElementName('js-yearlyBasicProfit');\r\n\r\n\t\tdataset = [\r\n\t\t\t{\r\n\t\t\t\tlabel: this._getLabelByElementName('js-yearlyInvestment-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(221, 221, 221)',\r\n\t\t\t\tborderColor: 'rgb(221, 221, 221)',\r\n\t\t\t\tdata: yearlyInvestments\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this._getLabelByElementName('js-yearlyBasicProfit-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(196, 229, 250)',\r\n\t\t\t\tborderColor: 'rgb(196, 229, 250)',\r\n\t\t\t\tdata: yearlyBasicProfits\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tlabel: this._getLabelByElementName('js-yearlyProfit-label'),\r\n\t\t\t\tbackgroundColor: 'rgb(0, 110, 181)',\r\n\t\t\t\tborderColor: 'rgb(0, 110, 181)',\r\n\t\t\t\tdata: yearlyProfits\r\n\t\t\t}\r\n\t\t]\r\n\r\n\t\treturn dataset;\r\n\t}\r\n\t\r\n\tprivate _getLabelByElementName(name: string) {\r\n\t\tlet elements = document.getElementsByClassName(name);\r\n\t\tlet label = '';\r\n\t\tif (elements && elements.length > 0) {\r\n\t\t\tlabel = elements[0].getAttribute('data-label');\r\n\t\t}\r\n\t\treturn label;\r\n\t}\r\n\r\n\tprivate _apply(link: HTMLAnchorElement) {\r\n\t\tif (link.hasAttribute('data-proposal-id')) {\r\n\t\t\tconst form = document.createElement('form');\r\n\t\t\tform.method = 'POST';\r\n\t\t\tform.action = link.href;\r\n\t\t\tform.style.display = 'none';\r\n\r\n\t\t\t// todo: better way for ufprt?\r\n\t\t\tmapFields(this._formElement, ['ufprt']).forEach((value, key) =>\r\n\t\t\t\tform.appendChild(this._createHiddenInput(key, value))\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'ProposalId',\r\n\t\t\t\t\tlink.getAttribute('data-proposal-id')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'SpanIds',\r\n\t\t\t\t\tlink.getAttribute('data-span-ids')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tdocument.body.appendChild(form);\r\n\t\t\tform.submit();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _createHiddenInput(name: string, value: any): HTMLInputElement {\r\n\t\tconst input = document.createElement('input');\r\n\t\tinput.type = 'hidden';\r\n\t\tinput.name = name;\r\n\t\tinput.value = value;\r\n\t\treturn input;\r\n\t}\r\n\r\n\tprivate _fetch() {\r\n\t\tthis._proposalElement.style.overflow = 'hidden';\r\n\r\n\t\tconst get = () => {\r\n\t\t\tconst formData = new FormData();\r\n\t\t\tmapFields(this._formElement).forEach((value, key) =>\r\n\t\t\t\tformData.append(key, value)\r\n\t\t\t);\r\n\t\t\tthis._proposalElement.innerHTML = this._loadingIndicator;\r\n\r\n\t\t\tfetch(this._formElement.action, {\r\n\t\t\t\tmethod: this._formElement.method,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t// todo: set language from chooser in the future\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: formData\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tif (response.ok) {\r\n\t\t\t\t\t\tconst contentType = response.headers.get(\r\n\t\t\t\t\t\t\t'content-type'\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\t\treturn response.text();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t})\r\n\t\t\t\t.then(html => {\r\n\t\t\t\t\tif (html) {\r\n\t\t\t\t\t\t// todo: kill events?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = html;\r\n\r\n\t\t\t\t\t\t// initialize collapse\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-retirement-calculator-proposal-collapse'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(element =>\r\n\t\t\t\t\t\t\tnew Collapse(element as HTMLElement).hide()\r\n\t\t\t\t\t\t);\r\n\r\n\r\n\t\t\t\t\t\t// initialize spans\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-select-retirement-calculator-proposal-span'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(select =>\r\n\t\t\t\t\t\t\tselect.addEventListener('change', () =>\r\n\t\t\t\t\t\t\t\tthis._onChangeEvent(select as HTMLSelectElement)\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\tthis.initializeContentForm();\r\n\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// todo: apply in html and get with javascript for translation?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = `
\r\n Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.\r\n
`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._show();\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tif ($(this._formElement).valid()) {\r\n\t\t\tif (this._hasProposal) {\r\n\t\t\t\tthis._hide(() => get());\r\n\t\t\t} else {\r\n\t\t\t\tget();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initializeContentForm() {\r\n\t\tconst formElementWrappers = this._proposalElement.getElementsByClassName('js-retirement-calculator-savings-form');\r\n\t\tif (formElementWrappers && formElementWrappers.length > 0) {\r\n\t\t\tthis._formSendCalculationsElementWrapper = formElementWrappers[0] as HTMLElement;\r\n\t\t}\r\n\t\tif (this._formSendCalculationsElementWrapper) {\r\n\t\t\tconst formElements = this._formSendCalculationsElementWrapper.getElementsByTagName('form');\r\n\t\t\tif (formElements && formElements.length > 0) {\r\n\t\t\t\tthis._formSendCalculationsElement = formElements[0];\r\n\t\t\t\tthis._formSendCalculationsElement.addEventListener('submit', (e) => this.handleSubmitSendCalculationsForm(e));\r\n\r\n\t\t\t\t// extend jquery range validator to work for required checkboxes\r\n\t\t\t\tvar defaultRangeValidator = $.validator.methods.range;\r\n\t\t\t\t$.validator.methods.range = function (value, element, param) {\r\n\t\t\t\t\tif (element.type === 'checkbox') {\r\n\t\t\t\t\t\t// if it's a checkbox return true if it is checked\r\n\t\t\t\t\t\treturn element.checked;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// otherwise run the default validation function\r\n\t\t\t\t\t\treturn defaultRangeValidator.call(this, value, element, param);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t$.validator.unobtrusive.parse('form');\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n\r\n\tprivate handleSubmitSendCalculationsForm(event: Event) {\r\n\t\tevent.preventDefault();\r\n\t\tif ($(this._formSendCalculationsElement).valid()) {\r\n\t\t\tconst formData = $(this._formSendCalculationsElement).serialize();\r\n\t\t\tthis._formSendCalculationsElementWrapper.innerHTML = this._loadingIndicator;\r\n\t\t\tfetch(this._formSendCalculationsElement.action, {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: formData,\r\n\t\t\t\tcredentials: 'include'\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\treturn response.text();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis._formSendCalculationsElementWrapper.innerHTML = data;\r\n\t\t\t\t\tthis.initializeContentForm();\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _hide(callback: Function) {\r\n\t\tif (!this._hasProposal) {\r\n\t\t\tcallback();\r\n\t\t} else {\r\n\t\t\tthis._animate(\r\n\t\t\t\tthis._proposalElement.offsetHeight,\r\n\t\t\t\tthis._proposalElement.offsetHeight * -1,\r\n\t\t\t\toutDuration,\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis._proposalElement.style.display = 'none';\r\n\t\t\t\t\tthis._hasProposal = false;\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _show() {\r\n\t\tthis._proposalElement.style.display = 'block';\r\n\t\tthis._animate(0, this._proposalElement.offsetHeight, inDuration);\r\n\r\n\t\tlet offset = getStickyOffset();\r\n\t\toffset += parseCssUnit(getCss(this._proposalElement, 'margin-top'));\r\n\r\n\t\tscrollToElement(\r\n\t\t\tthis._proposalElement,\r\n\t\t\tlinearTween,\r\n\t\t\tinDuration,\r\n\t\t\toffset * -1\r\n\t\t);\r\n\r\n\t\tthis._hasProposal = true;\r\n\r\n\t\tArray.from(\r\n\t\t\tthis.element.getElementsByClassName(\r\n\t\t\t\t'js-retirement-calculator-proposal-apply'\r\n\t\t\t)\r\n\t\t).forEach((link: HTMLAnchorElement) =>\r\n\t\t\tlink.addEventListener('click', event => {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tthis._apply(link);\r\n\t\t\t})\r\n\t\t);\r\n\t\tthis._createChart();\r\n\t}\r\n\r\n\tprivate _animate(\r\n\t\tstart: number,\r\n\t\tdistance: number,\r\n\t\tduration: number,\r\n\t\tcomplete?: Function\r\n\t) {\r\n\t\t// todo: function in @opten/events?\r\n\t\tlet timeStart: number;\r\n\t\tlet timeElapsed: number;\r\n\r\n\t\tconst loop = time => {\r\n\t\t\ttimeElapsed = time - timeStart;\r\n\r\n\t\t\tthis._proposalElement.style.height = `${easeInOutQuad(\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)}px`;\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\tthis._proposalElement.style.height = null;\r\n\t\t\t\tif (complete) {\r\n\t\t\t\t\tcomplete();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\trequestAnimationFrame.call(window, time => {\r\n\t\t\ttimeStart = time;\r\n\t\t\tloop(time);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _onChangeEvent(element: HTMLSelectElement) {\r\n\t\tconst mortgageId = element.getAttribute('data-mortgage-id');\r\n\t\tconst proposalId = element.getAttribute('data-proposal-id');\r\n\r\n\t\tconst all = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`[data-proposal-id=\"${proposalId}\"].js-retirement-calculator-proposal-details,\r\n [data-mortgage-id=\"${mortgageId}\"][data-proposal-id=\"${proposalId}\"].js-retirement-calculator-proposal-table`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tconst others = all.filter(\r\n\t\t\to => o.getAttribute('data-span-id') !== element.value\r\n\t\t);\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tothers.forEach(element => (element.style.display = 'none'));\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tall.filter(element => others.indexOf(element) < 0).forEach(\r\n\t\t\telement => (element.style.display = 'block')\r\n\t\t);\r\n\r\n\t\tconst button = document.querySelector(\r\n\t\t\t`[data-proposal-id=\"${proposalId}\"].js-retirement-calculator-proposal-apply`\r\n\t\t);\r\n\r\n\t\tif (button) {\r\n\t\t\tconst spanIds = button.getAttribute('data-span-ids').split(',');\r\n\r\n\t\t\tspanIds.splice(\r\n\t\t\t\tspanIds.indexOf(element.getAttribute('data-old-id')),\r\n\t\t\t\t1,\r\n\t\t\t\telement.value\r\n\t\t\t);\r\n\r\n\t\t\telement.setAttribute('data-old-id', element.value);\r\n\t\t\tbutton.setAttribute('data-span-ids', spanIds.join(','));\r\n\t\t}\r\n\t}\r\n}","import { Select, SelectOptions } from '@opten/select';\r\n\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\nexport class CourseForm {\r\n private $element: JQuery;\r\n private $teamMember: JQuery;\r\n private $teamMemberTemplate: JQuery;\r\n private $teamMemberWrapper: JQuery;\r\n private $addTeamMember: JQuery;\r\n private $removeTeamMember: JQuery;\r\n private maxParticipantsData: number;\r\n\r\n constructor(private element: HTMLElement) {\r\n this.$element = $(element);\r\n this.$teamMemberWrapper = this.$element.find(\r\n '.js-course-form-team-member-elements'\r\n );\r\n\r\n this.$addTeamMember = this.$element.find(\r\n '.js-course-form-add-team-member'\r\n );\r\n this.$removeTeamMember = this.$element.find(\r\n '.js-course-form-remove-team-member'\r\n );\r\n this.maxParticipantsData = this.$element\r\n .closest('.js-course-form-wrapper')\r\n .data('max-participants');\r\n\r\n if(this.maxParticipantsData > 0){\r\n this.maxParticipantsData = this.maxParticipantsData - 1; //main member is a participant as well\r\n }\r\n\r\n this.init();\r\n\r\n $(document).on('click', '.js-course-form-add-team-member', e => {\r\n e.preventDefault();\r\n if (\r\n $(e.target)\r\n .closest('a')\r\n .hasClass('--disabled') === false\r\n ) {\r\n const template = document.getElementById(\r\n 'js-course-form-team-member-template'\r\n );\r\n\r\n $(template.innerHTML).appendTo(this.$teamMemberWrapper);\r\n this.updateIdentifiers();\r\n this.updateAddButton();\r\n this.updateForm();\r\n this.reinitSelect(this.$teamMemberWrapper);\r\n }\r\n });\r\n\r\n $(document).on('click', '.js-course-form-remove-team-member', e => {\r\n e.preventDefault();\r\n $(e.target)\r\n .closest('.js-course-form-team-member')\r\n .first()\r\n .remove();\r\n this.updateIdentifiers();\r\n this.updateAddButton();\r\n this.updateForm();\r\n });\r\n }\r\n\r\n public init(): void {\r\n this.updateAddButton();\r\n this.updateForm();\r\n }\r\n\r\n public updateAddButton() {\r\n this.$addTeamMember.removeClass('--disabled');\r\n\r\n let maxParticipants = this.maxParticipantsData;\r\n\r\n if (maxParticipants > 0) {\r\n maxParticipants =\r\n maxParticipants -\r\n this.$element.find('.js-course-form-team-member').length;\r\n\r\n if (maxParticipants <= 0) {\r\n this.$addTeamMember.addClass('--disabled');\r\n }\r\n }\r\n }\r\n\r\n public updateForm() {\r\n $('form').removeData('validator');\r\n $.validator.unobtrusive.parse(document);\r\n }\r\n\r\n public reinitSelect(parent: JQuery) {\r\n let selects = Array.from(parent.find('select.js-select'));\r\n selects = selects.filter(select => select.nextElementSibling === null || hasClass(select.nextElementSibling, 'js-select') === false);\r\n selects.forEach(element => new Select(element as HTMLSelectElement, {\r\n\t\t\tclasses: {\r\n\t\t\t\tcomponent: 'c-select',\r\n\t\t\t\tactive: '--active',\r\n\t\t\t\thighlighted: '--highlighted',\r\n\t\t\t\tdisabled: '--disabled',\r\n\t\t\t\ticonHtml: ''\r\n\t\t\t}\r\n\t\t} as SelectOptions));\r\n }\r\n\r\n public updateIdentifiers(\r\n toReplace: string = 'input,textarea,select,label,span'\r\n ) {\r\n const $teamMember = this.$element.find('.js-course-form-team-member');\r\n if ($teamMember != null && $teamMember.length > 0) {\r\n $teamMember.each((index, elem) => {\r\n let that = $(elem);\r\n that.find('.js-course-form-team-member-index').text(index + 1);\r\n that.find(toReplace).each((itemIndex, item) => {\r\n let $item = $(item);\r\n if ($item.attr('for')) {\r\n $item[0].setAttribute(\r\n 'for',\r\n $item\r\n .prop('for')\r\n .replace(/\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n }\r\n if ($item.attr('name')) {\r\n $item[0].setAttribute(\r\n 'name',\r\n $item\r\n .prop('name')\r\n .replace(/\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n }\r\n if ($item.attr('id')) {\r\n $item[0].setAttribute(\r\n 'id',\r\n $item\r\n .prop('id')\r\n .replace(/\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n }\r\n if ($item.data('valmsg-for')) {\r\n $item.data(\r\n 'valmsg-for',\r\n $item\r\n .data('valmsg-for')\r\n .replace(/\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n $item.attr('data-valmsg-for', $item.data('valmsg-for'));\r\n }\r\n if ($item.attr('aria-describedby')) {\r\n $item.attr(\r\n 'aria-describedby',\r\n $item\r\n .attr('aria-describedby')\r\n .replace(/\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n $item.attr(\r\n 'aria-describedby',\r\n $item\r\n .attr('aria-describedby')\r\n .replace(/\\\\\\[(.+?)\\\\\\]/g, '[' + index + ']')\r\n );\r\n $item.attr(\r\n 'aria-describedby',\r\n $item\r\n .attr('aria-describedby')\r\n .replace(/\\\\\\[(.+?)\\]/g, '[' + index + ']')\r\n );\r\n $item.attr(\r\n 'aria-describedby',\r\n $item\r\n .attr('aria-describedby')\r\n .replace(/\\[(.+?)\\\\\\]/g, '[' + index + ']')\r\n );\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default function courseForm(element: HTMLElement): CourseForm {\r\n return new CourseForm(element);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { getCss } from '@opten/dom/get-css';\r\n\r\nimport { PAD_WIDTH } from '../utilities/detection';\r\nimport { getStickyOffset } from '../utilities/scroll-helper';\r\n\r\nimport { crossSelling } from '@opten/cross-selling';\r\n\r\n@Component({ className: 'js-cross-selling' })\r\nexport default class CrossSelling {\r\n constructor(private element: HTMLElement) {\r\n let gutterBottom = 0;\r\n gutterBottom += parseCssUnit(getCss(element, 'margin-top'));\r\n gutterBottom += parseCssUnit(getCss(element, 'margin-bottom'));\r\n\r\n crossSelling(element, {\r\n gutterTop: getStickyOffset(),\r\n gutterBottom: Math.round(gutterBottom),\r\n breakpoints: {\r\n maxWidth: PAD_WIDTH\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { createNode } from '@opten/dom/create-node';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { linearTween } from '@opten/animation/linear-tween';\r\nimport { isElementScrolledOutsideView } from '@opten/viewport/is-element-scrolled-outside-view';\r\n\r\nimport { isPad } from '../utilities/detection';\r\nimport { getStickyOffset } from '../utilities/scroll-helper';\r\n\r\nconst transitionDuration = 600;\r\n\r\n@Component({ className: 'js-customer-pages-full-preview' })\r\nexport default class CustomerPagesFullPreview implements OnInit {\r\n private _selectElement: HTMLSelectElement;\r\n private _elements: Array;\r\n private _backdropElement: HTMLElement;\r\n\r\n constructor(private element: HTMLElement) {\r\n this._selectElement = this.element.getElementsByClassName(\r\n 'js-customer-pages-full-preview-select'\r\n )[0] as HTMLSelectElement;\r\n\r\n this._backdropElement = this.element.getElementsByClassName(\r\n 'js-customer-pages-full-preview-backdrop'\r\n )[0] as HTMLElement;\r\n\r\n this._elements = Array.from(\r\n this.element.getElementsByClassName(\r\n 'js-customer-pages-full-preview-element'\r\n )\r\n ) as Array;\r\n }\r\n\r\n onInit() {\r\n this._selectElement.addEventListener('change', () => {\r\n const element = document.getElementById(this._selectElement.value);\r\n\r\n if (element) {\r\n const target = new Collapse(element);\r\n const body = document.getElementsByClassName('js-body')[0];\r\n\r\n if (\r\n isElementScrolledOutsideView(\r\n element.getBoundingClientRect(),\r\n [body.getBoundingClientRect()]\r\n )\r\n ) {\r\n scrollToElement(\r\n this.element,\r\n linearTween,\r\n 300,\r\n getStickyOffset() * -1\r\n );\r\n }\r\n\r\n if (!target.isOpen()) {\r\n target.show();\r\n }\r\n }\r\n });\r\n\r\n this._handleResize();\r\n window.addEventListener('resize', () => this._handleResize());\r\n }\r\n\r\n private _handleResize() {\r\n if (isPad()) {\r\n this._elements.forEach(element => {\r\n element.removeEventListener(\r\n 'mouseenter',\r\n this._handleMouseEnter\r\n );\r\n element.removeEventListener(\r\n 'mouseleave',\r\n this._handleMouseLeave\r\n );\r\n });\r\n } else {\r\n this._elements.forEach(element => {\r\n element.addEventListener('mouseenter', this._handleMouseEnter);\r\n element.addEventListener('mouseleave', this._handleMouseLeave);\r\n });\r\n }\r\n }\r\n\r\n private _handleMouseEnter = (event: MouseEvent) => {\r\n const element = event.target as HTMLElement;\r\n\r\n const width = this.element.offsetHeight;\r\n const left =\r\n element.parentElement.offsetLeft +\r\n element.offsetWidth / 2 -\r\n width / 2;\r\n\r\n this._backdropElement.style.left = `${left}px`;\r\n this._backdropElement.style.width = `${width}px`;\r\n\r\n const svg = this._backdropElement.getElementsByClassName(\r\n 'c-customer-pages-full-preview__backdrop-triangle'\r\n )[0] as HTMLElement;\r\n\r\n if (this._redrawSvg(svg, width)) {\r\n if (svg) {\r\n // svg doesn't support parentElement in IE\r\n const parent = svg.parentNode || svg.parentElement;\r\n parent.removeChild(svg);\r\n }\r\n this._backdropElement.appendChild(this._createSvg(width));\r\n }\r\n\r\n addClass(this._backdropElement, '--show');\r\n }\r\n\r\n private _handleMouseLeave = (event: MouseEvent) => {\r\n const element = event.target as HTMLElement;\r\n\r\n removeClass(this._backdropElement, '--show');\r\n this._backdropElement.style.left = null;\r\n this._backdropElement.style.width = null;\r\n }\r\n\r\n private _redrawSvg(svg: HTMLElement, width: number): boolean {\r\n if (!svg) {\r\n return true;\r\n }\r\n\r\n return svg.getBoundingClientRect().width !== width;\r\n }\r\n\r\n private _createSvg(height: number) {\r\n // https://css-tricks.com/easing-linear-gradients/\r\n const svg = `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `;\r\n\r\n const element = createNode(svg);\r\n\r\n element.style.width = `${height}px`;\r\n element.style.height = `${height}px`;\r\n\r\n return element;\r\n }\r\n}\r\n","export class FilterMixitupOptions {\r\n\tclassNames: {\r\n block?:string;\r\n elementContainer?:string;\r\n elementFilter?:string;\r\n elementSort?:string;\r\n elementMultimix?:string;\r\n elementToggle?:string;\r\n modifierActive?: string;\r\n modifierDisabled?: string;\r\n modifierFailed?: string;\r\n delineatorElement?: string;\r\n delineatorModifier?: string;\r\n };\r\n\tload: {\r\n filter?: string;\r\n sort?:string;\r\n };\r\n selectors: {\r\n filter?: string;\r\n mixElement?: string;\r\n };\r\n animation: {\r\n enable?: boolean;\r\n effects?: string;\r\n effectsIn?: string;\r\n effectsOut?: string;\r\n duration?: number;\r\n easing?: string;\r\n applyPerspective?: boolean;\r\n perspectiveDistance?: string;\r\n perspectiveOrigin?: string;\r\n queue?: boolean;\r\n queueLimit?: number;\r\n animateResizeContainer?: boolean;\r\n animateResizeTargets?: boolean;\r\n staggerSequence?: Function;\r\n reverseOut?: boolean;\r\n nudge?: boolean;\r\n clampHeight?: boolean;\r\n clampWidth?: boolean;\r\n };\r\n}\r\n\r\ndeclare var mixitup;\r\n\r\nexport class FilterMixitup {\r\n private _wrapperElement: HTMLElement;\r\n private _element: any;\r\n private _options: FilterMixitupOptions = {\r\n classNames: {\r\n block:'filter__mixitup',\r\n elementContainer:'filter__container',\r\n elementFilter:'filter__element',\r\n elementSort:'filter__element',\r\n elementMultimix:'filter__element',\r\n elementToggle:'filter__element',\r\n modifierActive: 'active',\r\n modifierDisabled: 'disabled',\r\n modifierFailed: 'failed',\r\n delineatorElement: '__',\r\n delineatorModifier: '--'\r\n },\r\n load:{\r\n filter:'all',\r\n sort:'default:asc'\r\n },\r\n selectors: {\r\n mixElement: '.mix',\r\n filter: '.filter__mixitup__filter__element',\r\n },\r\n animation: {\r\n enable: true,\r\n effects: 'fade scale',\r\n effectsIn: '',\r\n effectsOut: '',\r\n duration: 600,\r\n easing: 'ease',\r\n applyPerspective: true,\r\n perspectiveDistance: '3000px',\r\n perspectiveOrigin: '50% 50%',\r\n queue: true,\r\n queueLimit: 3,\r\n animateResizeContainer: true,\r\n animateResizeTargets: false,\r\n staggerSequence: null,\r\n reverseOut: false,\r\n nudge: true,\r\n clampHeight: true,\r\n clampWidth: true\r\n }\r\n\t};\r\n\r\n constructor(private wrapper: HTMLElement, options?: FilterMixitupOptions) {\r\n this._wrapperElement = wrapper;\r\n this._options = { ...this._options, ...options };\r\n\t\tthis.init();\r\n }\r\n\r\n private init() {\r\n this._element = mixitup(this._wrapperElement, {\r\n classNames: {\r\n block:this._options.classNames.block,\r\n elementContainer:this._options.classNames.elementContainer,\r\n elementFilter:this._options.classNames.elementFilter,\r\n elementSort:this._options.classNames.elementSort,\r\n elementMultimix:this._options.classNames.elementMultimix,\r\n elementToggle:this._options.classNames.elementToggle,\r\n modifierActive: this._options.classNames.modifierActive,\r\n modifierDisabled: this._options.classNames.modifierDisabled,\r\n modifierFailed: this._options.classNames.modifierFailed,\r\n delineatorElement: this._options.classNames.delineatorElement,\r\n delineatorModifier: this._options.classNames.delineatorModifier\r\n },\r\n\t\t\tselectors: {\r\n\t\t\t\ttarget: this._options.selectors.mixElement,\r\n\t\t\t\tcontrol: this._options.selectors.filter\r\n\t\t\t},\r\n\t\t\tload: {\r\n filter: this._options.load.filter,\r\n sort: this._options.load.sort\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: this._options.animation.enable,\r\n effects: this._options.animation.effects,\r\n effectsIn: this._options.animation.effectsIn,\r\n effectsOut: this._options.animation.effectsOut,\r\n\t\t\t\tduration: this._options.animation.duration,\r\n easing: this._options.animation.easing,\r\n applyPerspective: this._options.animation.applyPerspective,\r\n\t\t\t\tperspectiveDistance: this._options.animation.perspectiveDistance,\r\n\t\t\t\tperspectiveOrigin:this._options.animation.perspectiveOrigin,\r\n\t\t\t\tqueue:this._options.animation.queue,\r\n\t\t\t\tqueueLimit:this._options.animation.queueLimit,\r\n\t\t\t\tanimateResizeContainer: this._options.animation.animateResizeContainer,\r\n\t\t\t\tanimateResizeTargets:this._options.animation.animateResizeTargets,\r\n\t\t\t\tstaggerSequence:this._options.animation.staggerSequence,\r\n reverseOut:this._options.animation.reverseOut,\r\n nudge: this._options.animation.nudge,\r\n clampHeight: this._options.animation.clampHeight,\r\n clampWidth: this._options.animation.clampWidth\r\n\t\t\t}\r\n\t\t});\r\n }\r\n}\r\n\r\nexport default function filtermixitup(\r\n wrapper: HTMLElement,\r\n options?: FilterMixitupOptions\r\n): FilterMixitup {\r\n return new FilterMixitup(wrapper, options);\r\n}\r\n","import { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { Anchor } from '../../../Opten.HypothekarbankLenzburg.Core.Static/components/anchor';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { getParentWithClass } from '@opten/dom/get-parent-with-class';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { ComponentRef } from '@opten/compiler/metadata/di';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\n\r\n\r\n// todo: better way? global?\r\ndeclare const picturefill;\r\n\r\nexport class FilterPageOptions {\r\n\tselectors: {\r\n\t\tcontent: string;\r\n\t\tselects: string;\r\n\t\tselectTag: string;\r\n\t\ttag: string;\r\n\t\tdropdown: string;\r\n\t\tdropdownToggle: string;\r\n\t\ttagsDropdown: string;\r\n\t\tsearchText: string;\r\n\t\tsearchButton: string;\r\n\t\ttagAll: string;\r\n\t\ttagAllActive: string;\r\n\t\ttagActive: string;\r\n\t\tresetAllActiveTagsElements: string;\r\n\t};\r\n\tpaging: {\r\n\t\tpageBack: string;\r\n\t\tpageNext: string;\r\n\t\tpageJump: string;\r\n\t\tpageJumpAttribute: string;\r\n\t\tpagingSize: string;\r\n\t};\r\n\tloading: {\r\n\t\tcontentLoading: string;\r\n\t\tcontentYScroll: number;\r\n\t};\r\n\tclasses: {\r\n\t\tactive: string;\r\n\t\thidden: string;\r\n\t};\r\n\r\n\tcontentLocation: string;\r\n\twrapperId: string;\r\n\tsearchValueText: string;\r\n\ttagValue: string;\r\n}\r\n@Component({ className: 'js-filter__page__blog' })\r\nexport class FilterPageBlog implements OnInit {\r\n\t@ComponentRef(Anchor) anchor: Anchor;\r\n\r\n\tprivate wrapperElement: HTMLElement;\r\n\tprivate wrapperId: number;\r\n\tprivate contentElement: HTMLElement;\r\n\tprivate contentLocation: string;\r\n\tprivate tags: Array;\r\n\tprivate filters: Array;\r\n\tprivate activeTags: Array;\r\n\tprivate selects: Array;\r\n\tprivate searchTextInput: HTMLInputElement;\r\n\tprivate searchTextButton: HTMLElement;\r\n\tprivate resetAllActiveTagsElements: Array;\r\n\tprivate allTags: Array;\r\n\tprivate pagingSize: number = 15;\r\n\tprivate page: number = 1;\r\n\tprivate _options: FilterPageOptions = {\r\n\t\tselectors: {\r\n\t\t\tcontent: 'js-filter__page__content',\r\n\t\t\tselects: 'js-filter__select',\r\n\t\t\tselectTag: 'js-filter__select__tag',\r\n\t\t\ttag: 'js-filter__tag',\r\n\t\t\tdropdown: 'js-filter__dropdown',\r\n\t\t\tdropdownToggle: 'js-filter__dropdown-toggle',\r\n\t\t\ttagsDropdown: 'js-filter-tags-dropdown',\r\n\t\t\tsearchText: 'js-filter__search-text',\r\n\t\t\tsearchButton: 'js-filter__search-button',\r\n\t\t\ttagAll: 'js-filter__tag-all',\r\n\t\t\ttagAllActive: 'js-filter__tag-all--active',\r\n\t\t\ttagActive: 'js-filter__tag-active',\r\n\t\t\tresetAllActiveTagsElements: 'js-filter__reset-all'\r\n\t\t},\r\n\t\tpaging: {\r\n\t\t\tpageBack: 'js-filter__page-back',\r\n\t\t\tpageNext: 'js-filter__page-next',\r\n\t\t\tpageJump: 'js-filter__page-jump',\r\n\t\t\tpageJumpAttribute: 'data-value',\r\n\t\t\tpagingSize: 'data-paging-size'\r\n\t\t},\r\n\t\tloading: {\r\n\t\t\tcontentLoading:\r\n\t\t\t\t'
Loading...
',\r\n\t\t\tcontentYScroll: 0\r\n\t\t},\r\n\t\tclasses: {\r\n\t\t\tactive: '--active',\r\n\t\t\thidden: '--hidden'\r\n\t\t},\r\n\t\tcontentLocation: 'data-location',\r\n\t\twrapperId: 'data-id',\r\n\t\tsearchValueText: 'search_text',\r\n\t\ttagValue: 'data-value'\r\n\t};\r\n\r\n\tconstructor(private wrapper: HTMLElement, options?: FilterPageOptions) {\r\n\t\tthis.wrapperElement = wrapper;\r\n\t\tthis._options = { ...this._options, ...options };\r\n\r\n\r\n\t}\r\n\r\n\tonInit() {\r\n\t\tthis.init();\r\n\r\n\t\twindow.addEventListener('hashchange', () => this.filter());\r\n\r\n\t\tthis.filter();\r\n\t}\r\n\r\n\tprivate init() {\r\n\t\tthis.wrapperId = Number(\r\n\t\t\tthis.wrapperElement.getAttribute(this._options.wrapperId)\r\n\t\t);\r\n\t\tthis.pagingSize = Number(\r\n\t\t\tthis.wrapperElement.getAttribute(this._options.paging.pagingSize)\r\n\t\t);\r\n\t\tthis.contentLocation = this.wrapperElement.getAttribute(\r\n\t\t\tthis._options.contentLocation\r\n\t\t);\r\n\t\tthis.contentElement = this.wrapperElement.getElementsByClassName(\r\n\t\t\tthis._options.selectors.content\r\n\t\t)[0];\r\n\t\tthis.selects = Array.from(\r\n\t\t\tthis.wrapperElement.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.selects\r\n\t\t\t)\r\n\t\t);\r\n\t\tthis.tags = Array.from(\r\n\t\t\tthis.wrapperElement.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tag\r\n\t\t\t)\r\n\t\t);\r\n\t\tthis.searchTextInput = this.wrapperElement.getElementsByClassName(\r\n\t\t\tthis._options.selectors.searchText\r\n\t\t)[0];\r\n\t\tthis.allTags = Array.from(\r\n\t\t\tthis.wrapperElement.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tagAll\r\n\t\t\t)\r\n\t\t);\r\n\t\tthis.resetAllActiveTagsElements = Array.from(\r\n\t\t\tthis.wrapperElement.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.resetAllActiveTagsElements\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tthis.tags.forEach(tag => {\r\n\t\t\tif (!hasClass(tag, this._options.selectors.selectTag)) {\r\n\t\t\t\ttag.addEventListener('click', () => this.toggleTag(tag));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.searchTextInput != null) {\r\n\t\t\tthis.searchTextButton = this.searchTextInput.parentElement.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.searchButton\r\n\t\t\t)[0];\r\n\r\n\t\t\tthis.searchTextInput.addEventListener('keypress', e => {\r\n\t\t\t\tconst key = e.which || e.keyCode;\r\n\t\t\t\tif (key === 13) {\r\n\t\t\t\t\t// 13 is enter\r\n\t\t\t\t\tthis.loadFilterElements();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (this.searchTextButton != null) {\r\n\t\t\t\tthis.searchTextButton.addEventListener('click', () =>\r\n\t\t\t\t\tthis.loadFilterElements()\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (location.search.length > 0 && this.searchTextButton != null) {\r\n\t\t\t\tconst searchValues = location.search.substring(1).split('=');\r\n\t\t\t\tfor (const index in searchValues) {\r\n\t\t\t\t\tif (searchValues[index] === this._options.searchValueText) {\r\n\t\t\t\t\t\tlet searchTextValue = searchValues[Number(index) + 1];\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tsearchTextValue !== null &&\r\n\t\t\t\t\t\t\tsearchTextValue !== ''\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tsearchTextValue = decodeURIComponent(\r\n\t\t\t\t\t\t\t\tsearchTextValue\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.searchTextInput.value = searchTextValue;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tconst query = window.location.search.substring(1);\r\n\r\n\t\t\t\t// is there anything there ?\r\n\t\t\t\tif (query.length) {\r\n\t\t\t\t\t// are the new history methods available ?\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\twindow.history !== undefined &&\r\n\t\t\t\t\t\twindow.history.pushState !== undefined\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// if pushstate exists, add a new state the the history, this changes the url without reloading the page\r\n\t\t\t\t\t\twindow.history.pushState(\r\n\t\t\t\t\t\t\t{},\r\n\t\t\t\t\t\t\tdocument.title,\r\n\t\t\t\t\t\t\twindow.location.pathname\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\tif (this.selects && this.selects.length > 0) {\r\n\t\t\tthis.selects.forEach(select => {\r\n\t\t\t\tselect.addEventListener('change', this.onChange);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.allTags && this.allTags.length > 0) {\r\n\t\t\tthis.allTags.forEach(allTag =>\r\n\t\t\t\tallTag.addEventListener('click', () =>\r\n\t\t\t\t\tthis.allTagClick(\r\n\t\t\t\t\t\tgetParentWithClass(\r\n\t\t\t\t\t\t\tallTag,\r\n\t\t\t\t\t\t\t'js-filter-tags-dropdown'\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\tif (\r\n\t\t\tthis.resetAllActiveTagsElements &&\r\n\t\t\tthis.resetAllActiveTagsElements.length > 0\r\n\t\t) {\r\n\t\t\tthis.resetAllActiveTagsElements.forEach(resetTags =>\r\n\t\t\t\tresetTags.addEventListener('click', () =>\r\n\t\t\t\t\tthis.resetAllActiveTags()\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst activeFromStart = this.getTagsFromLocationHash().toString();\r\n\t\tif (activeFromStart != null) {\r\n\t\t\tconst tangrammEntries = Array.from(\r\n\t\t\t\tdocument.getElementsByClassName('js-blog-entry')\r\n\t\t\t);\r\n\t\t\tif ((activeFromStart === '') === false) {\r\n\t\t\t\ttangrammEntries.forEach(element => {\r\n\t\t\t\t\tlet tangrammElements = element as HTMLElement;\r\n\t\t\t\t\tif (element.classList.contains(activeFromStart)) {\r\n\t\t\t\t\t\ttangrammElements.style.display = 'block';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttangrammElements.style.display = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\ttangrammEntries.forEach(element => {\r\n\t\t\t\t\tlet tangrammElements = element as HTMLElement;\r\n\t\t\t\t\tif (element.classList.contains('none')) {\r\n\t\t\t\t\t\ttangrammElements.style.display = 'block';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ttangrammElements.style.display = 'none';\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tthis.initContentFilter();\r\n\t}\r\n\r\n\tprivate onChange(event: Event) {\r\n\t\tthis.updateSelectTag(event.target as HTMLSelectElement);\r\n\t}\r\n\r\n\tprivate initContentFilter() {\r\n\t\tconst that = this;\r\n\t\tif (this.contentElement != null) {\r\n\t\t\tconst newSelects = Array.from(\r\n\t\t\t\tthis.contentElement.getElementsByClassName(\r\n\t\t\t\t\tthis._options.selectors.selects\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t\tconst newTags = Array.from(\r\n\t\t\t\tthis.contentElement.getElementsByClassName(\r\n\t\t\t\t\tthis._options.selectors.tag\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tif (newTags && newTags.length > 0) {\r\n\t\t\t\tnewTags.forEach(tag => {\r\n\t\t\t\t\tif (!hasClass(tag, this._options.selectors.selectTag)) {\r\n\t\t\t\t\t\ttag.addEventListener('click', () =>\r\n\t\t\t\t\t\t\tthis.toggleTag(tag)\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthat.tags.push(tag);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (newSelects && newSelects.length > 0) {\r\n\t\t\t\tnewSelects.forEach(select => {\r\n\t\t\t\t\tselect.addEventListener('change', () =>\r\n\t\t\t\t\t\tthis.updateSelectTag(select)\r\n\t\t\t\t\t);\r\n\t\t\t\t\tthat.selects.push(select);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadFilterElements(setPageDefault: boolean = true, jumpToFilter: boolean = false) {\r\n\t\tif (setPageDefault) {\r\n\t\t\tthis.setPageToDefault();\r\n\t\t}\r\n\t\tconst searchText =\r\n\t\t\tthis.searchTextInput != null ? this.searchTextInput.value : '';\r\n\t\tlet filter = this.getFilters();\r\n\t\tlet filterIsAnchor = false;\r\n\t\tif (filter.length < 1 && setPageDefault) {\r\n\t\t\tconst hash = window.location.hash;\r\n\r\n\t\t\tif (hash && hash.indexOf('#anchor-') !== -1) {\r\n\t\t\t\tfilter = hash.replace('#', '');\r\n\t\t\t\tfilterIsAnchor = true;\r\n\r\n\t\t\t};\r\n\t\t}\r\n\t\tconst dataSearch =\r\n\t\t\t'id=' +\r\n\t\t\tthis.wrapperId +\r\n\t\t\t'&filter=' +\r\n\t\t\tfilter +\r\n\t\t\t'&pagingSize=' +\r\n\t\t\tthis.pagingSize +\r\n\t\t\t'&page=' +\r\n\t\t\tthis.page +\r\n\t\t\t'&searchText=' +\r\n\t\t\tsearchText;\r\n\r\n\t\tthis.contentElement.parentElement.style.overflow = 'hidden';\r\n\t\tthis.contentElement.innerHTML = this._options.loading.contentLoading;\r\n\r\n\t\tfetch('/umbraco/surface/' + this.contentLocation, {\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// todo: set language from chooser in the future\r\n\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t},\r\n\t\t\tbody: dataSearch\r\n\t\t})\r\n\t\t\t.then(response => {\r\n\t\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\treturn response.text();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.then(data => {\r\n\t\t\t\tif (data != null && data.length > 0) {\r\n\t\t\t\t\tthis.contentElement.parentElement.style.overflow = null;\r\n\t\t\t\t\tthis.contentElement.innerHTML = data;\r\n\t\t\t\t\tpicturefill();\r\n\t\t\t\t\tthis.setPreviousNextJumpPageEvents();\r\n\t\t\t\t\tthis.initContentFilter();\r\n\t\t\t\t\tthis.reinitFilter();\r\n\t\t\t\t\t// todo: change here to other offsettop ? this.contentElement.offsetTop + this._options.loading.contentYScroll;\r\n\t\t\t\t\tif (filterIsAnchor == false) {\r\n\t\t\t\t\t\tthis.jumpToFilter(jumpToFilter);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.anchor != null && filterIsAnchor) {\r\n\r\n\t\t\t\t\t\tthis.anchor.check();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tprivate jumpToFilter(jumpToFilter) {\r\n\t\tif ((this.getFilters() === '') !== true || jumpToFilter) {\r\n\t\t\tconst crossselling = document.getElementsByClassName('js-cross-selling-box')[0] as HTMLElement;\r\n\t\t\tif (crossselling) {\r\n\t\t\t\tconst navbar = document.getElementsByClassName('c-header')[0] as HTMLElement;\r\n\t\t\t\tif (navbar) {\r\n\t\t\t\t\tlet cookieBannerHeight = 0;\r\n\t\t\t\t\tif (navbar.style.top) {\r\n\t\t\t\t\t\tcookieBannerHeight = parseInt(navbar.style.top, 10);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst offset = ((navbar.offsetHeight * -1) - cookieBannerHeight - 20);\r\n\t\t\t\t\tscrollToElement(crossselling, undefined, 0, offset);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate loadPreviousPage(event: any) {\r\n\t\tevent.preventDefault();\r\n\t\tthis.page = this.page - 1 >= 1 ? this.page - 1 : 1;\r\n\t\tthis.loadFilterElements(false, true);\r\n\t}\r\n\r\n\tprivate loadNextPage(event: any) {\r\n\t\tevent.preventDefault();\r\n\t\tthis.page = this.page + 1;\r\n\t\tthis.loadFilterElements(false, true);\r\n\t}\r\n\r\n\tprivate loadJumpPage(event: any) {\r\n\t\tevent.preventDefault();\r\n\t\tconst element = event.target || event.currentTarget;\r\n\t\tthis.page = Number(\r\n\t\t\telement.getAttribute(this._options.paging.pageJumpAttribute)\r\n\t\t);\r\n\t\tthis.loadFilterElements(false, true);\r\n\t}\r\n\r\n\tprivate setPreviousNextJumpPageEvents() {\r\n\t\tconst pageBack = Array.from(\r\n\t\t\tthis.contentElement.getElementsByClassName(\r\n\t\t\t\tthis._options.paging.pageBack\r\n\t\t\t)\r\n\t\t);\r\n\t\tconst pageNext = Array.from(\r\n\t\t\tthis.contentElement.getElementsByClassName(\r\n\t\t\t\tthis._options.paging.pageNext\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tconst pageJump = Array.from(\r\n\t\t\tthis.contentElement.getElementsByClassName(\r\n\t\t\t\tthis._options.paging.pageJump\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tif (pageBack.length > 0) {\r\n\t\t\tpageBack.forEach(pageStep =>\r\n\t\t\t\tpageStep.addEventListener('click', e =>\r\n\t\t\t\t\tthis.loadPreviousPage(e)\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (pageNext.length > 0) {\r\n\t\t\tpageNext.forEach(pageStep =>\r\n\t\t\t\tpageStep.addEventListener('click', e => this.loadNextPage(e))\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (pageJump.length > 0) {\r\n\t\t\tpageJump.forEach(pageStep => {\r\n\t\t\t\tpageStep.addEventListener('click', e => this.loadJumpPage(e));\r\n\t\t\t\tif (hasClass(pageStep, this._options.classes.active)) {\r\n\t\t\t\t\tthis.page = Number(\r\n\t\t\t\t\t\tpageStep.getAttribute(this._options.paging.pageJumpAttribute)\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 setPageToDefault() {\r\n\t\tthis.page = 1;\r\n\t}\r\n\r\n\tprivate filter() {\r\n\t\tthis.reinitFilter();\r\n\t\tthis.loadFilterElements();\r\n\t}\r\n\r\n\tprivate reinitFilter() {\r\n\t\tthis.activeTags = this.getTagsFromLocationHash();\r\n\t\tthis.filters = [];\r\n\t\tthis.setActiveTagsClasses();\r\n\t}\r\n\r\n\tprivate setActiveTagsClasses() {\r\n\t\tthis.tags.forEach(tag => {\r\n\t\t\tconst tagsDropdown = getParentWithClass(\r\n\t\t\t\ttag,\r\n\t\t\t\tthis._options.selectors.tagsDropdown\r\n\t\t\t);\r\n\t\t\tif (tagsDropdown != null) {\r\n\t\t\t\tif (hasClass(tag, this._options.selectors.tagActive)) {\r\n\t\t\t\t\taddClass(tag.parentElement, this._options.classes.hidden);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremoveClass(\r\n\t\t\t\t\t\ttag.parentElement,\r\n\t\t\t\t\t\tthis._options.classes.hidden\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isTagActive(tag)) {\r\n\t\t\t\tif (tagsDropdown != null) {\r\n\t\t\t\t\tthis.deactivateAllTag(tagsDropdown);\r\n\t\t\t\t} else {\r\n\t\t\t\t\taddClass(tag, this._options.classes.active);\r\n\t\t\t\t\tif (this.isSelectOption(tag)) {\r\n\t\t\t\t\t\t(tag.parentElement).selectedIndex = (tag).index;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tthis.addTagToFilters(tag);\r\n\t\t\t} else {\r\n\t\t\t\tif (tagsDropdown != null) {\r\n\t\t\t\t\tconst allTagsActive = Array.from(\r\n\t\t\t\t\t\ttagsDropdown.getElementsByClassName(\r\n\t\t\t\t\t\t\tthis._options.selectors.tag +\r\n\t\t\t\t\t\t\t' ' +\r\n\t\t\t\t\t\t\tthis._options.selectors.tagActive\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t).filter(\r\n\t\t\t\t\t\ttag =>\r\n\t\t\t\t\t\t\thasClass(\r\n\t\t\t\t\t\t\t\ttag.parentElement,\r\n\t\t\t\t\t\t\t\tthis._options.classes.hidden\r\n\t\t\t\t\t\t\t) !== true\r\n\t\t\t\t\t);\r\n\t\t\t\t\tif (allTagsActive.length === 0) {\r\n\t\t\t\t\t\tthis.activateAllTag(tagsDropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tremoveClass(tag, this._options.classes.active);\r\n\t\t\t\t}\r\n\t\t\t\tthis.removeTagFromFilters(tag);\r\n\t\t\t}\r\n\t\t});\r\n\t\tthis.activeTags = this.filters;\r\n\t\tlet newHash = this.getTagsLocationHash();\r\n\r\n\t\tif (newHash && newHash.length > 1) {\r\n\t\t\tlocation.hash = newHash;\r\n\t\t}\r\n\t}\r\n\r\n\tprivate getTagsFromLocationHash(): Array {\r\n\t\treturn location.hash\r\n\t\t\t.split('/')\r\n\t\t\t.filter(o => ['', '#'].indexOf(o) === -1);\r\n\t}\r\n\r\n\tprivate getTagsLocationHash(): string {\r\n\t\treturn '/' + this.activeTags.join('/');\r\n\t}\r\n\r\n\tprivate toggleTag(tag: Element): void {\r\n\t\tconst doActivateTag = !this.isTagActive(tag);\r\n\t\tconst tagsDropdown = getParentWithClass(\r\n\t\t\ttag,\r\n\t\t\tthis._options.selectors.tagsDropdown\r\n\t\t);\r\n\t\tif (tagsDropdown != null) {\r\n\t\t\tthis.deactivateActiveTags(tagsDropdown);\r\n\t\t\tif (doActivateTag) {\r\n\t\t\t\tthis.activateTag(tag);\r\n\t\t\t} else {\r\n\t\t\t\tthis.deactivateTag(tag);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (doActivateTag) {\r\n\t\t\t\tthis.activateActiveTag(tag);\r\n\t\t\t} else {\r\n\t\t\t\tthis.deactivateActiveTag(tag);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate updateSelectTag(select: Element): void {\r\n\t\tconst selectMenu = select;\r\n\t\tconst selectedIndex = selectMenu.selectedIndex;\r\n\t\tconst selectedTag = selectMenu.options[selectedIndex];\r\n\r\n\t\tconst viewHeight = document.body.scrollHeight;\r\n\t\tthis.deactivateActiveTags(select);\r\n\r\n\t\t// todo: get and set height to prevent Jump\r\n\t}\r\n\r\n\tprivate resetAllActiveTags(): void {\r\n\t\tthis.filters = [];\r\n\t\tlocation.hash = '';\r\n\t\tthis.selects.forEach(select => {\r\n\t\t\t(select).selectedIndex = 0;\r\n\t\t});\r\n\t\tthis.loadFilterElements();\r\n\t}\r\n\r\n\tprivate isSelectOption(tag: Element): boolean {\r\n\t\treturn this.selects.indexOf(tag.parentElement) > -1;\r\n\t}\r\n\r\n\tprivate activateActiveTag(tag: Element) {\r\n\t\taddClass(tag, this._options.classes.active);\r\n\t\tthis.activateTag(tag);\r\n\t}\r\n\r\n\tprivate activateTag(tag: Element) {\r\n\t\tconst tagValue = this.getTagValue(tag);\r\n\t\tconst tangrammEntries = Array.from(\r\n\t\t\tdocument.getElementsByClassName('js-blog-entry')\r\n\t\t);\r\n\t\tif (tagValue.length > 0) {\r\n\t\t\t// set active tag\r\n\t\t\ttangrammEntries.forEach(element => {\r\n\t\t\t\tlet tangrammElements = element as HTMLElement;\r\n\t\t\t\tif (element.classList.contains(tagValue)) {\r\n\t\t\t\t\ttangrammElements.style.display = 'block';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttangrammElements.style.display = 'none';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.activeTags = [];\r\n\t\t\tlocation.hash = '';\r\n\r\n\t\t\tthis.activeTags.push(tagValue);\r\n\t\t\tlocation.hash = this.getTagsLocationHash();\r\n\t\t} else {\r\n\t\t\ttangrammEntries.forEach(element => {\r\n\t\t\t\tlet tangrammElements = element as HTMLElement;\r\n\t\t\t\tif (element.classList.contains('none')) {\r\n\t\t\t\t\ttangrammElements.style.display = 'block';\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttangrammElements.style.display = 'none';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deactivateTag(tag: Element) {\r\n\t\tconst tangrammEntries = Array.from(\r\n\t\t\tdocument.getElementsByClassName('js-blog-entry')\r\n\t\t);\r\n\t\ttangrammEntries.forEach(element => {\r\n\t\t\tlet tangrammElements = element as HTMLElement;\r\n\t\t\tif (element.classList.contains('none')) {\r\n\t\t\t\ttangrammElements.style.display = 'block';\r\n\t\t\t} else {\r\n\t\t\t\ttangrammElements.style.display = 'none';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst tagValue = this.getTagValue(tag);\r\n\t\tif (tagValue.length > 0) {\r\n\t\t\tconst tagValueIndex = this.getTagValueIndex(tagValue);\r\n\t\t\tif (tagValueIndex > -1) {\r\n\t\t\t\tthis.activeTags.splice(tagValueIndex, 1);\r\n\t\t\t\tlocation.hash = this.getTagsLocationHash();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deactivateActiveTags(tagsDropdown: Element): void {\r\n\t\tconst allTagsActive = Array.from(\r\n\t\t\ttagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tag +\r\n\t\t\t\t' ' +\r\n\t\t\t\tthis._options.selectors.tagActive\r\n\t\t\t)\r\n\t\t).filter(\r\n\t\t\ttag =>\r\n\t\t\t\thasClass(tag.parentElement, this._options.classes.hidden) !==\r\n\t\t\t\ttrue\r\n\t\t);\r\n\t\tallTagsActive.forEach(tag => this.deactivateTag(tag));\r\n\t\tconst tagsActive = Array.from(\r\n\t\t\ttagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tag + ' ' + this._options.classes.active\r\n\t\t\t)\r\n\t\t);\r\n\t\ttagsActive.forEach(tag => this.deactivateActiveTag(tag));\r\n\t}\r\n\r\n\tprivate deactivateActiveTag(tag: Element): void {\r\n\t\tremoveClass(tag, this._options.classes.active);\r\n\t\tthis.deactivateTag(tag);\r\n\t}\r\n\r\n\tprivate allTagClick(tagsDropdown: Element) {\r\n\t\tthis.deactivateActiveTags(tagsDropdown);\r\n\t\tthis.activateAllTag(tagsDropdown);\r\n\t}\r\n\r\n\tprivate activateAllTag(tagsDropdown: HTMLElement) {\r\n\t\tif (this.allTags != null && this.allTags.length) {\r\n\t\t\tconst allTag = tagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tagAll\r\n\t\t\t)[0];\r\n\t\t\tconst allTagActive = tagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tagAllActive\r\n\t\t\t)[0];\r\n\t\t\tconst dropdownToggleBtn = getParentWithClass(\r\n\t\t\t\ttagsDropdown,\r\n\t\t\t\tthis._options.selectors.dropdown\r\n\t\t\t).getElementsByClassName(this._options.selectors.dropdownToggle)[0];\r\n\t\t\tconst filterAll = this.getTagValue(allTag);\r\n\r\n\t\t\tif (filterAll !== 'undefined' && filterAll !== '') {\r\n\t\t\t\tthis.addTagToFilters(allTag);\r\n\t\t\t}\r\n\t\t\taddClass(allTag.parentElement, this._options.classes.hidden);\r\n\t\t\tremoveClass(\r\n\t\t\t\tallTagActive.parentElement,\r\n\t\t\t\tthis._options.classes.hidden\r\n\t\t\t);\r\n\t\t\tremoveClass(dropdownToggleBtn, this._options.classes.active);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate deactivateAllTag(tagsDropdown: HTMLElement) {\r\n\t\tif (this.allTags != null && this.allTags.length) {\r\n\t\t\tconst allTag = tagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tagAll\r\n\t\t\t)[0];\r\n\t\t\tconst allTagActive = tagsDropdown.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.tagAllActive\r\n\t\t\t)[0];\r\n\t\t\tconst dropdownToggleBtn = getParentWithClass(\r\n\t\t\t\ttagsDropdown,\r\n\t\t\t\tthis._options.selectors.dropdown\r\n\t\t\t).getElementsByClassName(this._options.selectors.dropdownToggle)[0];\r\n\t\t\tconst filterAll = this.getTagValue(allTag);\r\n\r\n\t\t\tif (filterAll !== 'undefined' && filterAll !== '') {\r\n\t\t\t\tthis.removeTagFromFilters(allTag);\r\n\t\t\t}\r\n\t\t\tremoveClass(allTag.parentElement, this._options.classes.hidden);\r\n\t\t\taddClass(allTagActive.parentElement, this._options.classes.hidden);\r\n\t\t\taddClass(dropdownToggleBtn, this._options.classes.active);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate isTagActive(tag: Element): boolean {\r\n\t\treturn this.getTagValueIndex(this.getTagValue(tag)) > -1;\r\n\t}\r\n\r\n\tprivate getTagValueIndex(tagValue: string): number {\r\n\t\treturn this.activeTags.indexOf(tagValue);\r\n\t}\r\n\r\n\tprivate getTagValue(tag: Element): string {\r\n\t\treturn tag.getAttribute(this._options.tagValue);\r\n\t}\r\n\r\n\tprivate getFilters(): string {\r\n\t\treturn this.filters.toString();\r\n\t}\r\n\r\n\tprivate addTagToFilters(tag: Element) {\r\n\t\tconst tagValue = this.getTagValue(tag);\r\n\r\n\t\tif (tagValue !== 'undefined' && tagValue !== '') {\r\n\t\t\tif (this.filters.indexOf(tagValue) < 0) {\r\n\t\t\t\tthis.filters.push(tagValue);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprivate removeTagFromFilters(tag: Element) {\r\n\t\tconst tagValue = this.getTagValue(tag);\r\n\r\n\t\tif (tagValue !== 'undefined' && tagValue !== '') {\r\n\t\t\tconst indexFilter = this.filters.indexOf(tagValue);\r\n\r\n\t\t\tif (indexFilter > -1) {\r\n\t\t\t\tthis.filters.splice(indexFilter, 1);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import { removeClass } from '@opten/dom/remove-class';\r\n\r\nexport class FormExtendedOptions {\r\n selectors: {\r\n checkboxAccept?: string;\r\n dropzone?: string;\r\n };\r\n}\r\n\r\ndeclare const Dropzone;\r\n\r\nexport class FormExtended {\r\n private wrapperElement: HTMLElement;\r\n private dropzoneWrappers: Array;\r\n private dropzones: Array;\r\n private _options: FormExtendedOptions = {\r\n selectors: {\r\n dropzone: 'js-c-form__field__dropzone'\r\n }\r\n };\r\n\r\n constructor(private wrapper: HTMLElement, options?: FormExtendedOptions) {\r\n this.wrapperElement = wrapper;\r\n this._options = { ...this._options, ...options };\r\n\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.dropzoneWrappers = Array.from(\r\n this.wrapperElement.getElementsByClassName(\r\n this._options.selectors.dropzone\r\n )\r\n );\r\n if (this.dropzoneWrappers) {\r\n this.dropzoneWrappers.forEach(o =>\r\n this.initFileUpload(o as HTMLElement)\r\n );\r\n }\r\n }\r\n\r\n private initFileUpload(element: HTMLElement) {\r\n const button = Array.from(\r\n element.getElementsByClassName(\r\n ' js-c-form__field__dropzone__button'\r\n )\r\n );\r\n if (button != null && button.length > 0) {\r\n button[0].addEventListener('change', event => {\r\n const target = event.target as HTMLInputElement;\r\n const files = target.files;\r\n // let file_names = [];\r\n const template = element.getElementsByClassName(\r\n 'js-c-form__field__dropzone__preview__item__template'\r\n )[0];\r\n const previewTemplate = template.innerHTML;\r\n const previewsContainer = element.getElementsByClassName(\r\n 'c-form__field__dropzone__preview__wrapper'\r\n )[0];\r\n previewsContainer.innerHTML = '';\r\n for (let i = 0; i < files.length; i++) {\r\n // file_names.push(files[i].name);\r\n\r\n let fileItem = previewTemplate.replace(\r\n '{js-c-form__field__dropzone__preview__item__name}',\r\n files[i].name\r\n );\r\n fileItem = fileItem.replace(\r\n '{js-c-form__field__dropzone__preview__item__error}',\r\n ''\r\n ); // todo validate error\r\n\r\n previewsContainer.innerHTML += fileItem;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private initDropZone(element: HTMLElement) {\r\n const id = element.getAttribute('id');\r\n const template = element.getElementsByClassName(\r\n 'c-form__field__dropzone__preview__template'\r\n )[0];\r\n removeClass(template, 'c-form__field__dropzone__preview__template');\r\n const previewTemplate = template.parentElement.innerHTML;\r\n template.parentElement.removeChild(template);\r\n const previewsContainer = element.getElementsByClassName(\r\n 'c-form__field__dropzone__preview__wrapper'\r\n )[0];\r\n const dropzoneElement = new Dropzone(element, {\r\n url: '/',\r\n method: 'POST',\r\n paramName: id,\r\n parallelUploads: 20,\r\n previewTemplate: previewTemplate,\r\n uploadMultiple: true,\r\n autoProcessQueue: false,\r\n previewsContainer: previewsContainer,\r\n clickable: '.js-c-form__field__dropzone__button',\r\n acceptedFiles: 'application/pdf',\r\n init: function () {\r\n document\r\n .getElementsByClassName('js-form-extended-submit')[0]\r\n .addEventListener('click', function (e) {\r\n const errors = 0;\r\n\r\n /*$('#project-create-form [data-val-required]').each(function () {\r\n if (!validateField($(this))) {\r\n errors++;\r\n }\r\n });\r\n\r\n if (!validateFiles()) {\r\n errors++;\r\n }*/\r\n\r\n if (errors === 0) {\r\n dropzoneElement.processQueue();\r\n }\r\n\r\n /*e.preventDefault();\r\n e.stopPropagation();*/\r\n });\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default function form(\r\n wrapper: HTMLElement,\r\n options?: FormExtendedOptions\r\n): FormExtended {\r\n return new FormExtended(wrapper, options);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\n\r\n@Component({ className: 'js-header' })\r\nexport default class Header implements OnInit {\r\n\tprivate _height: number;\r\n\tprivate _marginTop: number | null = null;\r\n\r\n\t// prevent multiple resizings to add more height\r\n\t// if it's the same height as before!\r\n\tprivate _cachedHeight: number | null = null;\r\n\r\n\t// if we don't have a tangram,\r\n\t// we always want to show the shadow!\r\n\tprivate _handleBoxShadow: boolean = true;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis._handleBoxShadow = !hasClass(element, '--shadow');\r\n\t}\r\n\r\n\tonInit() {\r\n\t\taddClass(this.element, '--sticky');\r\n\r\n\t\tthis._handleScroll();\r\n\t\twindow.addEventListener('scroll', () => this._handleScroll());\r\n\r\n\t\tthis._handleResize();\r\n\t\twindow.addEventListener('resize', () => this._handleResize());\r\n\t}\r\n\r\n\tprivate _update() {\r\n\t\tif (this._marginTop == null) {\r\n\t\t\tthis._marginTop = parseCssUnit(getCss(document.body, 'margin-top'));\r\n\t\t}\r\n\r\n\t\tdocument.body.style.marginTop = `${this._marginTop + this._height}px`;\r\n\t}\r\n\r\n\tprivate _handleScroll() {\r\n\t\tif (getWindowScrollTop() >= this._height) {\r\n\t\t\taddClass(this.element, '--base-only');\r\n\t\t\tif (this._handleBoxShadow) {\r\n\t\t\t\taddClass(this.element, '--shadow');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tremoveClass(this.element, '--base-only');\r\n\t\t\tif (this._handleBoxShadow) {\r\n\t\t\t\tremoveClass(this.element, '--shadow');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _handleResize() {\r\n\t\tthis._height = Math.round(this.element.getBoundingClientRect().height);\r\n\r\n\t\tif (this._cachedHeight !== this._height) {\r\n\t\t\tthis._cachedHeight = this._height;\r\n\t\t\tthis._update();\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\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { debounce } from '@opten/reactive/debounce';\r\nimport { isDesktop, isMobile, isPad } from '../utilities/detection';\r\n\r\ndeclare var ScrollMagic: any;\r\ndeclare var TweenMax: any;\r\ndeclare var Linear: any;\r\ndeclare var Power3: any;\r\n\r\nexport const ScrollMagicController = new ScrollMagic.Controller();\r\n\r\n@Component({ className: 'js-magic-scroll' })\r\nexport class MagicScrollComponent {\r\n\tconstructor(private triggerElement: HTMLElement) {\r\n\t\tconst scene = this.triggerElement.getAttribute('data-magic-scene');\r\n\t\tif (scene != null) {\r\n\t\t\tswitch (scene.toUpperCase()) {\r\n\t\t\t\tcase 'STICKYCOLUMN':\r\n\t\t\t\t\tthis.initSceneStickyColumn();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase 'TANGRAM':\r\n\t\t\t\t\tthis.initSceneTangram();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initSceneTangram() {\r\n\t\tconst header = document.getElementsByClassName(\r\n\t\t\t'js-header'\r\n\t\t)[0] as HTMLElement;\r\n\r\n\t\tconst tangramWrapper = this.triggerElement.querySelector(\r\n\t\t\t'.js-magic-scroll-tangram-wrapper'\r\n\t\t);\r\n\r\n\t\tconst tangramContainer = this.triggerElement.querySelector(\r\n\t\t\t'.js-magic-scroll-tangram-container'\r\n\t\t);\r\n\r\n\t\tconst tangramContent = this.triggerElement.querySelector(\r\n\t\t\t'.js-magic-scroll-tangram-content'\r\n\t\t);\r\n\t\tconst tangramElement = this.triggerElement.querySelector(\r\n\t\t\t'.js-magic-scroll-tangram'\r\n\t\t);\r\n\r\n\t\tconst tangramSlide =\r\n\t\t\tthis.triggerElement.querySelector(\r\n\t\t\t\t'.js-tangram__slide'\r\n\t\t\t);\r\n\r\n\t\tlet scenes: any[] = [];\r\n\r\n\t\tif (isMobile() === false) {\r\n\t\t\tscenes = this.setSceneTangram(\r\n\t\t\t\theader,\r\n\t\t\t\ttangramWrapper,\r\n\t\t\t\ttangramContainer,\r\n\t\t\t\ttangramContent,\r\n\t\t\t\ttangramElement,\r\n\t\t\t\ttangramSlide\r\n\t\t\t);\r\n\t\t}\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tscenes.forEach(o => o.destroy(true));\r\n\r\n\t\t\t\tif (isMobile() === false) {\r\n\t\t\t\t\tscenes = this.setSceneTangram(\r\n\t\t\t\t\t\theader,\r\n\t\t\t\t\t\ttangramWrapper,\r\n\t\t\t\t\t\ttangramContainer,\r\n\t\t\t\t\t\ttangramContent,\r\n\t\t\t\t\t\ttangramElement,\r\n\t\t\t\t\t\ttangramSlide\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}, 100)\r\n\t\t);\r\n\t}\r\n\r\n\tprivate setSceneTangram(\r\n\t\theader: HTMLElement,\r\n\t\ttangramWrapper: HTMLElement,\r\n\t\ttangramContainer: HTMLElement,\r\n\t\ttangramContent: HTMLElement,\r\n\t\ttangramElement: HTMLElement,\r\n\t\ttangramSlide: HTMLElement\r\n\t) {\r\n\t\tconst scenes: any[] = [];\r\n\r\n\t\tconst headerHeight = getScrollMagicHeaderHeight(header);\r\n\t\tconst spacingTopHeight = headerHeight;\r\n\t\tconst durationContainer = spacingTopHeight;\r\n\t\tconst fullHeightContainer =\r\n\t\t\ttangramContainer.getBoundingClientRect().height;\r\n\t\tconst isAnimatingClassToToggle = 'is--animating';\r\n\r\n\t\tconst triggerHook = headerHeight / window.innerHeight;\r\n\r\n\t\tconst mainMagicScroll = document.querySelector(\r\n\t\t\t'.js-main-magic-scroll'\r\n\t\t);\r\n\t\tif (mainMagicScroll) {\r\n\t\t\tconst mainMagicScrollScene = new ScrollMagic.Scene({\r\n\t\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\t\ttriggerHook: triggerHook,\r\n\t\t\t\tduration: durationContainer\r\n\t\t\t})\r\n\t\t\t\t.setPin(mainMagicScroll)\r\n\r\n\t\t\t\t// .addIndicators({\r\n\t\t\t\t// \tname: \"main magic container\",\r\n\t\t\t\t// \tcolorStart: 'orange',\r\n\t\t\t\t// \tcolorEnd: 'orange',\r\n\t\t\t\t// \tcolorTrigger: 'orange',\r\n\t\t\t\t// })\r\n\t\t\t\t.addTo(ScrollMagicController);\r\n\t\t\tscenes.push(mainMagicScrollScene);\r\n\t\t}\r\n\r\n\t\tconst tangramContainerScene = new ScrollMagic.Scene({\r\n\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\ttriggerHook: triggerHook,\r\n\t\t\toffset: 5\r\n\t\t})\r\n\t\t\t.setClassToggle(this.triggerElement, isAnimatingClassToToggle)\r\n\t\t\t// .addIndicators({\r\n\t\t\t// \tname: \"main magic container\",\r\n\t\t\t// \tcolorStart: 'orange',\r\n\t\t\t// \tcolorEnd: 'orange',\r\n\t\t\t// \tcolorTrigger: 'orange',\r\n\t\t\t// })\r\n\t\t\t.addTo(ScrollMagicController);\r\n\t\tscenes.push(tangramContainerScene);\r\n\r\n\t\tconst tangramWrapperStickyScene = new ScrollMagic.Scene({\r\n\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\ttriggerHook: triggerHook,\r\n\t\t\tduration: durationContainer\r\n\t\t})\r\n\t\t\t.setPin(tangramWrapper, {\r\n\t\t\t\tpushFollowers: false\r\n\t\t\t})\r\n\t\t\t// .addIndicators({\r\n\t\t\t// \tname: \"tangram container\",\r\n\t\t\t// \tcolorStart: 'red',\r\n\t\t\t// \tcolorEnd: 'red',\r\n\t\t\t// \tcolorTrigger: 'red',\r\n\t\t\t// })\r\n\t\t\t.addTo(ScrollMagicController);\r\n\t\tscenes.push(tangramWrapperStickyScene);\r\n\t\tif (tangramElement) {\r\n\t\t\tlet containerWidthPart = 0;\r\n\t\t\tif (tangramContent) {\r\n\t\t\t\tcontainerWidthPart =\r\n\t\t\t\t\ttangramContent\r\n\t\t\t\t\t\t?.querySelector('.container')\r\n\t\t\t\t\t\t?.getBoundingClientRect().width ?? 0;\r\n\t\t\t}\r\n\t\t\tconst targetSpacingLeft =\r\n\t\t\t\tcontainerWidthPart > 0\r\n\t\t\t\t\t? (window.innerWidth - containerWidthPart) / 2 +\r\n\t\t\t\t\t (containerWidthPart / 12) * 3\r\n\t\t\t\t\t: (window.innerWidth / 100) * 26.6;\r\n\t\t\tconst scalingSize =\r\n\t\t\t\tfullHeightContainer / (fullHeightContainer - 126);\r\n\t\t\tscenes.push(\r\n\t\t\t\tnew ScrollMagic.Scene({\r\n\t\t\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\t\t\ttriggerHook: triggerHook,\r\n\t\t\t\t\toffset: 5\r\n\t\t\t\t})\r\n\t\t\t\t\t.setTween(\r\n\t\t\t\t\t\tTweenMax.fromTo(\r\n\t\t\t\t\t\t\ttangramElement,\r\n\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcss: { x: 0, scaleX: 1, scaleY: 1 }\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tcss: {\r\n\t\t\t\t\t\t\t\t\tx: targetSpacingLeft,\r\n\t\t\t\t\t\t\t\t\tscaleX: scalingSize,\r\n\t\t\t\t\t\t\t\t\tscaleY: scalingSize\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tease: Linear.ease\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t.duration(0.1)\r\n\t\t\t\t\t\t\t.delay(0)\r\n\t\t\t\t\t)\r\n\t\t\t\t\t// .addIndicators({\r\n\t\t\t\t\t// \tname: \"tangram\",\r\n\t\t\t\t\t// \tcolorStart: 'yellow',\r\n\t\t\t\t\t// \tcolorEnd: 'yellow',\r\n\t\t\t\t\t// \tcolorTrigger: 'yellow',\r\n\t\t\t\t\t// })\r\n\t\t\t\t\t.addTo(ScrollMagicController)\r\n\t\t\t);\r\n\t\t}\r\n\t\tif (tangramSlide) {\r\n\t\t\tconst tangramSlideContents =\r\n\t\t\t\ttangramSlide.querySelectorAll(\r\n\t\t\t\t\t'.c-tangram__slide__content'\r\n\t\t\t\t);\r\n\t\t\ttangramSlideContents.forEach(tangramSlideContent => {\r\n\t\t\t\tif (tangramSlideContent) {\r\n\t\t\t\t\tif (hasClass(tangramSlide, isAnimatingClassToToggle)) {\r\n\t\t\t\t\t\tremoveClass(tangramSlide, isAnimatingClassToToggle);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst originalClipPath = tangramSlideContent.getAttribute(\r\n\t\t\t\t\t\t'data-magic-original'\r\n\t\t\t\t\t);\r\n\t\t\t\t\tconst targetClipPath =\r\n\t\t\t\t\t\ttangramSlideContent.getAttribute('data-magic-target');\r\n\t\t\t\t\tif (originalClipPath && targetClipPath) {\r\n\t\t\t\t\t\ttangramSlideContent.style.clipPath = originalClipPath;\r\n\r\n\t\t\t\t\t\tconst proxySlideContent = {\r\n\t\t\t\t\t\t\tclipPath: originalClipPath\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tconst tangramSlideContentScene = new ScrollMagic.Scene({\r\n\t\t\t\t\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\t\t\t\t\ttriggerHook: triggerHook,\r\n\t\t\t\t\t\t\toffset: 5\r\n\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t.setTween(\r\n\t\t\t\t\t\t\t\tTweenMax.fromTo(\r\n\t\t\t\t\t\t\t\t\tproxySlideContent,\r\n\t\t\t\t\t\t\t\t\t1,\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tclipPath: originalClipPath\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tclipPath: targetClipPath,\r\n\t\t\t\t\t\t\t\t\t\tonUpdate: () => {\r\n\t\t\t\t\t\t\t\t\t\t\ttangramSlideContent.style.clipPath =\r\n\t\t\t\t\t\t\t\t\t\t\t\tproxySlideContent.clipPath;\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t.duration(0.2)\r\n\t\t\t\t\t\t\t\t\t.delay(0.5)\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t// .addIndicators({\r\n\t\t\t\t\t\t\t// \tname: \"tangramSlideContent\",\r\n\t\t\t\t\t\t\t// \tcolorStart: 'yellow',\r\n\t\t\t\t\t\t\t// \tcolorEnd: 'yellow',\r\n\t\t\t\t\t\t\t// \tcolorTrigger: 'yellow',\r\n\t\t\t\t\t\t\t// })\r\n\t\t\t\t\t\t\t.addTo(ScrollMagicController);\r\n\t\t\t\t\t\tscenes.push(tangramSlideContentScene);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tconst tangramSlideScene = new ScrollMagic.Scene({\r\n\t\t\t\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\t\t\t\ttriggerHook: 0,\r\n\t\t\t\t\t\t//offset: spacingTopHeight,\r\n\t\t\t\t\t\tduration: durationContainer\r\n\t\t\t\t\t})\r\n\t\t\t\t\t\t.setClassToggle(tangramSlide, isAnimatingClassToToggle)\r\n\t\t\t\t\t\t.addTo(ScrollMagicController);\r\n\t\t\t\t\ttangramSlideScene.on('end', event => {\r\n\t\t\t\t\t\tif (event.scrollDirection !== 'REVERSE') {\r\n\t\t\t\t\t\t\ttangramSlideScene.removeClassToggle();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\ttangramSlideScene.setClassToggle(\r\n\t\t\t\t\t\t\t\ttangramSlide,\r\n\t\t\t\t\t\t\t\tisAnimatingClassToToggle\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\tscenes.push(tangramSlideScene);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\treturn scenes;\r\n\t}\r\n\r\n\tprivate initSceneStickyColumn() {\r\n\t\tconst targetElements = Array.from(\r\n\t\t\tthis.triggerElement.querySelectorAll(\r\n\t\t\t\t'.js-magic-scroll-target'\r\n\t\t\t)\r\n\t\t);\r\n\t\tlet stickyColumnScene: any = null;\r\n\r\n\t\tif (isMobile() === false) {\r\n\t\t\tstickyColumnScene = this.setSceneStickyColumn(targetElements);\r\n\t\t}\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tif (stickyColumnScene) {\r\n\t\t\t\t\tstickyColumnScene.destroy(true);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (const element of targetElements) {\r\n\t\t\t\t\telement.parentElement.removeAttribute('style');\r\n\t\t\t\t}\r\n\t\t\t\tif (isMobile() === false) {\r\n\t\t\t\t\tstickyColumnScene =\r\n\t\t\t\t\t\tthis.setSceneStickyColumn(targetElements);\r\n\t\t\t\t}\r\n\t\t\t}, 100)\r\n\t\t);\r\n\t}\r\n\r\n\tprivate setSceneStickyColumn(targetElements: HTMLElement[]) {\r\n\t\tlet smallerElement: HTMLElement;\r\n\t\tlet smallestHeight = 5000;\r\n\t\tfor (const element of targetElements) {\r\n\t\t\tconst bounds = element.getBoundingClientRect();\r\n\t\t\tif (bounds.height < smallestHeight) {\r\n\t\t\t\tsmallestHeight = bounds.height;\r\n\t\t\t\tsmallerElement = element;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst triggerBounds = this.triggerElement.getBoundingClientRect();\r\n\t\tconst style = getComputedStyle(smallerElement.firstElementChild);\r\n\t\tconst height =\r\n\t\t\tsmallerElement.offsetHeight +\r\n\t\t\tparseInt(style.marginTop, 10) +\r\n\t\t\tparseInt(style.marginBottom, 10);\r\n\r\n\t\tconst header = document.getElementsByClassName(\r\n\t\t\t'js-header'\r\n\t\t)[0] as HTMLElement;\r\n\t\tlet headerHeight = getScrollMagicHeaderHeight(header);\r\n\t\theaderHeight += isPad() ? 30 : 0;\r\n\r\n\t\tlet scene = new ScrollMagic.Scene({\r\n\t\t\ttriggerElement: this.triggerElement,\r\n\t\t\toffset: -headerHeight,\r\n\t\t\ttriggerHook: 0,\r\n\t\t\tduration: triggerBounds.height - height\r\n\t\t})\r\n\t\t\t.setPin(smallerElement)\r\n\t\t\t.addTo(ScrollMagicController);\r\n\t\treturn scene;\r\n\t}\r\n}\r\n\r\nexport function getScrollMagicHeaderHeight(headerElement: HTMLElement) {\r\n\tlet headerHeight = Math.round(headerElement.getBoundingClientRect().height);\r\n\theaderHeight += hasClass(headerElement, '--base-only')\r\n\t\t? isDesktop()\r\n\t\t\t? 54\r\n\t\t\t: 99\r\n\t\t: 0;\r\n\treturn headerHeight;\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport {MapExtended} from '../../../Opten.HypothekarbankLenzburg.Core.Static/components/map-extended/map-extended';\r\ndeclare var Cookiebot;\r\n\r\n@Component({ className: 'js-map-extended' })\r\nexport class MapExtendedComponent {\r\n private mapExtended: MapExtended;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tif(typeof(Cookiebot) !== 'undefined'){\r\n\t\t\twindow.addEventListener('CookiebotOnAccept', () => {\r\n\t\t\t\tif(Cookiebot.consent.marketing && (this.mapExtended == undefined || this.mapExtended == null)){\r\n\t\t\t\t\tthis.initMap(this.element);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse{\r\n\t\t\tthis.initMap(this.element);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initMap(element: HTMLElement){\r\n const showMapMarkerClasses = element.getAttribute(\r\n\t\t\t'data-show-marker-classes'\r\n\t\t);\r\n\t\tconst showMapMarkerClassesList =\r\n\t\t\tshowMapMarkerClasses.length > 0\r\n\t\t\t\t? showMapMarkerClasses.split(',')\r\n\t\t\t\t: [];\r\n\t\tconst mapMarkerInformations = Array.from(\r\n\t\t\telement.getElementsByClassName('c-map-extended__information')\r\n\t\t);\r\n\t\tlet mapMarkerClasses = [];\r\n\t\tif (mapMarkerInformations != null) {\r\n\t\t\tmapMarkerInformations.forEach(e => {\r\n\t\t\t\tmapMarkerClasses.push(e.getAttribute('data-marker-class'));\r\n\t\t\t});\r\n\t\t\tmapMarkerClasses = mapMarkerClasses.filter(\r\n\t\t\t\t(v, i, a) => a.indexOf(v) === i\r\n\t\t\t);\r\n\t\t}\r\n\t\tconst mapStylesAll = this.getMapStyles();\r\n\t\tthis.mapExtended = new MapExtended(element, {\r\n\t\t\tshowMapMarkerClasses: showMapMarkerClassesList,\r\n\t\t\tmapMarkerClasses: mapMarkerClasses,\r\n\t\t\tmapStyles: mapStylesAll,\r\n\t\t\thasMapMarkerClassesButtonIfMultiple: true,\r\n\t\t\tstyledMapName: 'Hypi'\r\n\t\t});\r\n }\r\n\r\n private getMapStyles(){\r\n return [\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'administrative',\r\n\t\t\t\telementType: 'labels.text.fill',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor: '#000000'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'administrative.country',\r\n\t\t\t\telementType: 'geometry.fill',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'landscape',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor: '#eaeaea'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'poi',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'road',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tsaturation: -100\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tlightness: 45\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'road',\r\n\t\t\t\telementType: 'geometry.fill',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor: '#ffffff'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'road.arterial',\r\n\t\t\t\telementType: 'labels.icon',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'road.highway',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'simplified'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'transit',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'water',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor: '#007dc0'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'on'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'water',\r\n\t\t\t\telementType: 'geometry.fill',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tcolor: '#007dc0'\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tgamma: 1\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'on'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'water',\r\n\t\t\t\telementType: 'geometry.stroke',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tfeatureType: 'water',\r\n\t\t\t\telementType: 'labels.text',\r\n\t\t\t\tstylers: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tvisibility: 'off'\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}","import { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { addTransitionEndListener } from '@opten/transition/add-transition-end-listener';\r\n\r\nconst transitionDuration = 600;\r\n\r\nexport function showMegaDropdown(\r\n dropdown: HTMLElement,\r\n backdropElement?: HTMLElement,\r\n callback?: () => void\r\n) {\r\n if (callback) {\r\n addTransitionEndListener(\r\n dropdown,\r\n () => callback(),\r\n transitionDuration\r\n );\r\n }\r\n\r\n addClass(dropdown, '--show');\r\n\r\n if (backdropElement) {\r\n addClass(backdropElement, '--show');\r\n }\r\n}\r\n\r\nexport function hideMegaDropdown(\r\n dropdown: HTMLElement,\r\n backdropElement?: HTMLElement,\r\n callback?: () => void\r\n) {\r\n // add fade-out class for faster animations\r\n addClass(dropdown, '--fade-out');\r\n removeClass(dropdown, '--show');\r\n\r\n if (backdropElement) {\r\n // add fade-out class for faster animations\r\n addClass(backdropElement, '--fade-out');\r\n removeClass(backdropElement, '--show');\r\n }\r\n\r\n addTransitionEndListener(\r\n dropdown,\r\n () => {\r\n // remove fade-out so if we hover again, they're still slow\r\n removeClass(dropdown, '--fade-out');\r\n\r\n if (backdropElement) {\r\n // remove fade-out so if we hover again, they're still slow\r\n removeClass(backdropElement, '--fade-out');\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n },\r\n transitionDuration\r\n );\r\n}\r\n","import { SelectComponent } from '../../../Opten.HypothekarbankLenzburg.Core.Static/components/select/select';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { ChildrenRef } from '@opten/compiler/metadata/di';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\r\nimport { linearTween } from '@opten/animation/linear-tween';\r\nimport { easeInOutQuad } from '@opten/animation/ease-in-out-quad';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { getStickyOffset } from '../utilities/scroll-helper';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { dialog } from '@opten/dialog';\r\nimport { mapFields,getFields, setFieldsFromJson } from '../utilities/form';\r\nimport { setStorage, getStorage, deleteStorage } from '../utilities/storage';\r\nimport { PAD_WIDTH } from './../utilities/detection';\r\nimport { MortgageFundingProposalFormKey, ignoreReadMortgage } from './mortgage-funding-proposal-form';\r\n\r\nimport { Select, SelectOptions } from '@opten/select';\r\n\r\nconst inDuration = 450;\r\nconst outDuration = 300;\r\n\r\n@Component({ className: 'js-mortgage-calculator' })\r\nexport default class MortgageCalculator implements OnInit {\r\n\tprivate _ignoreRead = ignoreReadMortgage;\r\n\tprivate _proposalElement: HTMLElement;\r\n\tprivate _formElement: HTMLFormElement;\r\n\tprivate _tabElements: Array;\r\n\r\n\tprivate _hasProposal: boolean = false;\r\n\tprivate _cookieChecked: boolean = false;\r\n\tprivate _loadingIndicator = '
Loading...
';\r\n\tprivate _typeSelect: Select;\r\n\r\n\t@ChildrenRef(SelectComponent)\r\n\t_selects: Array;\r\n\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis._proposalElement = element.getElementsByClassName(\r\n\t\t\t'js-mortgage-calculator-proposal'\r\n\t\t)[0] as HTMLElement;\r\n\t\tthis._formElement = this.element.getElementsByClassName(\r\n\t\t\t'js-mortgage-calculator-form'\r\n\t\t)[0] as HTMLFormElement;\r\n\t\tthis._tabElements = Array.from(\r\n\t\t\tthis.element.getElementsByClassName('js-mortgage-calculator-tab')\r\n\t\t) as Array;\r\n\t}\r\n\r\n\tonInit() {\r\n\t\tthis._formElement.addEventListener('submit', event => {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis._fetch();\r\n\t\t});\r\n\r\n\t\tthis._typeSelect = this._selects.find(\r\n\t\t\t// bug in select() that js-select is also applied to created element\r\n\t\t\t// therefore multiple instances are found...\r\n\t\t\to => o && o.select.name && o.select.name === 'Type'\r\n\t\t).select;\r\n\r\n\t\tthis._typeSelect.htmlSelectElement.addEventListener('change', () => {\r\n\t\t\t// todo: way to not going over the tab?\r\n\t\t\tconst tab = this.element.querySelector(\r\n\t\t\t\t`a[data-value='${this._typeSelect.value}']`\r\n\t\t\t);\r\n\r\n\t\t\tthis._collapse(tab);\r\n\t\t\tthis._saveCookie();\r\n\t\t});\r\n\r\n\t\tthis._tabElements.forEach((tab: HTMLAnchorElement) =>\r\n\t\t\ttab.addEventListener('click', event => {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tif (hasClass(tab.parentElement, '--active')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._typeSelect.htmlSelectElement.value = tab.getAttribute('data-value');\r\n\t\t\t\tthis._typeSelect.htmlSelectElement.dispatchEvent(new Event('change'));\r\n\t\t\t\tthis._collapse(tab);\r\n\t\t\t\tthis._saveCookie();\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tconst checkboxCookie = this.element.querySelector(\r\n\t\t\t`input[name='Cookie'][type='checkbox']`\r\n\t\t);\r\n\r\n\t\tif (checkboxCookie) {\t\t\t\r\n\t\t\tthis._handleCookie(checkboxCookie);\r\n\t\t}\r\n\r\n\t}\r\n\r\n\tprivate _handleCookie(checkbox: HTMLInputElement) {\r\n\t\tcheckbox.addEventListener('change', event => {\r\n\t\t\tevent.preventDefault(); // prevent checked = false;\r\n\t\t\tthis._cookieChecked = checkbox.checked;\r\n\t\t\tif(checkbox.checked === false){\r\n\r\n\t\t\t\t// todo: better way? why private?\r\n\t\t\t\t(dialog(\r\n\t\t\t\t\tdocument.getElementById(\r\n\t\t\t\t\t\t'c-dialog-mortgage-calculator-cookie'\r\n\t\t\t\t\t),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmaxWidth: PAD_WIDTH\r\n\t\t\t\t\t}\r\n\t\t\t\t) as any).open();\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\t // store initial cookie (Calculator)\r\n\t\t\t\t this._saveCookie();\t\t\t\t \r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst cookie = getStorage(MortgageFundingProposalFormKey);\r\n\t\tif (cookie) {\r\n\t\t\tcheckbox.checked = true;\t\t\t\r\n\t\t\tthis._cookieChecked = true;\r\n\r\n\t\t\ttry {\r\n\t\t\t\tconst json = JSON.parse(cookie);\r\n\r\n\t\t\t\tsetFieldsFromJson(\r\n\t\t\t\t\tthis._formElement,\r\n\t\t\t\t\tthis._selects.map(o => o.select),\r\n\t\t\t\t\tjson,\r\n\t\t\t\t\t[],\r\n\t\t\t\t\t(field, propName) =>\r\n\t\t\t\t\t\t(propName.toLowerCase().indexOf('calculator.') !== -1 &&\r\n\t\t\t\t\t\tfield.name === propName.split('.')[1]) ||\r\n\t\t\t\t\t\t(field.name === 'Email' && propName === 'Email')||\r\n\t\t\t\t\t\t(field.name === 'Phone' && propName === 'Phone')\r\n\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// todo: way to not going over the tab?\r\n\t\t\t\tconst tab = this.element.querySelector(\r\n\t\t\t\t\t`a[data-value='${json['Calculator.Type']}']`\r\n\t\t\t\t);\r\n\t\t\t\tthis._typeSelect.htmlSelectElement.value = tab.getAttribute('data-value');\r\n\t\t\t\tthis._typeSelect.htmlSelectElement.dispatchEvent(new Event('change'));\r\n\t\t\t\tthis._collapse(tab);\r\n\t\t\t} catch {\r\n\t\t\t\t/* todo: do we need to handle here something? */\r\n\t\t\t}\r\n\t\t}\r\n\t\tgetFields(this._formElement, this._ignoreRead).forEach(field => {\r\n\t\t\tif (field.tagName === 'select') {\r\n\t\t\t\tfield.addEventListener('change', () => this._saveCookie());\r\n\t\t\t} else {\r\n\t\t\t\tfield.addEventListener('blur', () => this._saveCookie());\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tprivate _saveCookie(){\r\n\t\tif(this._cookieChecked){\r\n\t\t\tconst cookie = getStorage(MortgageFundingProposalFormKey);\r\n\t\t\tconst json = cookie ? JSON.parse(cookie) : {};\r\n\t\t\tmapFields(this._formElement, this._ignoreRead).forEach(\r\n\t\t\t\t(value, key) => ((key === 'Email' || key === 'Phone') ? json[key] = value : json['Calculator.' + key] = value)\r\n\t\t\t);\r\n\t\r\n\t\t\tsetStorage(MortgageFundingProposalFormKey, JSON.stringify(json));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _collapse(tab: HTMLAnchorElement) {\r\n\t\tif (!tab) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._tabElements.forEach(tab =>\r\n\t\t\tremoveClass(tab.parentElement, '--active')\r\n\t\t);\r\n\t\taddClass(tab.parentElement, '--active');\r\n\r\n\t\tconst selector = tab.getAttribute('href').substring(1);\r\n\t\tconst target = document.getElementById(selector);\r\n\r\n\t\tArray.from(\r\n\t\t\tdocument.getElementsByClassName('mortgage-calculator__collapse')\r\n\t\t)\r\n\t\t\t.filter(o => o !== target)\r\n\t\t\t.forEach(o => removeClass(o, '--show'));\r\n\r\n\t\tif (!hasClass(target, '--show')) {\r\n\t\t\taddClass(target, '--show');\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _apply(link: HTMLAnchorElement) {\r\n\t\tif (link.hasAttribute('data-proposal-id')) {\r\n\t\t\tconst form = document.createElement('form');\r\n\t\t\tform.method = 'POST';\r\n\t\t\tform.action = link.href;\r\n\t\t\tform.style.display = 'none';\r\n\r\n\t\t\t// todo: better way for ufprt?\r\n\t\t\tmapFields(this._formElement, ['ufprt']).forEach((value, key) =>\r\n\t\t\t\tform.appendChild(this._createHiddenInput(key, value))\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'ProposalId',\r\n\t\t\t\t\tlink.getAttribute('data-proposal-id')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tform.appendChild(\r\n\t\t\t\tthis._createHiddenInput(\r\n\t\t\t\t\t'SpanIds',\r\n\t\t\t\t\tlink.getAttribute('data-span-ids')\r\n\t\t\t\t)\r\n\t\t\t);\r\n\r\n\t\t\tdocument.body.appendChild(form);\r\n\t\t\tform.submit();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _createHiddenInput(name: string, value: any): HTMLInputElement {\r\n\t\tconst input = document.createElement('input');\r\n\t\tinput.type = 'hidden';\r\n\t\tinput.name = name;\r\n\t\tinput.value = value;\r\n\t\treturn input;\r\n\t}\r\n\r\n\tprivate _fetch() {\r\n\t\tthis._proposalElement.style.overflow = 'hidden';\r\n\r\n\t\tconst get = () => {\r\n\t\t\tconst formData = new FormData();\r\n\t\t\tmapFields(this._formElement).forEach((value, key) =>\r\n\t\t\t\tformData.append(key, value)\r\n\t\t\t);\r\n\t\t\tthis._proposalElement.innerHTML = this._loadingIndicator;\r\n\r\n\t\t\tfetch(this._formElement.action, {\r\n\t\t\t\tmethod: this._formElement.method,\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t// todo: set language from chooser in the future\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: formData\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tif (response.ok) {\r\n\t\t\t\t\t\tconst contentType = response.headers.get(\r\n\t\t\t\t\t\t\t'content-type'\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\t\treturn response.text();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t})\r\n\t\t\t\t.then(html => {\r\n\t\t\t\t\tif (html) {\r\n\t\t\t\t\t\t// todo: kill events?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = html;\r\n\r\n\t\t\t\t\t\t// initialize collapse\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-mortgage-calculator-proposal-collapse'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(element =>\r\n\t\t\t\t\t\t\tnew Collapse(element as HTMLElement).hide()\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// initialize selects\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-select '\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(element =>\r\n\t\t\t\t\t\t\tnew Select(element as HTMLSelectElement, {\r\n\t\t\t\t\t\t\t\tclasses: {\r\n\t\t\t\t\t\t\t\t\tcomponent: 'c-select',\r\n\t\t\t\t\t\t\t\t\tactive: '--active',\r\n\t\t\t\t\t\t\t\t\thighlighted: '--highlighted',\r\n\t\t\t\t\t\t\t\t\tdisabled: '--disabled',\r\n\t\t\t\t\t\t\t\t\ticonHtml: ''\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} as SelectOptions)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\t// initialize spans\r\n\t\t\t\t\t\tArray.from(\r\n\t\t\t\t\t\t\tthis._proposalElement.getElementsByClassName(\r\n\t\t\t\t\t\t\t\t'js-select-mortgage-calculator-proposal-span'\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t).forEach(select =>\r\n\t\t\t\t\t\t\tselect.addEventListener('change', () =>\r\n\t\t\t\t\t\t\t\tthis._onChangeEvent(select as HTMLSelectElement)\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\t// todo: apply in html and get with javascript for translation?\r\n\t\t\t\t\t\tthis._proposalElement.innerHTML = `
\r\n Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später noch einmal.\r\n
`;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tthis._show();\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tif ($(this._formElement).valid()) {\r\n\t\t\tif (this._hasProposal) {\r\n\t\t\t\tthis._hide(() => get());\r\n\t\t\t} else {\r\n\t\t\t\tget();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _show() {\r\n\t\tthis._proposalElement.style.display = 'block';\r\n\t\tthis._animate(0, this._proposalElement.offsetHeight, inDuration);\r\n\r\n\t\tlet offset = getStickyOffset();\r\n\t\toffset += parseCssUnit(getCss(this._proposalElement, 'margin-top'));\r\n\r\n\t\tscrollToElement(\r\n\t\t\tthis._proposalElement,\r\n\t\t\tlinearTween,\r\n\t\t\tinDuration,\r\n\t\t\toffset * -1\r\n\t\t);\r\n\r\n\t\tthis._hasProposal = true;\r\n\r\n\t\tArray.from(\r\n\t\t\tthis.element.getElementsByClassName(\r\n\t\t\t\t'js-mortgage-calculator-proposal-apply'\r\n\t\t\t)\r\n\t\t).forEach((link: HTMLAnchorElement) =>\r\n\t\t\tlink.addEventListener('click', event => {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tthis._apply(link);\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tprivate _hide(callback: Function) {\r\n\t\tif (!this._hasProposal) {\r\n\t\t\tcallback();\r\n\t\t} else {\r\n\t\t\tthis._animate(\r\n\t\t\t\tthis._proposalElement.offsetHeight,\r\n\t\t\t\tthis._proposalElement.offsetHeight * -1,\r\n\t\t\t\toutDuration,\r\n\t\t\t\t() => {\r\n\t\t\t\t\tthis._proposalElement.style.display = 'none';\r\n\t\t\t\t\tthis._hasProposal = false;\r\n\t\t\t\t\tcallback();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _onChangeEvent(element: HTMLSelectElement) {\r\n\t\tconst mortgageId = element.getAttribute('data-mortgage-id');\r\n\t\tconst proposalId = element.getAttribute('data-proposal-id');\r\n\r\n\t\tconst all = Array.from(\r\n\t\t\tdocument.querySelectorAll(\r\n\t\t\t\t`[data-proposal-id=\"${proposalId}\"].js-mortgage-calculator-proposal-details,\r\n [data-mortgage-id=\"${mortgageId}\"][data-proposal-id=\"${proposalId}\"].js-mortgage-calculator-proposal-table`\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tconst others = all.filter(\r\n\t\t\to => o.getAttribute('data-span-id') !== element.value\r\n\t\t);\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tothers.forEach(element => (element.style.display = 'none'));\r\n\r\n\t\t// todo: collapse or use _animate method?\r\n\t\tall.filter(element => others.indexOf(element) < 0).forEach(\r\n\t\t\telement => (element.style.display = 'block')\r\n\t\t);\r\n\r\n\t\tconst button = document.querySelector(\r\n\t\t\t`[data-proposal-id=\"${proposalId}\"].js-mortgage-calculator-proposal-apply`\r\n\t\t);\r\n\r\n\t\tif (button) {\r\n\t\t\tconst spanIds = button.getAttribute('data-span-ids').split(',');\r\n\r\n\t\t\tspanIds.splice(\r\n\t\t\t\tspanIds.indexOf(element.getAttribute('data-old-id')),\r\n\t\t\t\t1,\r\n\t\t\t\telement.value\r\n\t\t\t);\r\n\r\n\t\t\telement.setAttribute('data-old-id', element.value);\r\n\t\t\tbutton.setAttribute('data-span-ids', spanIds.join(','));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _animate(\r\n\t\tstart: number,\r\n\t\tdistance: number,\r\n\t\tduration: number,\r\n\t\tcomplete?: Function\r\n\t) {\r\n\t\t// todo: function in @opten/events?\r\n\t\tlet timeStart: number;\r\n\t\tlet timeElapsed: number;\r\n\r\n\t\tconst loop = time => {\r\n\t\t\ttimeElapsed = time - timeStart;\r\n\r\n\t\t\tthis._proposalElement.style.height = `${easeInOutQuad(\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)}px`;\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\tthis._proposalElement.style.height = null;\r\n\t\t\t\tif (complete) {\r\n\t\t\t\t\tcomplete();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\trequestAnimationFrame.call(window, time => {\r\n\t\t\ttimeStart = time;\r\n\t\t\tloop(time);\r\n\t\t});\r\n\t}\r\n}\r\n\r\n@Component({ className: 'js-mortgage-calculator-cookie-save', observe: true })\r\nexport class MortgageCalculatorCookieSave {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tif (element.hasAttribute('data-id')) {\r\n\t\t\telement.addEventListener('click', () => {\r\n\t\t\t\tconst id = element.getAttribute('data-id');\r\n\t\t\t\tconst checkbox = document.querySelector(\r\n\t\t\t\t\t'[id=\"' + id + '\"]'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (checkbox) {\r\n\t\t\t\t\tcheckbox.checked = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n@Component({ className: 'js-mortgage-calculator-cookie-delete', observe: true })\r\nexport class MortgageCalculatorCookieDelete {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tif (element.hasAttribute('data-id')) {\r\n\t\t\telement.addEventListener('click', () => {\r\n\t\t\t\tconst id = element.getAttribute('data-id');\r\n\t\t\t\tconst checkbox = document.querySelector(\r\n\t\t\t\t\t'[id=\"' + id + '\"]'\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (checkbox) {\r\n\t\t\t\t\tcheckbox.checked = false;\r\n\t\t\t\t\tdeleteStorage(MortgageFundingProposalFormKey);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { ChildrenRef } from '@opten/compiler/metadata/di';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\n\r\n// import Select from './select';\r\nimport {Select} from '@opten/select';\r\nimport { mapFields, getFields, setFieldsFromJson } from '../utilities/form';\r\nimport { setStorage, deleteStorage, getStorage } from '../utilities/storage';\r\nimport { SelectComponent } from '../../../Opten.HypothekarbankLenzburg.Core.Static/components/select/select';\r\n\r\nexport const MortgageFundingProposalFormKey = 'MortgageCalculatorForm';\r\nexport const ignoreReadMortgage: Array = [\r\n '__RequestVerificationToken',\r\n 'ufprt',\r\n 'ProposalId',\r\n 'SpanIds',\r\n];\r\n\r\n@Component({ className: 'js-mortgage-funding-proposal-form' })\r\nexport default class MortgageCalculatorForm implements OnInit {\r\n private _ignoreRead = ignoreReadMortgage;\r\n \r\n private _ignoreWrite: Array = [\r\n 'Calculator.Type',\r\n 'Calculator.ConstructionCosts',\r\n 'Calculator.Capital',\r\n 'Calculator.FundingCapital',\r\n 'Calculator.MarketValue',\r\n 'Calculator.IsPrivatelyOwnedHome',\r\n // 'Calculator.IsForVacations',\r\n 'Calculator.AnnualNetIncome',\r\n 'Calculator.BirthdayYear',\r\n 'Calculator.Date'\r\n ];\r\n\r\n get active(): boolean {\r\n return (\r\n this.element.getAttribute('data-cookie') &&\r\n this.element.getAttribute('data-cookie').toLowerCase() === 'true'\r\n );\r\n }\r\n\r\n @ChildrenRef(SelectComponent)\r\n \t_selects: Array;\r\n constructor(private element: HTMLFormElement) {\r\n this._ignoreRead.forEach(ignore => this._ignoreWrite.push(ignore));\r\n }\r\n\r\n onInit() {\r\n if (!this.active) {\r\n deleteStorage(MortgageFundingProposalFormKey);\r\n\r\n return;\r\n }\r\n\r\n const cookie = getStorage(MortgageFundingProposalFormKey);\r\n\r\n // read cookie and try to set the form values\r\n if (cookie) {\r\n try {\r\n setFieldsFromJson(\r\n this.element,\r\n\t\t\t\t\tthis._selects.map(o => o.select),\r\n JSON.parse(cookie),\r\n this._ignoreWrite\r\n );\r\n } catch {\r\n /* todo: do we need to handle here something? */\r\n }\r\n }\r\n else{\r\n // store initial cookie (Calculator)\r\n this._save();\r\n }\r\n\r\n \r\n\r\n getFields(this.element, this._ignoreRead).forEach(field => {\r\n if (field.tagName === 'select') {\r\n field.addEventListener('change', () => this._save());\r\n } else {\r\n field.addEventListener('blur', () => this._save());\r\n }\r\n });\r\n }\r\n\r\n private _save() {\r\n const json = {};\r\n mapFields(this.element, this._ignoreRead).forEach(\r\n (value, key) => (json[key] = value)\r\n );\r\n\r\n setStorage(MortgageFundingProposalFormKey, JSON.stringify(json));\r\n }\r\n}\r\n","export * from './navbar';\r\nexport * from './navbar-toggler';\r\nexport * from './navbar-mega-dropdown';\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { ComponentRef } from '@opten/compiler/metadata/di';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { showMegaDropdown, hideMegaDropdown } from '../mega-dropdown';\r\nimport { changedSizeBetweenMobileAndDesktop, isPad } from '../../utilities/detection';\r\nimport { getStickyOffset } from '../../utilities/scroll-helper';\r\nimport { Search } from '../search';\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\n// const mouseEnterDuration = 300;\r\n\r\n// todo: update arias also in dekstop e.g. for mega-dropdown\r\n@Component({ className: 'js-navbar-mega-dropdown-toggler' })\r\nexport class NavbarMegaDropdown implements OnInit {\r\n private _backdropElement: HTMLElement;\r\n private _dropdownElement: HTMLElement;\r\n private _dropdownElements: Array;\r\n private _currentWindowWidth: number;\r\n\r\n get _isOpen(): boolean {\r\n return hasClass(this._dropdownElement, '--show');\r\n }\r\n\r\n @ComponentRef(Search) _search: Search;\r\n\r\n // used to know if we're still animating\r\n // private _timeout: number | null = null;\r\n\r\n // private _boundShow = this._handleShow.bind(this);\r\n // private _boundHide = this._handleHide.bind(this);\r\n\r\n constructor(private element: HTMLElement) {\r\n this._backdropElement = document.getElementsByClassName(\r\n 'js-navbar-backdrop'\r\n )[0] as HTMLElement;\r\n\r\n this._dropdownElement = element.parentElement.getElementsByClassName(\r\n 'js-navbar-mega-dropdown'\r\n )[0] as HTMLElement;\r\n\r\n this._dropdownElements = Array.from(\r\n document.getElementsByClassName('js-navbar-mega-dropdown')\r\n ) as Array;\r\n }\r\n\r\n onInit() {\r\n this._handleResize();\r\n window.addEventListener('resize', () => this._handleResize());\r\n }\r\n\r\n private _addDesktopListeners() {\r\n if (!isPad()) {\r\n this.element.addEventListener('click', this._handleClick);\r\n this._backdropElement.addEventListener(\r\n 'click',\r\n this._handleBackdropClick\r\n );\r\n // this.element.addEventListener('mouseenter', this._boundShow);\r\n // this.element.addEventListener('mouseleave', this._boundHide);\r\n }\r\n }\r\n\r\n private _removeDesktopListener() {\r\n if (isPad()) {\r\n this.element.removeEventListener('click', this._handleClick);\r\n this._backdropElement.removeEventListener(\r\n 'click',\r\n this._handleBackdropClick\r\n );\r\n // this.element.removeEventListener('mouseenter', this._boundShow);\r\n // this.element.removeEventListener('mouseleave', this._boundHide);\r\n }\r\n }\r\n\r\n private _setContainerHeight() {\r\n const container = this._dropdownElement\r\n .firstElementChild as HTMLElement;\r\n\r\n const stickyOffset = getStickyOffset();\r\n if (container && stickyOffset) {\r\n container.style.maxHeight = `calc(100vh - ${stickyOffset}px)`;\r\n }\r\n }\r\n\r\n private _handleResize() {\r\n const wasOpen = this._isOpen !== false;\r\n const oldWindowWidth = this._currentWindowWidth ? parseInt(this._currentWindowWidth.toString(), 10) : window.innerWidth;\r\n const resizedBetweenMobileAndDesktop = changedSizeBetweenMobileAndDesktop(oldWindowWidth);\r\n this._currentWindowWidth = window.innerWidth;\r\n\r\n this.hide();\r\n\r\n if (isPad()) {\r\n this._removeDesktopListener();\r\n } else {\r\n this._setContainerHeight();\r\n this._addDesktopListeners();\r\n }\r\n\r\n if (wasOpen && resizedBetweenMobileAndDesktop === false) {\r\n this.show();\r\n }\r\n }\r\n\r\n public toggle() {\r\n this._isOpen ? this.hide() : this.show();\r\n }\r\n\r\n public show() {\r\n if (this._isOpen) {\r\n return;\r\n }\r\n\r\n // check if another one is open, to hide it except the backdrop\r\n const anyOpen =\r\n this._dropdownElements.map(dropdown => hasClass(dropdown, '--show'))\r\n .length > 0;\r\n\r\n this._dropdownElements.forEach(dropdown => {\r\n if (hasClass(dropdown, '--show')) {\r\n hideMegaDropdown(dropdown);\r\n }\r\n\r\n // nicer animation because we already have one open!\r\n dropdown.style.transition = anyOpen ? 'none' : null;\r\n });\r\n\r\n showMegaDropdown(this._dropdownElement, this._backdropElement);\r\n\r\n // close the search so we don't have to handle the backdrop\r\n // by re-adding it if the search is open...\r\n if (this._search) {\r\n this._search.close();\r\n }\r\n }\r\n\r\n public hide() {\r\n if (!this._isOpen) {\r\n return;\r\n }\r\n\r\n hideMegaDropdown(this._dropdownElement, this._backdropElement);\r\n }\r\n\r\n private _handleClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n this.toggle();\r\n }\r\n\r\n private _handleBackdropClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n\r\n this.hide();\r\n }\r\n\r\n /*private _handleShow(event: MouseEvent) {\r\n // add an delay so we don't show it directly when the user\r\n // hover over the link\r\n if (this._timeout != null) {\r\n // don't do anything if we still animating\r\n return;\r\n }\r\n\r\n const animate = !this._dropdownElement.style.transition;\r\n\r\n if (animate) {\r\n this._timeout = setTimeout(\r\n () =>\r\n showMegaDropdown(\r\n this._dropdownElement,\r\n this._backdropElement\r\n ),\r\n mouseEnterDuration\r\n );\r\n } else {\r\n showMegaDropdown(this._dropdownElement, this._backdropElement);\r\n }\r\n\r\n // close the search so we don't have to handle the backdrop\r\n // by re-adding it if the search is open...\r\n if (this._search) {\r\n this._search.close();\r\n }\r\n }\r\n\r\n private _handleHide(event: MouseEvent) {\r\n const toElement = (event.relatedTarget ||\r\n event.toElement) as HTMLElement;\r\n\r\n // nicer animation, if we go over an other element\r\n // we just hide it instead of animate it\r\n if (\r\n !toElement ||\r\n !isAncestorOfClass(\r\n toElement,\r\n 'js-navbar-mega-dropdown-toggler',\r\n true\r\n )\r\n ) {\r\n this._dropdownElements.forEach(\r\n dropdown => (dropdown.style.transition = null)\r\n );\r\n } else {\r\n this._dropdownElements.forEach(\r\n dropdown => (dropdown.style.transition = 'none')\r\n );\r\n }\r\n\r\n this.hide();\r\n\r\n if (this._timeout) {\r\n clearTimeout(this._timeout);\r\n this._timeout = null;\r\n }\r\n }*/\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { ComponentRef, ComponentRefs } from '@opten/compiler/metadata/di';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { Navbar } from './navbar';\r\nimport { Search } from '../search';\r\nimport { isPad } from '../../utilities/detection';\r\nimport { NavbarMegaDropdown } from './navbar-mega-dropdown';\r\n\r\n@Component({ className: 'js-navbar-toggler' })\r\nexport class NavbarToggler implements OnInit {\r\n @ComponentRef(Navbar) _navbar: Navbar;\r\n @ComponentRef(Search) _search: Search;\r\n @ComponentRefs(NavbarMegaDropdown) _dropdowns: Array;\r\n\r\n constructor(private element: HTMLElement) {}\r\n\r\n onInit() {\r\n this.element.addEventListener('click', event => {\r\n event.preventDefault();\r\n\r\n if (isPad()) {\r\n // close the search so we don't have to handle the backdrop\r\n // by re-adding it if the search is open...\r\n if (this._search) {\r\n this._search.close();\r\n }\r\n\r\n this._navbar.toggle();\r\n } else {\r\n const target = event.target as HTMLElement;\r\n\r\n target.blur(); // remove focus\r\n\r\n this._dropdowns.forEach(dropdown => dropdown.hide());\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\nimport { isPad } from '../../utilities/detection';\r\nimport { lockScrollbar, unlockScrollbar } from '../../utilities/scroll-helper';\r\nimport { ComponentRef } from '@opten/compiler/metadata/di';\r\nimport { Search } from '../search';\r\n\r\n// todo: @opten/typescrpit?\r\n@Component({ className: 'js-navbar' })\r\nexport class Navbar implements OnInit {\r\n private _backdropElement: HTMLElement;\r\n\r\n private _header: HTMLElement;\r\n\r\n private _navbarTogglerElements: Array;\r\n private _navbar1stLevelElements: Array;\r\n private _navbar2ndLevelElements: Array;\r\n private _navbarHeaderElements: Array;\r\n\r\n private _mainScrollElement: HTMLElement;\r\n private _scrollableElements: Array;\r\n private _togglerElements: Array;\r\n\r\n private _isOpen: boolean = false;\r\n\r\n // todo: create extra component to not have a reference here.\r\n // otherwise we might have a circular dependency\r\n @ComponentRef(Search) _search: Search;\r\n\r\n constructor(private element: HTMLElement) {\r\n this._backdropElement = document.getElementsByClassName(\r\n 'js-navbar-backdrop'\r\n )[0] as HTMLElement;\r\n\r\n // todo: @ComponentRef()?\r\n this._header = document.getElementsByClassName(\r\n 'js-header'\r\n )[0] as HTMLElement;\r\n\r\n this._navbar1stLevelElements = Array.from(\r\n document.querySelectorAll(`[id^=\"c-navbar-nav-\"]`)\r\n );\r\n\r\n this._navbar2ndLevelElements = Array.from(\r\n document.querySelectorAll(`[id^=\"c-navbar-collapse-\"]`)\r\n );\r\n\r\n // not navbar because we could also have some in the header\r\n this._navbarTogglerElements = Array.from(\r\n this._header.querySelectorAll(`[data-toggle='navbar']`)\r\n );\r\n\r\n this._navbarHeaderElements = Array.from(\r\n document.getElementsByClassName('js-navbar-header')\r\n ) as Array;\r\n\r\n this._mainScrollElement = Array.from(element.children).filter(o =>\r\n hasClass(o, 'c-navbar__scrollable')\r\n )[0] as HTMLElement;\r\n\r\n this._scrollableElements = Array.from(\r\n this.element.getElementsByClassName('c-navbar__scrollable')\r\n ) as Array;\r\n\r\n this._togglerElements = Array.from(\r\n document.getElementsByClassName('js-navbar-toggler')\r\n ) as Array;\r\n }\r\n\r\n onInit() {\r\n this._navbarTogglerElements.forEach(toggler => {\r\n toggler.addEventListener('click', event => {\r\n event.preventDefault();\r\n\r\n const target = getSelectorElementFromElement(toggler);\r\n\r\n if (target) {\r\n this._click(target);\r\n }\r\n });\r\n });\r\n\r\n this._backdropElement.addEventListener('click', () => this.close());\r\n\r\n this._handleResize();\r\n window.addEventListener('resize', () => this._handleResize());\r\n }\r\n\r\n private _handleNavbarHeaderClick = (event: MouseEvent) => {\r\n event.preventDefault();\r\n addClass((event.target as Element).parentElement, '--collapsed');\r\n\r\n this._scrollableElements.forEach(scrollable =>\r\n this._removeScrollable(scrollable)\r\n );\r\n\r\n this._setScrollable(this._mainScrollElement);\r\n }\r\n\r\n private _addMobileListeners() {\r\n if (isPad()) {\r\n this._navbarHeaderElements.forEach(header =>\r\n header.addEventListener('click', this._handleNavbarHeaderClick)\r\n );\r\n }\r\n }\r\n\r\n private _removeMobileListeners() {\r\n if (!isPad()) {\r\n this._navbarHeaderElements.forEach(header =>\r\n header.removeEventListener(\r\n 'click',\r\n this._handleNavbarHeaderClick\r\n )\r\n );\r\n }\r\n }\r\n\r\n private _handleResize() {\r\n if (this._isOpen) {\r\n this.toggle();\r\n }\r\n\r\n if (isPad()) {\r\n this._addMobileListeners();\r\n\r\n const height = Math.round(\r\n this._header.getBoundingClientRect().height\r\n );\r\n\r\n // make the headers same height as the header itself\r\n Array.from(\r\n this.element.getElementsByClassName('c-navbar__header')\r\n ).forEach(header => {\r\n (header as HTMLElement).style.height = `${height}px`;\r\n });\r\n\r\n this._navbar1stLevelElements.forEach(navbar => {\r\n const isOpen =\r\n hasClass(\r\n document.querySelector(`a[href='${navbar.id}']`),\r\n '--active'\r\n ) || navbar.getElementsByClassName('--active').length;\r\n\r\n if (isOpen) {\r\n new Collapse(navbar).show();\r\n } else {\r\n new Collapse(navbar).hide();\r\n }\r\n });\r\n\r\n this._navbar2ndLevelElements.forEach(element =>\r\n new Collapse(element).destroy()\r\n );\r\n } else {\r\n this._removeMobileListeners();\r\n\r\n // reset height, because we don't need it\r\n this._scrollableElements.forEach(\r\n scrollable => (scrollable.style.height = null)\r\n );\r\n\r\n this._navbar1stLevelElements.forEach(navbar =>\r\n new Collapse(navbar).destroy()\r\n );\r\n\r\n this._navbar2ndLevelElements.forEach(element =>\r\n this._collapse(\r\n element,\r\n element.getElementsByClassName('--active').length > 0\r\n )\r\n );\r\n }\r\n }\r\n\r\n public toggle() {\r\n this._isOpen ? this.close() : this.open();\r\n }\r\n\r\n public open() {\r\n addClass(this._header, 'c-header--expanded');\r\n if (this._isOpen) {\r\n return;\r\n }\r\n\r\n // mostly for iOS devices\r\n lockScrollbar(() => {\r\n removeClass(this.element, '--collapsed');\r\n\r\n // set the width to the navbar-toggler\r\n const left = Math.round(\r\n this._togglerElements[0].getBoundingClientRect().left\r\n );\r\n this.element.style.width = `${left}px`;\r\n\r\n addClass(this._backdropElement, '--show');\r\n\r\n this._togglerElements.forEach(toggler =>\r\n addClass(toggler, '--expanded')\r\n );\r\n\r\n // check if we're on a page (a container already has --scroll)\r\n // so we don't apply the scroll class otherwise we might cut off\r\n // a sub-navigation.\r\n const hasScroll = this._scrollableElements.filter(o =>\r\n hasClass(o, '--scroll')\r\n );\r\n\r\n if (!hasScroll.length) {\r\n this._setScrollable(this._mainScrollElement);\r\n }\r\n\r\n this._isOpen = true;\r\n });\r\n }\r\n\r\n public close() {\r\n removeClass(this._header, 'c-header--expanded');\r\n\r\n if (!this._isOpen) {\r\n return;\r\n }\r\n\r\n addClass(this.element, '--collapsed');\r\n this.element.style.width = null; // reset to default\r\n removeClass(this._backdropElement, '--show');\r\n\r\n this._togglerElements.forEach(toggler =>\r\n removeClass(toggler, '--expanded')\r\n );\r\n\r\n // mostly for iOS devices\r\n unlockScrollbar();\r\n\r\n if (!isPad()) {\r\n this._navbar1stLevelElements.forEach(navbar =>\r\n new Collapse(navbar as HTMLElement).hide()\r\n );\r\n }\r\n\r\n this._isOpen = false;\r\n }\r\n\r\n private _click(target: HTMLElement) {\r\n if (isPad()) {\r\n if (!this._isOpen) {\r\n // close the search so we don't have to handle the backdrop\r\n // by re-adding it if the search is open...\r\n if (this._search) {\r\n this._search.close();\r\n }\r\n\r\n // todo: better way? if we have a slower animation you see the other closing...\r\n // maybe we have some --collapsed in the cshtml\r\n // because we're on a certain page\r\n // so close all of them...\r\n this._navbar2ndLevelElements.forEach(navbar =>\r\n addClass(navbar.firstElementChild, '--collapsed')\r\n );\r\n\r\n this.open();\r\n }\r\n\r\n if (hasClass(target, '--collapsed')) {\r\n removeClass(target, '--collapsed');\r\n\r\n const scrollable = target.getElementsByClassName(\r\n 'c-navbar__scrollable'\r\n )[0] as HTMLElement;\r\n\r\n this._scrollableElements.forEach(o =>\r\n this._removeScrollable(o)\r\n );\r\n this._setScrollable(scrollable);\r\n }\r\n } else {\r\n // todo: better set data-toggle='navbar' to 'collapse' if desktop?\r\n // todo: closest?\r\n const collapseElement = target.parentElement;\r\n const isOpen = new Collapse(collapseElement).isOpen();\r\n\r\n this._collapse(collapseElement, !isOpen);\r\n\r\n // close others because we cannot use data-parent\r\n // otherwise the mobile will be strange...\r\n this._navbar2ndLevelElements\r\n .filter(t => t !== collapseElement)\r\n .forEach(target => this._collapse(target, false));\r\n }\r\n }\r\n\r\n private _collapse(target: HTMLElement, show: boolean) {\r\n const navbar = target.getElementsByClassName('c-navbar')[0];\r\n\r\n const toggler = document.querySelector(\r\n `a[href='#${navbar.id}']`\r\n ) as HTMLElement;\r\n\r\n if (show) {\r\n new Collapse(target).show();\r\n } else {\r\n new Collapse(target).hide();\r\n }\r\n\r\n this._updateAria(toggler, show);\r\n }\r\n\r\n private _setScrollable(element: HTMLElement) {\r\n let height = Math.round(this._header.getBoundingClientRect().height);\r\n\r\n const titleElement = Array.from(element.parentElement.children).filter(\r\n o => hasClass(o, 'c-navbar__title')\r\n )[0];\r\n\r\n if (titleElement) {\r\n height += Math.round(titleElement.getBoundingClientRect().height);\r\n }\r\n\r\n element.style.height = `calc(100% - ${height}px)`;\r\n\r\n removeClass(element, '--lock');\r\n addClass(element, '--scroll');\r\n }\r\n\r\n private _removeScrollable(element: HTMLElement) {\r\n element.style.height = null;\r\n\r\n addClass(element, '--lock');\r\n removeClass(element, '--scroll');\r\n }\r\n\r\n private _updateAria(toggler: HTMLElement, isOpen: boolean) {\r\n toggler.setAttribute('aria-expanded', isOpen.toString().toLowerCase());\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { hideMegaDropdown } from './mega-dropdown';\r\n\r\n@Component({ className: 'js-notification' })\r\nexport class NotificationComponent {\r\n\tclose: HTMLElement;\r\n\tbackdrop: HTMLElement;\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.close = this.element.querySelector(\r\n\t\t\t'.js-notification-close'\r\n\t\t);\r\n\t\tthis.backdrop = document.querySelector(\r\n\t\t\t'.js-notification-backdrop'\r\n\t\t);\r\n\r\n\t\tthis.close.addEventListener('click', () => {\r\n\t\t\thideMegaDropdown(this.element, this.backdrop);\r\n\t\t\tthis.setSessionCookie();\r\n\t\t});\r\n\r\n\t\tconst links = this.element.querySelectorAll('a');\r\n\t\tlinks.forEach(link =>\r\n\t\t\tlink.addEventListener('click', () => this.setSessionCookie())\r\n\t\t);\r\n\t}\r\n\r\n\tsetSessionCookie() {\r\n\t\tdocument.cookie = 'hypi-alert=1;path=/;samesite=strict;secure';\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { debounce } from '@opten/reactive/debounce';\r\nimport { isPad } from '../../utilities/detection';\r\nimport { ScrollMagicController } from '../magic-scroll';\r\n\r\ndeclare const ScrollMagic: any;\r\ndeclare const Swiper: any;\r\n\r\n@Component({ className: 'js-parallax-slider' })\r\nexport class ParallaxSliderComponent {\r\n\tconstructor(public element: HTMLElement) {\r\n\t\tconst swiper = new Swiper(\r\n\t\t\tthis.element.querySelector('.js-parallax-slider-content-slider'),\r\n\t\t\t{\r\n\t\t\t\tparallax: true,\r\n\t\t\t\teffect: 'fade',\r\n\t\t\t\tfadeEffect: {\r\n\t\t\t\t\tcrossFade: true,\r\n\t\t\t\t},\r\n\t\t\t\tspeed: 500,\r\n\t\t\t\tallowTouchMove: false\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tconst slides = document.querySelectorAll('.js-parallax-slider-media');\r\n\t\tslides.forEach((slide, i) => {\r\n\t\t\tconst isLastSlide = i == slides.length - 1;\r\n\t\t\tconst scene = new ScrollMagic.Scene({\r\n\t\t\t\ttriggerElement: slide,\r\n\t\t\t\ttriggerHook: 'onLeave',\r\n\t\t\t\tduration: isLastSlide ? '0.001%' : '60%',\r\n\t\t\t})\r\n\t\t\t\t.setPin(slide, { pushFollowers: false })\r\n\t\t\t\t.addTo(ScrollMagicController);\r\n\t\t\tscene.on('progress', (ev) => {\r\n\t\t\t\tif (ev.progress < 0.5) {\r\n\t\t\t\t\tswiper.slideTo(i);\r\n\t\t\t\t} else if(isLastSlide === false) {\r\n\t\t\t\t\tswiper.slideTo(i + 1);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tconst headerHeight = isPad() ? 71 : 105;\r\n\t\tconst stickyScene = new ScrollMagic.Scene({\r\n\t\t\ttriggerElement: this.element,\r\n\t\t\ttriggerHook: 'onLeave',\r\n\t\t\toffset: -headerHeight,\r\n\t\t\tduration: this.element.clientHeight - slides[slides.length - 1].clientHeight,\r\n\t\t})\r\n\t\t\t.setPin(this.element.querySelector('.js-parallax-slider-content'), {\r\n\t\t\t\tpushFollowers: false\r\n\t\t\t})\r\n\t\t\t.addTo(ScrollMagicController);\r\n\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tdebounce(() => {\r\n\t\t\t\tScrollMagicController.update(true);\r\n\t\t\t\tstickyScene.duration(this.element.clientHeight - slides[slides.length - 1].clientHeight);\r\n\t\t\t\tstickyScene.offset((isPad() ? 71 : 105) * -1);\r\n\t\t\t}, 100)\r\n\t\t);\r\n\t}\r\n}\r\n","export * from './search';\r\nexport * from './search-toggler';\r\n","import { Component } from \"@opten/compiler/metadata/component\";\r\nimport { OnInit } from \"@opten/compiler/metadata/lifecycle\";\r\nimport { addClass } from \"@opten/dom/add-class\";\r\nimport { removeClass } from \"@opten/dom/remove-class\";\r\n\r\n\r\n@Component({ className: 'js-search-autocomplete' })\r\nexport class SearchAutocompleteComponent implements OnInit {\r\n\tprivate searchField: HTMLInputElement;\r\n\tprivate searchSectionField: HTMLInputElement;\r\n\tprivate searchForm: HTMLFormElement;\r\n\r\n\r\n\tprivate autocompleteList: HTMLElement;\r\n\tprivate currentFocus = -1;\r\n\tprivate autocompleteListItems: Element[] = [];\r\n\tprivate autocompleteSections: Element[] = [];\r\n\r\n\r\n\tconstructor(private element: HTMLElement) { }\r\n\tonInit(): void {\r\n\t\tthis.searchField = this.element.getElementsByClassName('js-search-autocomplete-field')[0] as HTMLInputElement;\r\n\t\tthis.searchForm = this.element.getElementsByClassName('js-search-autocomplete-form')[0] as HTMLFormElement;\r\n\t\tthis.autocompleteList = this.element.getElementsByClassName('js-search-autocomplete-list')[0] as HTMLElement;\r\n\t\tconst autocompleteSections = this.element.getElementsByClassName('js-search-autocomplete-sections');\r\n\t\tconst searchSectionFields = this.element.getElementsByClassName('js-search-autocomplete-section-field');\r\n\r\n\t\tif (autocompleteSections && autocompleteSections.length > 0 && searchSectionFields && searchSectionFields.length > 0) {\r\n\t\t\tthis.autocompleteSections = Array.from(autocompleteSections[0].getElementsByClassName('js-search-autocomplete-section'));\r\n\t\t\tthis.searchSectionField = searchSectionFields[0] as HTMLInputElement;\r\n\r\n\t\t\tif (this.autocompleteSections && this.autocompleteSections.length > 0) {\r\n\t\t\t\tthis.autocompleteSections.forEach(item => item.addEventListener('click', () => this.handleAutocompleteSectionClicked(item as HTMLElement)));\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (this.searchField) {\r\n\t\t\tthis.searchField.addEventListener('input', (e) => this._handleSearchFieldInput(e));\r\n\t\t\tthis.searchField.addEventListener('keydown', (e) => this.handleSearchFieldKeyDown(e));\r\n\t\t}\r\n\t}\r\n\r\n\tprivate _handleSearchFieldInput(e: Event) {\r\n\t\tthis.cleanAutocompleteList();\r\n\t\tlet value = this.searchField.value;\r\n\t\tif (value && value.length > 0) {\r\n\t\t\tfetch('/umbraco/surface/searchsurface/AutocompleteSearchTerm', {\r\n\t\t\t\tmethod: 'POST',\r\n\t\t\t\theaders: {\r\n\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded',\r\n\t\t\t\t\t// todo: set language from chooser in the future\r\n\t\t\t\t\t'accept-language': 'de-CH',\r\n\t\t\t\t\t// todo: why? if we change to a api controller we don't have this problem...\r\n\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest' // otherwise accept-language is ignored\r\n\t\t\t\t},\r\n\t\t\t\tbody: \"term=\" + value\r\n\t\t\t})\r\n\t\t\t\t.then(response => {\r\n\t\t\t\t\tconst contentType = response.headers.get('content-type');\r\n\t\t\t\t\tif (contentType && contentType.includes('text/html')) {\r\n\t\t\t\t\t\treturn response.text();\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.then(data => {\r\n\t\t\t\t\tthis.cleanAutocompleteList();\r\n\t\t\t\t\tif (data != null && data.length > 0) {\r\n\t\t\t\t\t\tthis.autocompleteList.innerHTML = data;\r\n\r\n\t\t\t\t\t\tthis.autocompleteListItems = Array.from(this.autocompleteList.getElementsByClassName('js-search-autocomplete-list-item'));\r\n\t\t\t\t\t\tif (this.autocompleteListItems && this.autocompleteListItems.length > 0) {\r\n\t\t\t\t\t\t\tthis.autocompleteListItems.forEach(item => item.addEventListener('click', () => this.handleAutocompleteListItemClicked(item as HTMLElement)));\r\n\t\t\t\t\t\t\taddClass(this.autocompleteList, 'is-visible');\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}\r\n\t}\r\n\r\n\tprivate handleSearchFieldKeyDown(e: KeyboardEvent) {\r\n\t\tif (this.autocompleteListItems && this.autocompleteListItems.length > 0) {\r\n\t\t\tif (e.keyCode == 40) {\r\n\t\t\t\t/*If the arrow DOWN key is pressed,\r\n\t\t\t\tincrease the currentFocus variable:*/\r\n\t\t\t\tthis.currentFocus++;\r\n\t\t\t\t/*and and make the current item more visible:*/\r\n\t\t\t\tthis.setAutocompleteListElementActive();\r\n\t\t\t} else if (e.keyCode == 38) { //up\r\n\t\t\t\t/*If the arrow UP key is pressed,\r\n\t\t\t\tdecrease the currentFocus variable:*/\r\n\t\t\t\tthis.currentFocus--;\r\n\t\t\t\t/*and and make the current item more visible:*/\r\n\t\t\t\tthis.setAutocompleteListElementActive();\r\n\t\t\t} else if (e.keyCode == 13) {\r\n\t\t\t\t/*If the ENTER key is pressed, prevent the form from being submitted,*/\r\n\t\t\t\tif (this.currentFocus > -1) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t/*and simulate a click on the \"active\" item:*/\r\n\t\t\t\t\tthis.autocompleteListItems[this.currentFocus].dispatchEvent(new Event('click'));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprivate setAutocompleteListElementActive() {\r\n\t\tthis.autocompleteListItems.forEach(o => removeClass(o, 'is-active'));\r\n\t\taddClass(this.autocompleteListItems[this.currentFocus], 'is-active');\r\n\t}\r\n\r\n\tprivate handleAutocompleteListItemClicked(item: HTMLElement) {\r\n\t\tconst itemInput = item.getElementsByTagName('input')[0] as HTMLInputElement;\r\n\t\tthis.searchField.value = itemInput.value;\r\n\t\tthis.searchForm.submit();\r\n\t}\r\n\r\n\tprivate handleAutocompleteSectionClicked(item: HTMLElement): void {\r\n\t\tconst itemInput = item.getElementsByTagName('input')[0] as HTMLInputElement;\r\n\t\tthis.searchSectionField.value = itemInput.value;\r\n\t\tthis.searchForm.submit();\r\n\t}\r\n\r\n\tprivate cleanAutocompleteList() {\r\n\t\tremoveClass(this.autocompleteList, 'is-visible');\r\n\t\tthis.autocompleteList.innerHTML = '';\r\n\t\tthis.currentFocus = -1;\r\n\t\tthis.autocompleteListItems = [];\r\n\r\n\t}\r\n}\r\n","import { NavbarMegaDropdown } from './../navbar/navbar-mega-dropdown';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\nimport { ComponentRef, ComponentRefs } from '@opten/compiler/metadata/di';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { Navbar } from '../navbar';\r\nimport { Search } from './search';\r\n\r\n@Component({ className: 'js-search-toggler' })\r\nexport class SearchToggler implements OnInit {\r\n @ComponentRef(Navbar) _navbar: Navbar;\r\n @ComponentRefs(NavbarMegaDropdown) _dropdowns: Array;\r\n @ComponentRef(Search) _search: Search;\r\n\r\n constructor(private element: HTMLElement) {}\r\n\r\n onInit() {\r\n this.element.addEventListener('click', event => {\r\n event.preventDefault();\r\n\r\n this._search.toggle();\r\n\r\n // close the navbar so we don't have to handle the backdrop\r\n // by re-adding it if the navbar is open...\r\n if (this._navbar) {\r\n this._navbar.close();\r\n }\r\n\r\n if (this._dropdowns && this._dropdowns.length) {\r\n this._dropdowns.forEach(dropdown => dropdown.hide());\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { hasClass } from '@opten/dom/has-class';\r\nimport { showMegaDropdown, hideMegaDropdown } from '../mega-dropdown';\r\nimport { lockScrollbar, unlockScrollbar } from '../../utilities/scroll-helper';\r\n\r\nconst transitionDuration = 700;\r\n\r\n@Component({ className: 'js-search' })\r\nexport class Search implements OnInit {\r\n get _isOpen(): boolean {\r\n return hasClass(this.element, '--show');\r\n }\r\n\r\n private _backdropElement: HTMLElement;\r\n private _header: HTMLElement;\r\n\r\n constructor(private element: HTMLElement) {}\r\n\r\n onInit() {\r\n // todo: own backdrop or resuse navbar?\r\n this._backdropElement = document.getElementsByClassName(\r\n 'js-search-backdrop'\r\n )[0] as HTMLElement;\r\n\r\n this._header = document.getElementsByClassName('js-header')[0] as HTMLElement;\r\n this.updateSearchTop();\r\n\r\n // todo: only add it when open clicked?\r\n // but how do we remove it, when we close it in the header?\r\n this._backdropElement.addEventListener('click', () => this.close());\r\n window.addEventListener('resize', ()=> this.updateSearchTop());\r\n }\r\n\r\n public toggle() {\r\n this._isOpen ? this.close() : this.open();\r\n }\r\n\r\n public updateSearchTop(){\r\n if (this._header) {\r\n this.element.style.top = `${Math.round(\r\n this._header.getBoundingClientRect().height\r\n )}px`;\r\n }\r\n }\r\n\r\n public open() {\r\n if (this._isOpen) {\r\n return;\r\n }\r\n\r\n // mostly for iOS devices\r\n lockScrollbar(() => {\r\n // show and then focus search\r\n showMegaDropdown(this.element, this._backdropElement, () =>\r\n this.element.getElementsByTagName('input')[0].focus()\r\n );\r\n });\r\n }\r\n\r\n public close() {\r\n if (!this._isOpen) {\r\n return;\r\n }\r\n\r\n // mostly for iOS devices\r\n unlockScrollbar();\r\n\r\n hideMegaDropdown(this.element, this._backdropElement);\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { sidebar } from '@opten/sidebar';\r\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element/index';\r\nimport { Collapse } from '@opten/collapse/initializer';\r\n\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\r\nimport { getCss } from '@opten/dom/get-css';\r\nimport { getStyles } from '@opten/dom/get-styles';\r\n\r\n@Component({ className: 'js-sidebar' })\r\nexport default class Sidebar {\r\n private _cacheMarginBottom = 0;\r\n constructor(private element: HTMLElement) {\r\n const body = document.getElementsByClassName(\r\n 'js-body'\r\n )[0] as HTMLElement;\r\n const header = document.getElementsByClassName(\r\n 'js-header'\r\n )[0] as HTMLElement;\r\n const cookieConsent = document.getElementsByClassName(\r\n 'js-cookie-consent'\r\n )[0] as HTMLElement;\r\n\r\n sidebar(element, {\r\n bodyElement: body,\r\n stickyElements: [header],\r\n breakpoints: {\r\n // maxWidth: PAD_WIDTH\r\n maxWidth: 0\r\n }\r\n });\r\n\r\n // todo: better way? we just have one panel so we need this 'hack'...\r\n // we need special events to open the correct collapse\r\n const sidebarElement = document.getElementById('c-sidebar-panel');\r\n\r\n if (sidebarElement) {\r\n\r\n sidebarElement.addEventListener('show.opten.sidebar', () => {\r\n const styles = getStyles(document.body); // cache\r\n const calculatedMarginBottom = parseCssUnit(getCss(document.body, 'margin-bottom', styles));\r\n if (calculatedMarginBottom > -1) {\r\n this._cacheMarginBottom = calculatedMarginBottom;\r\n document.body.style.marginBottom = `0`;\r\n }\r\n });\r\n\r\n const links = Array.from(\r\n document.getElementsByClassName(`js-sidebar-item`)\r\n );\r\n\r\n links.forEach(link => {\r\n // todo: why listening not on sidebar?\r\n link.addEventListener('shown.opten.sidebar', () => {\r\n const target = getSelectorElementFromElement(\r\n link,\r\n 'data-collapse',\r\n false\r\n );\r\n\r\n if (target) {\r\n new Collapse(target).show();\r\n }\r\n });\r\n addClass(link, 'is--shiny'); //add shiny effect once for more glamour (customer wish)\r\n });\r\n\r\n sidebarElement.addEventListener('hide.opten.sidebar', () => {\r\n if (this._cacheMarginBottom > 0) {\r\n document.body.style.marginBottom = `${this._cacheMarginBottom}px`;\r\n }\r\n });\r\n\r\n // close all collapsables\r\n sidebarElement.addEventListener('hidden.opten.sidebar', () => {\r\n\r\n links.forEach(link => {\r\n const target = getSelectorElementFromElement(\r\n link,\r\n 'data-collapse',\r\n false\r\n );\r\n\r\n if (target) {\r\n new Collapse(target).hide();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { addTransitionEndListener } from '@opten/transition/add-transition-end-listener';\r\n\r\nexport class TangramOptions {\r\n\tselectors: {\r\n\t\tsliderElement: string;\r\n\t\tsliderLinkElements: string;\r\n\t};\r\n\tclasses: {\r\n\t\tactive: string;\r\n\t\ttransitionEnd: string;\r\n\t};\r\n\tspeedAttribute: string;\r\n\tspeed: number;\r\n}\r\n\r\n@Component({ className: 'js-tangram-container' })\r\nexport default class Tangram implements OnInit {\r\n\tprivate _countSliderElements: number = 0;\r\n\tprivate _currentSlide: number = 0;\r\n\tprivate _sliderElements: Array;\r\n\tprivate _sliderLinkElements: Array;\r\n\tprivate _svg: SVGElement;\r\n\tprivate _interval: number;\r\n\tprivate _options: TangramOptions = {\r\n\t\tselectors: {\r\n\t\t\tsliderElement: 'js-tangram__slide',\r\n\t\t\tsliderLinkElements: 'js-c-tangram__link'\r\n\t\t},\r\n\t\tclasses: {\r\n\t\t\tactive: '--active',\r\n\t\t\ttransitionEnd: '--transition-end'\r\n\t\t},\r\n\t\tspeedAttribute: 'data-slider-speed',\r\n\t\tspeed: 5000\r\n\t};\r\n\r\n\tconstructor(private _element: HTMLElement) {\r\n\t\tthis._sliderElements = Array.from(\r\n\t\t\t_element.getElementsByClassName(\r\n\t\t\t\tthis._options.selectors.sliderElement\r\n\t\t\t)\r\n\t\t);\r\n\t\tlet dataSpeed = _element.getAttribute(this._options.speedAttribute);\r\n\t\tif (dataSpeed != null) {\r\n\t\t\tthis._options.speed = parseInt(dataSpeed, 10);\r\n\t\t}\r\n\t\tthis._svg = _element.getElementsByTagName('svg')[0] as SVGElement;\r\n\t}\r\n\r\n\tonInit() {\r\n\t\tif (this._sliderElements && this._sliderElements.length) {\r\n\t\t\tthis._countSliderElements = this._sliderElements.length;\r\n\t\t\tthis._sliderLinkElements = Array.from(this._svg.querySelectorAll(`.${this._options.selectors.sliderLinkElements}`));\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tthis._svg.appendChild(this._sliderElements[this._currentSlide]);\r\n\t\t\t\taddClass(\r\n\t\t\t\t\tthis._sliderElements[this._currentSlide],\r\n\t\t\t\t\tthis._options.classes.active\r\n\t\t\t\t);\r\n\t\t\t\taddClass(\r\n\t\t\t\t\tthis._sliderElements[this._currentSlide],\r\n\t\t\t\t\tthis._options.classes.transitionEnd\r\n\t\t\t\t);\r\n\t\t\t}, 0);\r\n\r\n\t\t\tthis._sliderLinkElements.forEach(link => {\r\n\t\t\t\tlink.addEventListener('mouseover', () => {\r\n\t\t\t\t\tclearInterval(this._interval);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tlink.addEventListener('mouseleave', () => {\r\n\t\t\t\t\tthis.start();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\tthis.start();\r\n\t\t}\r\n\t}\r\n\r\n\tstart() {\r\n\t\tthis._interval = setInterval(() => {\r\n\t\t\tthis.changeSlide();\r\n\t\t}, this._options.speed);\r\n\t}\r\n\r\n\tchangeSlide(): void {\r\n\t\t// hide current slide\r\n\t\tremoveClass(\r\n\t\t\tthis._sliderElements[this._currentSlide],\r\n\t\t\tthis._options.classes.active\r\n\t\t);\r\n\t\tremoveClass(\r\n\t\t\tthis._sliderElements[this._currentSlide],\r\n\t\t\tthis._options.classes.transitionEnd\r\n\t\t);\r\n\r\n\t\t// calculate new slide\r\n\t\tthis._currentSlide++;\r\n\r\n\t\tif (this._currentSlide === this._countSliderElements) {\r\n\t\t\tthis._currentSlide = 0;\r\n\t\t}\r\n\r\n\t\t// show new slide\r\n\t\taddClass(\r\n\t\t\tthis._sliderElements[this._currentSlide],\r\n\t\t\tthis._options.classes.active\r\n\t\t);\r\n\r\n\t\taddTransitionEndListener(this._sliderElements[this._currentSlide], () => {\r\n\t\t\tthis._svg.appendChild(this._sliderElements[this._currentSlide]);\r\n\t\t\taddClass(this._sliderElements[this._currentSlide], this._options.classes.transitionEnd);\r\n\t\t}, 1000);\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\nimport { OnInit } from '@opten/compiler/metadata/lifecycle';\r\n\r\nimport { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore';\r\n\r\nconst comma = `'`;\r\nconst period = '.';\r\nconst minus = '-';\r\nconst minusRegExp = /-/;\r\nconst nonDigitsRegExp = /\\D+/g;\r\nconst number = 'number';\r\nconst digitRegExp = /\\d/;\r\nconst caretTrap = '[]';\r\n\r\n@Component({ className: 'js-text-mask-currency' })\r\nexport class TextMaskCurrency implements OnInit {\r\n constructor(private _element: HTMLInputElement) {}\r\n\r\n onInit() {\r\n const mask = createTextMaskInputElement(\r\n Object.assign(\r\n { inputElement: this._element },\r\n {\r\n mask: createNumberMask(),\r\n guide: true,\r\n placeholderChar: '\\u2000',\r\n keepCharPositions: false\r\n }\r\n )\r\n );\r\n\r\n this._element.addEventListener('input', () =>\r\n mask.update(this._element.value)\r\n );\r\n\r\n mask.update(this._element.value);\r\n }\r\n}\r\n\r\nfunction createNumberMask({\r\n prefix = 'CHF ',\r\n suffix = '',\r\n includeThousandsSeparator = true,\r\n thousandsSeparatorSymbol = comma,\r\n allowDecimal = false,\r\n decimalSymbol = period,\r\n decimalLimit = 2,\r\n requireDecimal = false,\r\n allowNegative = false,\r\n allowLeadingZeroes = false,\r\n integerLimit = null\r\n} = {}) {\r\n const prefixLength = (prefix && prefix.length) || 0;\r\n const suffixLength = (suffix && suffix.length) || 0;\r\n const thousandsSeparatorSymbolLength =\r\n (thousandsSeparatorSymbol && thousandsSeparatorSymbol.length) || 0;\r\n\r\n return function(rawValue = '') {\r\n const rawValueLength = rawValue.length;\r\n\r\n if (\r\n rawValue === '' ||\r\n (rawValue[0] === prefix[0] && rawValueLength === 1)\r\n ) {\r\n return prefix\r\n .split('')\r\n .concat([digitRegExp as any])\r\n .concat(suffix.split(''));\r\n } else if (rawValue === decimalSymbol && allowDecimal) {\r\n return prefix\r\n .split('')\r\n .concat(['0', decimalSymbol, digitRegExp as any])\r\n .concat(suffix.split(''));\r\n }\r\n\r\n const isNegative = rawValue[0] === minus && allowNegative;\r\n // if negative remove \"-\" sign\r\n if (isNegative) {\r\n rawValue = rawValue.toString().substr(1);\r\n }\r\n\r\n const indexOfLastDecimal = rawValue.lastIndexOf(decimalSymbol);\r\n const hasDecimal = indexOfLastDecimal !== -1;\r\n\r\n let integer;\r\n let fraction;\r\n let mask;\r\n\r\n // remove the suffix\r\n if (rawValue.slice(suffixLength * -1) === suffix) {\r\n rawValue = rawValue.slice(0, suffixLength * -1);\r\n }\r\n\r\n if (hasDecimal && (allowDecimal || requireDecimal)) {\r\n integer = rawValue.slice(\r\n rawValue.slice(0, prefixLength) === prefix ? prefixLength : 0,\r\n indexOfLastDecimal\r\n );\r\n\r\n fraction = rawValue.slice(indexOfLastDecimal + 1, rawValueLength);\r\n fraction = convertToMask(fraction.replace(nonDigitsRegExp, ''));\r\n } else {\r\n if (rawValue.slice(0, prefixLength) === prefix) {\r\n integer = rawValue.slice(prefixLength);\r\n } else {\r\n integer = rawValue;\r\n }\r\n }\r\n\r\n if (integerLimit && typeof integerLimit === number) {\r\n const thousandsSeparatorRegex =\r\n thousandsSeparatorSymbol === '.'\r\n ? '[.]'\r\n : `${thousandsSeparatorSymbol}`;\r\n const numberOfThousandSeparators = (\r\n integer.match(new RegExp(thousandsSeparatorRegex, 'g')) || []\r\n ).length;\r\n\r\n integer = integer.slice(\r\n 0,\r\n integerLimit +\r\n numberOfThousandSeparators * thousandsSeparatorSymbolLength\r\n );\r\n }\r\n\r\n integer = integer.replace(nonDigitsRegExp, '');\r\n\r\n if (!allowLeadingZeroes) {\r\n integer = integer.replace(/^0+(0$|[^0])/, '$1');\r\n }\r\n\r\n integer = includeThousandsSeparator\r\n ? addThousandsSeparator(integer, thousandsSeparatorSymbol)\r\n : integer;\r\n\r\n mask = convertToMask(integer);\r\n\r\n if ((hasDecimal && allowDecimal) || requireDecimal === true) {\r\n if (rawValue[indexOfLastDecimal - 1] !== decimalSymbol) {\r\n mask.push(caretTrap);\r\n }\r\n\r\n mask.push(decimalSymbol, caretTrap);\r\n\r\n if (fraction) {\r\n if (typeof decimalLimit === number) {\r\n fraction = fraction.slice(0, decimalLimit);\r\n }\r\n\r\n mask = mask.concat(fraction);\r\n }\r\n\r\n if (\r\n requireDecimal === true &&\r\n rawValue[indexOfLastDecimal - 1] === decimalSymbol\r\n ) {\r\n mask.push(digitRegExp);\r\n }\r\n }\r\n\r\n if (prefixLength > 0) {\r\n mask = prefix.split('').concat(mask);\r\n }\r\n\r\n if (isNegative) {\r\n // if user is entering a negative number, add a mask placeholder spot to attract the caret to it.\r\n if (mask.length === prefixLength) {\r\n mask.push(digitRegExp);\r\n }\r\n\r\n mask = [minusRegExp].concat(mask);\r\n }\r\n\r\n if (suffix.length > 0) {\r\n mask = mask.concat(suffix.split(''));\r\n }\r\n\r\n return mask;\r\n };\r\n}\r\n\r\nfunction convertToMask(strNumber) {\r\n return strNumber\r\n .split('')\r\n .map(char => (digitRegExp.test(char) ? digitRegExp : char));\r\n}\r\n\r\n// http://stackoverflow.com/a/10899795/604296\r\nfunction addThousandsSeparator(n, thousandsSeparatorSymbol) {\r\n return n.replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandsSeparatorSymbol);\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-tile-slider' })\r\nexport class TileSliderComponent {\r\n\tprivate swiper: Swiper;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.swiper = new Swiper(element, {\r\n\t\t\tslidesPerView: 'auto',\r\n\t\t\tspaceBetween: 0,\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});\r\n\t}\r\n}\r\n","import { Chart } from 'chart.js';\r\nimport { isMobile } from './../utilities/detection';\r\n\r\nlet _fontSize = 16;\r\nlet _lineHeight = 2.5;\r\nlet _fontColor = '#000000';\r\nlet _fontFamily = 'Folio,sans-serif';\r\n\r\nexport function createChart(canvas : HTMLCanvasElement, xAxisData : string[], yAxisData : Dataset[]) {\r\n const displayYAxis = isMobile() == false;\r\n myOptions.scales.yAxes[0].ticks.display = displayYAxis;\r\n let chart : Chart = new Chart(canvas.getContext('2d'), {\r\n \r\n // The type of chart we want to create\r\n type: 'line',\r\n\r\n // The data for our dataset\r\n data: {\r\n labels: xAxisData,\r\n datasets: yAxisData\r\n },\r\n\r\n // Configuration options go here\r\n options: myOptions\r\n });\r\n return chart;\r\n}\r\n\r\nexport function handleResize(chart : Chart, size) {\r\n const displayYAxis = isMobile() == false;\r\n myOptions.scales.yAxes[0].ticks.display = displayYAxis;\r\n chart.options = myOptions;\r\n}\r\n\r\nexport default class Dataset {\r\n label: string; \r\n backgroundColor: string;\r\n borderColor: string;\r\n data: number[];\r\n}\r\n\r\n//options\r\nlet myOptions = {\r\n responsive: true,\r\n maintainAspectRatio: true,\r\n layout: {\r\n padding: {\r\n //left is handled in less file\r\n left: 0,\r\n right: 30,\r\n top: 30,\r\n bottom: 30\r\n }\r\n },\r\n showTooltips: true,\r\n tooltips: {\r\n enabled: true,\r\n cornerRadius: 0,\r\n backgroundColor: 'rgba(255,255,255)',\r\n bodyFontFamily: _fontFamily,\r\n bodyFontColor: _fontColor,\r\n bodyFontStyle: '300',\r\n titleFontColor: _fontColor,\r\n titleFontStyle: 'normal',\r\n titleFontFamily: _fontFamily,\r\n callbacks: {\r\n label: function(tooltipItem, data) {\r\n var label = data.datasets[tooltipItem.datasetIndex].label || '';\r\n\r\n if (label) {\r\n label += ': ';\r\n }\r\n // Convert the number to a string and splite the string every 3 charaters from the end\r\n let value = tooltipItem.yLabel;\r\n value = value.toString();\r\n value = value.split(/(?=(?:...)*$)/);\r\n \r\n // Convert the array to a string and format the output\r\n value = value.join('\\'');\r\n value = 'CHF ' + value;\r\n label += value\r\n return label;\r\n }\r\n }\r\n\r\n },\r\n scales: {\r\n xAxes: [{\r\n ticks: {\r\n fontFamily: _fontFamily,\r\n fontSize: _fontSize,\r\n lineHeight: _lineHeight,\r\n fontColor: _fontColor,\r\n fontStyle: '300'\r\n }, \r\n gridLines: {\r\n display:false\r\n },\r\n }],\r\n yAxes: [{\r\n ticks: {\r\n\r\n // Return an empty string to draw the tick line but hide the tick label\r\n // Return `null` or `undefined` to hide the tick line entirely\r\n userCallback: function(value, index, values) {\r\n // Convert the number to a string and splite the string every 3 charaters from the end\r\n value = value.toString();\r\n value = value.split(/(?=(?:...)*$)/);\r\n \r\n // Convert the array to a string and format the output\r\n value = value.join('\\'');\r\n return 'CHF ' + value;\r\n },\r\n fontFamily: _fontFamily,\r\n fontSize: _fontSize,\r\n lineHeight: _lineHeight,\r\n fontColor: _fontColor,\r\n fontStyle: '300',\r\n display: true\r\n }\r\n }],\r\n },\r\n elements: {\r\n point:{\r\n hitRadius: 10,\r\n borderColor: '#000',\r\n backgroundColor: 'rgba(255,255,255)'\r\n },\r\n line: {\r\n borderWidth: 0\r\n }\r\n },\r\n legend: {\r\n display: false\r\n },\r\n onResize: function(chart, size){\r\n handleResize(chart,size);\r\n }\r\n}","export const MOBILE_WIDTH = 1024;\r\nexport const PAD_WIDTH = 1200;\r\n\r\n// todo: something like Angular? Breakpoint detection?\r\nexport function isMobile() {\r\n return window.innerWidth < MOBILE_WIDTH;\r\n}\r\n\r\n// todo: something like Angular? Breakpoint detection?\r\nexport function isPad() {\r\n return window.innerWidth < PAD_WIDTH;\r\n}\r\n\r\nexport function isDesktop() {\r\n return window.innerWidth >= 1400;\r\n}\r\n\r\nexport function changedSizeBetweenMobileAndDesktop(oldWindowWidth: number): boolean{\r\n const oldWasPad = oldWindowWidth < PAD_WIDTH;\r\n const newIsPad = isPad();\r\n return oldWasPad !== newIsPad;\r\n}","import { hasClass } from '@opten/dom/has-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { Select } from '@opten/select';\r\n//import { Select } from '.components/select';\r\n\r\nimport { getDatepicker } from '../../../Opten.HypothekarbankLenzburg.Core.Static/components/datepicker';\r\n\r\nexport function getFields(form: HTMLFormElement, ignore: Array = []) {\r\n const fields = new Map<\r\n string,\r\n HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\r\n >();\r\n\r\n if (ignore && ignore.length) {\r\n ignore = ignore.map(o => o.toLowerCase());\r\n }\r\n\r\n Array.from(form.getElementsByTagName('input'))\r\n .filter(o => o.name && ignore.indexOf(o.name.toLowerCase()) === -1)\r\n .forEach(input => {\r\n // more or less just because of checkboxes...\r\n if (!fields.has(input.name)) {\r\n fields.set(input.name, input);\r\n }\r\n });\r\n\r\n Array.from(form.getElementsByTagName('textarea'))\r\n .filter(o => o.name && ignore.indexOf(o.name.toLowerCase()) === -1)\r\n .forEach(textarea => {\r\n if (!fields.has(textarea.name)) {\r\n fields.set(textarea.name, textarea);\r\n }\r\n });\r\n\r\n Array.from(form.getElementsByTagName('select'))\r\n .filter(o => o.name && ignore.indexOf(o.name.toLowerCase()) === -1)\r\n .forEach(select => {\r\n if (!fields.has(select.name)) {\r\n fields.set(select.name, select);\r\n }\r\n });\r\n\r\n return fields;\r\n}\r\n\r\nexport function mapFields(\r\n form: HTMLFormElement,\r\n ignore: Array = []\r\n): Map {\r\n // todo: better way? Some browsers doesn't allow to read FormData\r\n const fields = new Map();\r\n\r\n const map = (\r\n input: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement\r\n ): string => {\r\n if (hasClass(input, 'js-text-mask-currency')) {\r\n return input.value\r\n .replace(/\\'/g, '')\r\n .replace(/CHF/g, '')\r\n .replace(/\\./g, '')\r\n .trim();\r\n } else if (hasClass(input, 'js-datepicker-field-hidden')) {\r\n const datepicker = getDatepicker(input as HTMLInputElement);\r\n\r\n return `${input.value};${datepicker ? datepicker.value : ''}`;\r\n } else if (input.type === 'checkbox') {\r\n return (input as HTMLInputElement).checked ? 'true' : 'false';\r\n }\r\n\r\n return input.value;\r\n };\r\n\r\n getFields(form, ignore).forEach(input => {\r\n if (!fields.has(input.name)) {\r\n fields.set(input.name, map(input));\r\n }\r\n });\r\n\r\n return fields;\r\n}\r\n\r\nexport function setFieldsFromJson(\r\n form: HTMLFormElement,\r\n selects: Array element\n\t */\n\tprivate _shouldForward(eventName: string) {\n\t\tconst event = document.createEvent('HTMLEvents');\n\t\tevent.initEvent(eventName, false, true);\n\t\tthis.selectElement.dispatchEvent(event);\n\t}\n\n\tprivate _getSelectedIndex() {\n\t\tif (this.selectElement.selectedIndex >= 0) {\n\t\t\treturn this.selectElement.selectedIndex;\n\t\t}\n\n\t\t// TODO: Investigate why this.selectElement.selectedIndex is sometimes -1\n\t\t// even we have selected=\"selected\"! Occurs when you navigate back!\n\t\tconst selected =\n\t\t\tthis.selectElement.querySelector('option[selected]');\n\n\t\tif (!selected) {\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn Array.from(selected.parentElement.children).indexOf(selected);\n\t}\n}\n\nexport function select(element: HTMLSelectElement): Select {\n\treturn new Select(element);\n}\n","import { createNode } from '@opten/dom/create-node';\nimport { addClass } from '@opten/dom/add-class';\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\nimport { removeClass } from '@opten/dom/remove-class';\nimport { addTransitionEndListener } from '@opten/transition/add-transition-end-listener';\nimport { eventNamespaceFactory } from '@opten/events/event-namespace-factory';\nimport { parseCssUnit } from '@opten/number/parse-css-unit';\nimport { getStyles } from '@opten/dom/get-styles';\nimport { getCss } from '@opten/dom/get-css';\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\n\nconst transitionDuration = 600;\n\nexport class SidebarOptions {\n\tbodyElement: HTMLElement;\n\titemClassName?: string;\n\tbackdropClassName?: string;\n\tcloseClassName?: string;\n\tstickyElements?: HTMLElement[];\n\tbreakpoints: {\n\t\tmaxWidth: number;\n\t};\n}\n\nexport class Sidebar {\n\tprivate _options: SidebarOptions = {\n\t\tbodyElement: undefined,\n\t\titemClassName: 'js-sidebar-item',\n\t\tcloseClassName: 'js-sidebar-close',\n\t\tbackdropClassName: 'c-sidebar__backdrop',\n\t\tbreakpoints: {\n\t\t\tmaxWidth: undefined,\n\t\t},\n\t};\n\n\tprivate _navElement: HTMLElement;\n\tprivate _linkElements: HTMLElement[];\n\n\t// event names\n\tprivate _eventNamespaceFn = eventNamespaceFactory('opten.sidebar');\n\n\t// cache the scroll to go back to this position\n\tprivate _lastScrollPosition: number | null = null;\n\n\tconstructor(private _element: HTMLElement, options?: SidebarOptions) {\n\t\tthis._options = { ...this._options, ...options };\n\n\t\tthis._navElement = this._element.firstElementChild as HTMLElement;\n\t\tthis._linkElements = Array.from(\n\t\t\tthis._element.getElementsByClassName(this._options.itemClassName)\n\t\t) as HTMLElement[];\n\n\t\tthis._init();\n\t}\n\n\tprivate _init() {\n\t\tthis._linkElements.forEach((link) =>\n\t\t\tlink.addEventListener('click', (event) => this._handleClick(event))\n\t\t);\n\n\t\tArray.from(\n\t\t\tdocument.getElementsByClassName(this._options.closeClassName)\n\t\t).forEach((close) =>\n\t\t\tclose.addEventListener('click', (event) => this._handleClose(event))\n\t\t);\n\n\t\tthis._handleBreakpointChange();\n\t\twindow.addEventListener('resize', () => this._handleBreakpointChange());\n\t}\n\n\tprivate _handleBreakpointChange() {\n\t\t// todo: something like isMediaBreakpointDown()?\n\t\tif (\n\t\t\tthis._options.breakpoints.maxWidth &&\n\t\t\twindow.innerWidth < this._options.breakpoints.maxWidth\n\t\t) {\n\t\t\tthis._element.style.display = 'none';\n\t\t} else {\n\t\t\tthis._element.style.display = null;\n\n\t\t\t// Adjust the element so it's actually visible if we have other elements\n\t\t\t// which could be above of it, so we can see it.\n\t\t\tthis._adjustElement();\n\t\t}\n\t}\n\n\tprivate _handleClick(event: Event) {\n\t\tevent.preventDefault();\n\n\t\tconst toggler = event.currentTarget as HTMLElement;\n\t\tconst target = getSelectorElementFromElement(toggler);\n\n\t\tif (target) {\n\t\t\tthis._show(target, toggler);\n\t\t}\n\t}\n\n\tprivate _handleClose(event: Event) {\n\t\tevent.preventDefault();\n\n\t\tconst toggler = event.currentTarget as HTMLElement;\n\t\tconst target = getSelectorElementFromElement(toggler);\n\n\t\tif (target) {\n\t\t\tthis._close(target);\n\t\t}\n\t}\n\n\tprivate _show(sidebar: HTMLElement, toggler: HTMLElement) {\n\t\tthis._eventNamespaceFn(sidebar, 'show');\n\t\tthis._eventNamespaceFn(toggler, 'show'); // todo: why?\n\n\t\t// todo: is it possible to show the correct view\n\t\t// instead of caching the last scroll position?\n\t\t// something like adding the scroll as margin/padding/top?\n\t\tthis._lastScrollPosition = getWindowScrollTop();\n\n\t\tthis._adjustOverlay(sidebar);\n\n\t\taddClass(document.body, 'is-c-sidebar-body');\n\t\taddClass(this._options.bodyElement, 'is-c-sidebar-zoom-out');\n\n\t\tremoveClass(sidebar, 'is-collapsed');\n\t\taddClass(this._navElement, 'is-collapsed');\n\n\t\taddClass(this._getBackdrop(), 'is-visible');\n\n\t\taddTransitionEndListener(\n\t\t\tthis._options.bodyElement,\n\t\t\t() => {\n\t\t\t\tthis._eventNamespaceFn(sidebar, 'shown');\n\t\t\t\tthis._eventNamespaceFn(toggler, 'shown'); // todo: why?\n\t\t\t\tthis._updateAria(sidebar, true);\n\t\t\t},\n\t\t\ttransitionDuration\n\t\t);\n\t}\n\n\tprivate _close(sidebar: HTMLElement) {\n\t\tthis._eventNamespaceFn(sidebar, 'hide');\n\n\t\tconst backdrop = this._getBackdrop();\n\t\tconst hasBackdrop = backdrop != null && backdrop !== undefined;\n\n\t\taddClass(this._options.bodyElement, 'is-c-sidebar-zoom-in');\n\t\taddClass(sidebar, 'is-collapsed');\n\n\t\tif (hasBackdrop) {\n\t\t\tremoveClass(backdrop, 'is-visible');\n\t\t}\n\n\t\taddTransitionEndListener(\n\t\t\tthis._options.bodyElement,\n\t\t\t() => {\n\t\t\t\tthis._eventNamespaceFn(sidebar, 'hidden');\n\n\t\t\t\tremoveClass(document.body, 'is-c-sidebar-body');\n\t\t\t\tremoveClass(this._options.bodyElement, 'is-c-sidebar-zoom-out');\n\t\t\t\tremoveClass(this._options.bodyElement, 'is-c-sidebar-zoom-in');\n\n\t\t\t\tif (hasBackdrop) {\n\t\t\t\t\tthis._resetOverlay(backdrop);\n\t\t\t\t}\n\n\t\t\t\tremoveClass(this._navElement, 'is-collapsed');\n\n\t\t\t\tthis._updateAria(sidebar, false);\n\n\t\t\t\tif (this._lastScrollPosition) {\n\t\t\t\t\twindow.scrollTo(0, this._lastScrollPosition);\n\t\t\t\t}\n\t\t\t},\n\t\t\ttransitionDuration\n\t\t);\n\t}\n\n\tprivate _getBackdrop(): HTMLElement {\n\t\treturn document.getElementsByClassName(\n\t\t\tthis._options.backdropClassName\n\t\t)[0] as HTMLElement;\n\t}\n\n\tprivate _createBackdrop(sidebar: HTMLElement): HTMLElement {\n\t\tconst backdrop = createNode(\n\t\t\t`
`\n\t\t);\n\n\t\tbackdrop.addEventListener('click', (event) => this._close(sidebar));\n\n\t\treturn backdrop;\n\t}\n\n\tprivate _setScrollbar() {\n\t\t// if the body is overflowing, we need to calculate the scrollbar\n\t\tif (this._isBodyOverflowing()) {\n\t\t\tconst scrollbarWidth = this._getScrollbarWidth();\n\n\t\t\tthis._setScrollbarOfElement(document.body, scrollbarWidth);\n\n\t\t\tif (this._options.stickyElements && this._options.stickyElements.length) {\n\t\t\t\tthis._options.stickyElements.forEach((sticky) => {\n\t\t\t\t\tif (sticky) {\n\t\t\t\t\t\tthis._setScrollbarOfElement(sticky, scrollbarWidth);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// this._element.style.marginRight = `${scrollbarWidth}px`;\n\t\t\tthis._options.bodyElement.style.paddingRight = `${scrollbarWidth}px`;\n\t\t}\n\t}\n\n\tprivate _adjustOverlay(sidebar: HTMLElement) {\n\t\t// Adjust the overlay so if the document.body has some margins/paddings\n\t\t// e.g. to have a fixed header, we need to adjust by that...\n\t\tconst styles = getStyles(document.body); // cache\n\n\t\tconst calculatedMargin = parseCssUnit(\n\t\t\tgetCss(document.body, 'margin-top', styles)\n\t\t);\n\t\tconst calculatedPadding = parseCssUnit(\n\t\t\tgetCss(document.body, 'padding-top', styles)\n\t\t);\n\n\t\tconst calculated = calculatedMargin + calculatedPadding;\n\n\t\tif (calculated && calculated > 0) {\n\t\t\tthis._options.bodyElement.style.marginTop = `${calculated * -1}px`;\n\t\t\tthis._options.bodyElement.style.paddingTop = `${calculated}px`;\n\t\t}\n\n\t\tthis._setScrollbar();\n\n\t\tthis._options.bodyElement.appendChild(this._createBackdrop(sidebar));\n\t}\n\n\tprivate _adjustElement() {\n\t\t// Make the adjustment much nicer, if the navElement\n\t\t// is actually collapsed.\n\t\tremoveClass(this._navElement, 'is-collapsed');\n\n\t\tthis._element.style.top = `50%`;\n\t\tthis._element.style.marginTop = `-${Math.round(\n\t\t\tthis._navElement.getBoundingClientRect().height / 2\n\t\t)}px`;\n\t}\n\n\tprivate _resetOverlay(backdrop: HTMLElement) {\n\t\tthis._options.bodyElement.style.marginTop = null;\n\t\tthis._options.bodyElement.style.paddingTop = null;\n\n\t\tthis._resetScrollbar();\n\n\t\t// todo: kill events?\n\t\tbackdrop.parentElement.removeChild(backdrop);\n\t}\n\n\tprivate _setScrollbarOfElement(element: HTMLElement, scrollbarWidth: number) {\n\t\tconst style = this._getStyleName(element);\n\t\tconst attributeName = `data-sidebar-${style}`;\n\n\t\tconst actual = element.style[style];\n\t\tconst calculated = parseCssUnit(getCss(element, style));\n\n\t\telement.setAttribute(attributeName, actual);\n\n\t\telement.style[style] = `${calculated + scrollbarWidth}px`;\n\t}\n\n\tprivate _resetScrollbar() {\n\t\t// this._element.style.marginRight = null;\n\t\tthis._options.bodyElement.style.paddingRight = null;\n\n\t\tif (this._options.stickyElements && this._options.stickyElements.length) {\n\t\t\tthis._options.stickyElements.forEach((sticky) => {\n\t\t\t\tif (sticky) {\n\t\t\t\t\tthis._resetScrollbarOfElement(sticky);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._resetScrollbarOfElement(document.body);\n\t}\n\n\tprivate _resetScrollbarOfElement(element: HTMLElement) {\n\t\tconst style = this._getStyleName(element);\n\t\tconst attributeName = `data-sidebar-${style}`;\n\n\t\tif (element.hasAttribute(attributeName)) {\n\t\t\tconst calculated = Number(element.getAttribute(attributeName));\n\n\t\t\tif (calculated && calculated > 0) {\n\t\t\t\telement.style[style] = `${calculated}px`;\n\t\t\t} else {\n\t\t\t\telement.style[style] = null;\n\t\t\t}\n\n\t\t\telement.removeAttribute(attributeName);\n\t\t}\n\t}\n\n\tprivate _isBodyOverflowing() {\n\t\tconst rect = document.body.getBoundingClientRect();\n\n\t\treturn rect.left + rect.right < window.innerWidth;\n\t}\n\n\t// To achieve nicer animations we set the scroll width to the\n\t// body element so we don't jumpt around...\n\tprivate _getScrollbarWidth() {\n\t\tconst div = document.createElement('div');\n\t\tdiv.setAttribute(\n\t\t\t'style',\n\t\t\t`position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;`\n\t\t);\n\t\tdocument.body.appendChild(div);\n\t\tconst width = div.getBoundingClientRect().width - div.clientWidth;\n\t\tdocument.body.removeChild(div);\n\t\treturn width;\n\t}\n\n\tprivate _getStyleName(element: HTMLElement) {\n\t\tif (element.style && element.style.position === 'sticky') {\n\t\t\treturn 'margin-right';\n\t\t}\n\t\treturn 'padding-right';\n\t}\n\n\tprivate _updateAria(sidebar: HTMLElement, expanded: boolean) {\n\t\tthis._linkElements.forEach((link) => {\n\t\t\tconst target = getSelectorElementFromElement(link);\n\n\t\t\tlink.setAttribute(\n\t\t\t\t'aria-expanded',\n\t\t\t\t(expanded && target === sidebar).toString()\n\t\t\t);\n\t\t});\n\t}\n}\n\nexport function sidebar(\n\telement: HTMLElement,\n\toptions?: SidebarOptions\n): Sidebar {\n\treturn new Sidebar(element, options);\n}\n","import { OverlayPositionBuilder } from './../overlay/position/overlay-position-builder';\r\nimport {\r\n\toverlay,\r\n\tOverlay,\r\n\tOriginConnectionPosition,\r\n\tOverlayConnectionPosition,\r\n} from '@opten/overlay';\r\nimport { createNode } from '@opten/dom/create-node';\r\n\r\nconst transitionDuration = 300;\r\n\r\nexport class Tooltip {\r\n\tprivate _overlayRef: Overlay;\r\n\tprivate _tooltipOpen = false;\r\n\r\n\tprivate _cachedTitleTag: string;\r\n\r\n\tconstructor(private _element: HTMLElement) {\r\n\t\tif (!_element.hasAttribute('title') || !_element.title) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._init();\r\n\t}\r\n\r\n\tprivate _init() {\r\n\t\tthis._cachedTitleTag = this._element.title;\r\n\r\n\t\tif (!this._cachedTitleTag) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._element.addEventListener('mouseenter', () => this._show());\r\n\t\tthis._element.addEventListener('mouseleave', () => this._hide());\r\n\t}\r\n\r\n\tprivate _show(): void {\r\n\t\tif (this._tooltipOpen) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// prevent animating the title tag\r\n\t\tthis._element.removeAttribute('title');\r\n\r\n\t\tthis._tooltipOpen = true;\r\n\t\tthis._createOverlay().open();\r\n\t}\r\n\r\n\tprivate _hide(): void {\r\n\t\tif (this._tooltipOpen) {\r\n\t\t\tthis._tooltipOpen = false;\r\n\r\n\t\t\tthis._overlayRef.close();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This method creates the overlay from the provided tooltip's template and saves its\r\n\t * OverlayRef so that it can be attached to the DOM when open is called.\r\n\t */\r\n\tprivate _createOverlay(): Overlay {\r\n\t\tif (!this._overlayRef) {\r\n\t\t\tconst portalElement = `
\r\n ${this._cachedTitleTag}\r\n
`;\r\n\r\n\t\t\tconst origin = this._getOrigin();\r\n\t\t\tconst overlayPosition = this._getOverlayPosition();\r\n\r\n\t\t\t// todo: like angular material this._overlayRef.position()?\r\n\t\t\t// Create connected position strategy that listens for scroll events to reposition.\r\n\t\t\tconst strategy = new OverlayPositionBuilder()\r\n\t\t\t\t.connectedTo(this._element, origin.main, overlayPosition.main)\r\n\t\t\t\t.withFallbackPosition(origin.fallback, overlayPosition.fallback);\r\n\r\n\t\t\t/*strategy.onPositionChange = (change) => {\r\n if (change.scrollableViewProperties.isOverlayClipped && this._tooltipInstance.isVisible()) {\r\n this.hide(0)\r\n } else {\r\n // Otherwise recalculate the origin based on the new position.\r\n this._tooltipInstance._setTransformOrigin(change.connectionPair);\r\n }\r\n };*/\r\n\r\n\t\t\tthis._overlayRef = overlay(createNode(portalElement), {\r\n\t\t\t\tpositionStrategy: strategy,\r\n\t\t\t\toverlayClassName: 'c-tooltip__panel',\r\n\t\t\t\thasBackdrop: false,\r\n\t\t\t});\r\n\r\n\t\t\tthis._overlayRef.afterClosed = () => {\r\n\t\t\t\tthis._overlayRef.dispose();\r\n\r\n\t\t\t\t// add title tag again\r\n\t\t\t\tthis._element.setAttribute('title', this._cachedTitleTag);\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\treturn this._overlayRef;\r\n\t}\r\n\r\n\tprivate _getOrigin() {\r\n\t\t// at the moment we only support above\r\n\t\treturn {\r\n\t\t\tmain: {\r\n\t\t\t\toriginX: 'center',\r\n\t\t\t\toriginY: 'top',\r\n\t\t\t} as OriginConnectionPosition,\r\n\t\t\tfallback: {\r\n\t\t\t\toriginX: 'center',\r\n\t\t\t\toriginY: 'bottom',\r\n\t\t\t} as OriginConnectionPosition,\r\n\t\t};\r\n\t}\r\n\r\n\tprivate _getOverlayPosition() {\r\n\t\t// at the moment we only support above\r\n\t\treturn {\r\n\t\t\tmain: {\r\n\t\t\t\toverlayX: 'center',\r\n\t\t\t\toverlayY: 'bottom',\r\n\t\t\t} as OverlayConnectionPosition,\r\n\t\t\tfallback: {\r\n\t\t\t\toverlayX: 'center',\r\n\t\t\t\toverlayY: 'top',\r\n\t\t\t} as OverlayConnectionPosition,\r\n\t\t};\r\n\t}\r\n}\r\n\r\nexport function tooltip(element: HTMLElement): Tooltip {\r\n\treturn new Tooltip(element);\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","export function removeDomain(url: string) {\r\n\treturn url.replace(\r\n\t\t/^[a-z]{4,5}\\:\\/{2}[a-z0-9\\.]{1,}[\\:]{0,1}[0-9]{0,4}(.*)/,\r\n\t\t'$1'\r\n\t);\r\n}\r\n","/**\r\n * Gets whether an element is clipped by any of its scrolling containers.\r\n * @param element Dimensions of the element (from getBoundingClientRect)\r\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\r\n * @returns Whether the element is clipped\r\n * @docs-private\r\n */\r\nexport function isElementClippedByScrolling(\r\n\telement: ClientRect,\r\n\tscrollContainers: ClientRect[]\r\n) {\r\n\treturn scrollContainers.some((scrollContainerRect) => {\r\n\t\tconst clippedAbove = element.top < scrollContainerRect.top;\r\n\t\tconst clippedBelow = element.bottom > scrollContainerRect.bottom;\r\n\t\tconst clippedLeft = element.left < scrollContainerRect.left;\r\n\t\tconst clippedRight = element.right > scrollContainerRect.right;\r\n\r\n\t\treturn clippedAbove || clippedBelow || clippedLeft || clippedRight;\r\n\t});\r\n}\r\n","/**\r\n * Gets whether an element is scrolled outside of view by any of its parent scrolling containers.\r\n * @param element Dimensions of the element (from getBoundingClientRect)\r\n * @param scrollContainers Dimensions of element's scrolling containers (from getBoundingClientRect)\r\n * @returns Whether the element is scrolled out of view\r\n * @docs-private\r\n */\r\nexport function isElementScrolledOutsideView(\r\n\telement: ClientRect,\r\n\tscrollContainers: ClientRect[]\r\n) {\r\n\treturn scrollContainers.some((containerBounds) => {\r\n\t\tconst outsideAbove = element.bottom < containerBounds.top;\r\n\t\tconst outsideBelow = element.top > containerBounds.bottom;\r\n\t\tconst outsideLeft = element.right < containerBounds.left;\r\n\t\tconst outsideRight = element.left > containerBounds.right;\r\n\r\n\t\treturn outsideAbove || outsideBelow || outsideLeft || outsideRight;\r\n\t});\r\n}\r\n","/*!\n * Chart.js v2.9.4\n * https://www.chartjs.org\n * (c) 2020 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\nfunction isValidKey(key) {\r\n\treturn ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\r\n}\r\n\r\n/**\r\n * @namespace Chart.helpers\r\n */\r\nvar helpers = {\r\n\t/**\r\n\t * An empty function that can be used, for example, for optional callback.\r\n\t */\r\n\tnoop: function() {},\r\n\r\n\t/**\r\n\t * Returns a unique id, sequentially generated from a global variable.\r\n\t * @returns {number}\r\n\t * @function\r\n\t */\r\n\tuid: (function() {\r\n\t\tvar id = 0;\r\n\t\treturn function() {\r\n\t\t\treturn id++;\r\n\t\t};\r\n\t}()),\r\n\r\n\t/**\r\n\t * Returns true if `value` is neither null nor undefined, else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisNullOrUndef: function(value) {\r\n\t\treturn value === null || typeof value === 'undefined';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @function\r\n\t */\r\n\tisArray: function(value) {\r\n\t\tif (Array.isArray && Array.isArray(value)) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tvar type = Object.prototype.toString.call(value);\r\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is an object (excluding null), else returns false.\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t * @since 2.7.0\r\n\t */\r\n\tisObject: function(value) {\r\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if `value` is a finite number, else returns false\r\n\t * @param {*} value - The value to test.\r\n\t * @returns {boolean}\r\n\t */\r\n\tisFinite: function(value) {\r\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns `value` if defined, else returns `defaultValue`.\r\n\t * @param {*} value - The value to return if defined.\r\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueOrDefault: function(value, defaultValue) {\r\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\r\n\t * @param {Array} value - The array to lookup for value at `index`.\r\n\t * @param {number} index - The index in `value` to lookup for value.\r\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\r\n\t * @returns {*}\r\n\t */\r\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\r\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\r\n\t},\r\n\r\n\t/**\r\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\r\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\r\n\t * @param {function} fn - The function to call.\r\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @returns {*}\r\n\t */\r\n\tcallback: function(fn, args, thisArg) {\r\n\t\tif (fn && typeof fn.call === 'function') {\r\n\t\t\treturn fn.apply(thisArg, args);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Note(SB) for performance sake, this method should only be used when loopable type\r\n\t * is unknown or in none intensive code (not called often and small loopable). Else\r\n\t * it's preferable to use a regular for() loop and save extra function calls.\r\n\t * @param {object|Array} loopable - The object or array to be iterated.\r\n\t * @param {function} fn - The function to call for each item.\r\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\r\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\r\n\t */\r\n\teach: function(loopable, fn, thisArg, reverse) {\r\n\t\tvar i, len, keys;\r\n\t\tif (helpers.isArray(loopable)) {\r\n\t\t\tlen = loopable.length;\r\n\t\t\tif (reverse) {\r\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} else if (helpers.isObject(loopable)) {\r\n\t\t\tkeys = Object.keys(loopable);\r\n\t\t\tlen = keys.length;\r\n\t\t\tfor (i = 0; i < len; i++) {\r\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\r\n\t * @see https://stackoverflow.com/a/14853974\r\n\t * @param {Array} a0 - The array to compare\r\n\t * @param {Array} a1 - The array to compare\r\n\t * @returns {boolean}\r\n\t */\r\n\tarrayEquals: function(a0, a1) {\r\n\t\tvar i, ilen, v0, v1;\r\n\r\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\r\n\t\t\tv0 = a0[i];\r\n\t\t\tv1 = a1[i];\r\n\r\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\r\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t} else if (v0 !== v1) {\r\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\r\n\t * @param {*} source - The value to clone.\r\n\t * @returns {*}\r\n\t */\r\n\tclone: function(source) {\r\n\t\tif (helpers.isArray(source)) {\r\n\t\t\treturn source.map(helpers.clone);\r\n\t\t}\r\n\r\n\t\tif (helpers.isObject(source)) {\r\n\t\t\tvar target = Object.create(source);\r\n\t\t\tvar keys = Object.keys(source);\r\n\t\t\tvar klen = keys.length;\r\n\t\t\tvar k = 0;\r\n\r\n\t\t\tfor (; k < klen; ++k) {\r\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\r\n\t\t\t}\r\n\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\treturn source;\r\n\t},\r\n\r\n\t/**\r\n\t * The default merger when Chart.helpers.merge is called without merger option.\r\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\r\n\t * @private\r\n\t */\r\n\t_merger: function(key, target, source, options) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.merge(tval, sval, options);\r\n\t\t} else {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Merges source[key] in target[key] only if target[key] is undefined.\r\n\t * @private\r\n\t */\r\n\t_mergerIf: function(key, target, source) {\r\n\t\tif (!isValidKey(key)) {\r\n\t\t\t// We want to ensure we do not copy prototypes over\r\n\t\t\t// as this can pollute global namespaces\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar tval = target[key];\r\n\t\tvar sval = source[key];\r\n\r\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\r\n\t\t\thelpers.mergeIf(tval, sval);\r\n\t\t} else if (!target.hasOwnProperty(key)) {\r\n\t\t\ttarget[key] = helpers.clone(sval);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @param {object} [options] - Merging options:\r\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmerge: function(target, source, options) {\r\n\t\tvar sources = helpers.isArray(source) ? source : [source];\r\n\t\tvar ilen = sources.length;\r\n\t\tvar merge, i, keys, klen, k;\r\n\r\n\t\tif (!helpers.isObject(target)) {\r\n\t\t\treturn target;\r\n\t\t}\r\n\r\n\t\toptions = options || {};\r\n\t\tmerge = options.merger || helpers._merger;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tsource = sources[i];\r\n\t\t\tif (!helpers.isObject(source)) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tkeys = Object.keys(source);\r\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\r\n\t\t\t\tmerge(keys[k], target, source, options);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn target;\r\n\t},\r\n\r\n\t/**\r\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\r\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\r\n\t * @param {object} target - The target object in which all sources are merged into.\r\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\tmergeIf: function(target, source) {\r\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\r\n\t},\r\n\r\n\t/**\r\n\t * Applies the contents of two or more objects together into the first object.\r\n\t * @param {object} target - The target object in which all objects are merged into.\r\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\r\n\t * @param {object} argN - Additional objects containing properties to merge in target.\r\n\t * @returns {object} The `target` object.\r\n\t */\r\n\textend: Object.assign || function(target) {\r\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\r\n\t\t\tmerger: function(key, dst, src) {\r\n\t\t\t\tdst[key] = src[key];\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * Basic javascript inheritance based on the model created in Backbone.js\r\n\t */\r\n\tinherits: function(extensions) {\r\n\t\tvar me = this;\r\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\r\n\t\t\treturn me.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\tvar Surrogate = function() {\r\n\t\t\tthis.constructor = ChartElement;\r\n\t\t};\r\n\r\n\t\tSurrogate.prototype = me.prototype;\r\n\t\tChartElement.prototype = new Surrogate();\r\n\t\tChartElement.extend = helpers.inherits;\r\n\r\n\t\tif (extensions) {\r\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\r\n\t\t}\r\n\r\n\t\tChartElement.__super__ = me.prototype;\r\n\t\treturn ChartElement;\r\n\t},\r\n\r\n\t_deprecated: function(scope, value, previous, current) {\r\n\t\tif (value !== undefined) {\r\n\t\t\tconsole.warn(scope + ': \"' + previous +\r\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\r\n\t\t}\r\n\t}\r\n};\r\n\r\nvar helpers_core = helpers;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.callback instead.\r\n * @function Chart.helpers.callCallback\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.callCallback = helpers.callback;\r\n\r\n/**\r\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\r\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\r\n * @function Chart.helpers.indexOf\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.indexOf = function(array, item, fromIndex) {\r\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\r\n};\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\r\n * @function Chart.helpers.getValueOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueOrDefault = helpers.valueOrDefault;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\r\n * @function Chart.helpers.getValueAtIndexOrDefault\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\r\n * Easing functions adapted from Robert Penner's easing equations.\r\n * @namespace Chart.helpers.easingEffects\r\n * @see http://www.robertpenner.com/easing/\r\n */\r\nvar effects = {\r\n\tlinear: function(t) {\r\n\t\treturn t;\r\n\t},\r\n\r\n\teaseInQuad: function(t) {\r\n\t\treturn t * t;\r\n\t},\r\n\r\n\teaseOutQuad: function(t) {\r\n\t\treturn -t * (t - 2);\r\n\t},\r\n\r\n\teaseInOutQuad: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\r\n\t},\r\n\r\n\teaseInCubic: function(t) {\r\n\t\treturn t * t * t;\r\n\t},\r\n\r\n\teaseOutCubic: function(t) {\r\n\t\treturn (t = t - 1) * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutCubic: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\r\n\t},\r\n\r\n\teaseInQuart: function(t) {\r\n\t\treturn t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuart: function(t) {\r\n\t\treturn -((t = t - 1) * t * t * t - 1);\r\n\t},\r\n\r\n\teaseInOutQuart: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t;\r\n\t\t}\r\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\r\n\t},\r\n\r\n\teaseInQuint: function(t) {\r\n\t\treturn t * t * t * t * t;\r\n\t},\r\n\r\n\teaseOutQuint: function(t) {\r\n\t\treturn (t = t - 1) * t * t * t * t + 1;\r\n\t},\r\n\r\n\teaseInOutQuint: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * t * t * t * t * t;\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\r\n\t},\r\n\r\n\teaseInSine: function(t) {\r\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\r\n\t},\r\n\r\n\teaseOutSine: function(t) {\r\n\t\treturn Math.sin(t * (Math.PI / 2));\r\n\t},\r\n\r\n\teaseInOutSine: function(t) {\r\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\r\n\t},\r\n\r\n\teaseInExpo: function(t) {\r\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\r\n\t},\r\n\r\n\teaseOutExpo: function(t) {\r\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\r\n\t},\r\n\r\n\teaseInOutExpo: function(t) {\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\r\n\t\t}\r\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\r\n\t},\r\n\r\n\teaseInCirc: function(t) {\r\n\t\tif (t >= 1) {\r\n\t\t\treturn t;\r\n\t\t}\r\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\r\n\t},\r\n\r\n\teaseOutCirc: function(t) {\r\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\r\n\t},\r\n\r\n\teaseInOutCirc: function(t) {\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\r\n\t\t}\r\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\r\n\t},\r\n\r\n\teaseInElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t},\r\n\r\n\teaseOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif (t === 1) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.3;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\r\n\t},\r\n\r\n\teaseInOutElastic: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tvar p = 0;\r\n\t\tvar a = 1;\r\n\t\tif (t === 0) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t\tif ((t /= 0.5) === 2) {\r\n\t\t\treturn 1;\r\n\t\t}\r\n\t\tif (!p) {\r\n\t\t\tp = 0.45;\r\n\t\t}\r\n\t\tif (a < 1) {\r\n\t\t\ta = 1;\r\n\t\t\ts = p / 4;\r\n\t\t} else {\r\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\r\n\t\t}\r\n\t\tif (t < 1) {\r\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\r\n\t\t}\r\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n\t},\r\n\teaseInBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn t * t * ((s + 1) * t - s);\r\n\t},\r\n\r\n\teaseOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\r\n\t},\r\n\r\n\teaseInOutBack: function(t) {\r\n\t\tvar s = 1.70158;\r\n\t\tif ((t /= 0.5) < 1) {\r\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\r\n\t\t}\r\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\r\n\t},\r\n\r\n\teaseInBounce: function(t) {\r\n\t\treturn 1 - effects.easeOutBounce(1 - t);\r\n\t},\r\n\r\n\teaseOutBounce: function(t) {\r\n\t\tif (t < (1 / 2.75)) {\r\n\t\t\treturn 7.5625 * t * t;\r\n\t\t}\r\n\t\tif (t < (2 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\r\n\t\t}\r\n\t\tif (t < (2.5 / 2.75)) {\r\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\r\n\t\t}\r\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\r\n\t},\r\n\r\n\teaseInOutBounce: function(t) {\r\n\t\tif (t < 0.5) {\r\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\r\n\t\t}\r\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\r\n\t}\r\n};\r\n\r\nvar helpers_easing = {\r\n\teffects: effects\r\n};\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\r\n * @function Chart.helpers.easingEffects\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\r\nvar RAD_PER_DEG = PI / 180;\r\nvar DOUBLE_PI = PI * 2;\r\nvar HALF_PI = PI / 2;\r\nvar QUARTER_PI = PI / 4;\r\nvar TWO_THIRDS_PI = PI * 2 / 3;\r\n\r\n/**\r\n * @namespace Chart.helpers.canvas\r\n */\r\nvar exports$1 = {\r\n\t/**\r\n\t * Clears the entire canvas associated to the given `chart`.\r\n\t * @param {Chart} chart - The chart for which to clear the canvas.\r\n\t */\r\n\tclear: function(chart) {\r\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\r\n\t},\r\n\r\n\t/**\r\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\r\n\t * given size (width, height) and the same `radius` for all corners.\r\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\r\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\r\n\t * @param {number} width - The rectangle's width.\r\n\t * @param {number} height - The rectangle's height.\r\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\r\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\r\n\t */\r\n\troundedRect: function(ctx, x, y, width, height, radius) {\r\n\t\tif (radius) {\r\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\r\n\t\t\tvar left = x + r;\r\n\t\t\tvar top = y + r;\r\n\t\t\tvar right = x + width - r;\r\n\t\t\tvar bottom = y + height - r;\r\n\r\n\t\t\tctx.moveTo(x, top);\r\n\t\t\tif (left < right && top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\r\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\r\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\r\n\t\t\t} else if (left < right) {\r\n\t\t\t\tctx.moveTo(left, y);\r\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\r\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\r\n\t\t\t} else if (top < bottom) {\r\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\r\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\r\n\t\t\t} else {\r\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\r\n\t\t\t}\r\n\t\t\tctx.closePath();\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t} else {\r\n\t\t\tctx.rect(x, y, width, height);\r\n\t\t}\r\n\t},\r\n\r\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\r\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\r\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\r\n\r\n\t\tif (style && typeof style === 'object') {\r\n\t\t\ttype = style.toString();\r\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\r\n\t\t\t\tctx.save();\r\n\t\t\t\tctx.translate(x, y);\r\n\t\t\t\tctx.rotate(rad);\r\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\r\n\t\t\t\tctx.restore();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isNaN(radius) || radius <= 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\r\n\t\tswitch (style) {\r\n\t\t// Default includes circle\r\n\t\tdefault:\r\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'triangle':\r\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\trad += TWO_THIRDS_PI;\r\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rectRounded':\r\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\r\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\r\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\r\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\r\n\t\t\t// circle with `radius`. For more details, see the following PRs:\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\r\n\t\t\tcornerRadius = radius * 0.516;\r\n\t\t\tsize = radius - cornerRadius;\r\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\r\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\r\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\r\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\r\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\r\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'rect':\r\n\t\t\tif (!rotation) {\r\n\t\t\t\tsize = Math.SQRT1_2 * radius;\r\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'rectRot':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tctx.closePath();\r\n\t\t\tbreak;\r\n\t\tcase 'crossRot':\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\t/* falls through */\r\n\t\tcase 'cross':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'star':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\trad += QUARTER_PI;\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\r\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'line':\r\n\t\t\txOffset = Math.cos(rad) * radius;\r\n\t\t\tyOffset = Math.sin(rad) * radius;\r\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\r\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\r\n\t\t\tbreak;\r\n\t\tcase 'dash':\r\n\t\t\tctx.moveTo(x, y);\r\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tctx.fill();\r\n\t\tctx.stroke();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns true if the point is inside the rectangle\r\n\t * @param {object} point - The point to test\r\n\t * @param {object} area - The rectangle\r\n\t * @returns {boolean}\r\n\t * @private\r\n\t */\r\n\t_isPointInArea: function(point, area) {\r\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\r\n\r\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\r\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\r\n\t},\r\n\r\n\tclipArea: function(ctx, area) {\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\r\n\t\tctx.clip();\r\n\t},\r\n\r\n\tunclipArea: function(ctx) {\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\tlineTo: function(ctx, previous, target, flip) {\r\n\t\tvar stepped = target.steppedLine;\r\n\t\tif (stepped) {\r\n\t\t\tif (stepped === 'middle') {\r\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\r\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\r\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\r\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\r\n\t\t\t\tctx.lineTo(previous.x, target.y);\r\n\t\t\t} else {\r\n\t\t\t\tctx.lineTo(target.x, previous.y);\r\n\t\t\t}\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.tension) {\r\n\t\t\tctx.lineTo(target.x, target.y);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.bezierCurveTo(\r\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\r\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\r\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\r\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\r\n\t\t\ttarget.x,\r\n\t\t\ttarget.y);\r\n\t}\r\n};\r\n\r\nvar helpers_canvas = exports$1;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\r\n * @namespace Chart.helpers.clear\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.clear = exports$1.clear;\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\r\n * @namespace Chart.helpers.drawRoundedRectangle\r\n * @deprecated since version 2.7.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.drawRoundedRectangle = function(ctx) {\r\n\tctx.beginPath();\r\n\texports$1.roundedRect.apply(exports$1, arguments);\r\n};\n\nvar defaults = {\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_set: function(scope, values) {\r\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\r\n\t}\r\n};\r\n\r\n// TODO(v3): remove 'global' from namespace. all default are global and\r\n// there's inconsistency around which options are under 'global'\r\ndefaults._set('global', {\r\n\tdefaultColor: 'rgba(0,0,0,0.1)',\r\n\tdefaultFontColor: '#666',\r\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\r\n\tdefaultFontSize: 12,\r\n\tdefaultFontStyle: 'normal',\r\n\tdefaultLineHeight: 1.2,\r\n\tshowLines: true\r\n});\r\n\r\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\r\n\r\n/**\r\n * Converts the given font object into a CSS font string.\r\n * @param {object} font - A font object.\r\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\r\n * @private\r\n */\r\nfunction toFontString(font) {\r\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (font.style ? font.style + ' ' : '')\r\n\t\t+ (font.weight ? font.weight + ' ' : '')\r\n\t\t+ font.size + 'px '\r\n\t\t+ font.family;\r\n}\r\n\r\n/**\r\n * @alias Chart.helpers.options\r\n * @namespace\r\n */\r\nvar helpers_options = {\r\n\t/**\r\n\t * Converts the given line height `value` in pixels for a specific font `size`.\r\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\r\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\r\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\r\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoLineHeight: function(value, size) {\r\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\r\n\t\tif (!matches || matches[1] === 'normal') {\r\n\t\t\treturn size * 1.2;\r\n\t\t}\r\n\r\n\t\tvalue = +matches[2];\r\n\r\n\t\tswitch (matches[3]) {\r\n\t\tcase 'px':\r\n\t\t\treturn value;\r\n\t\tcase '%':\r\n\t\t\tvalue /= 100;\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn size * value;\r\n\t},\r\n\r\n\t/**\r\n\t * Converts the given value into a padding object with pre-computed width/height.\r\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\r\n\t * else, if and object, use defined properties and sets undefined ones to 0.\r\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\r\n\t * @since 2.7.0\r\n\t */\r\n\ttoPadding: function(value) {\r\n\t\tvar t, r, b, l;\r\n\r\n\t\tif (helpers_core.isObject(value)) {\r\n\t\t\tt = +value.top || 0;\r\n\t\t\tr = +value.right || 0;\r\n\t\t\tb = +value.bottom || 0;\r\n\t\t\tl = +value.left || 0;\r\n\t\t} else {\r\n\t\t\tt = r = b = l = +value || 0;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\ttop: t,\r\n\t\t\tright: r,\r\n\t\t\tbottom: b,\r\n\t\t\tleft: l,\r\n\t\t\theight: t + b,\r\n\t\t\twidth: l + r\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Parses font options and returns the font object.\r\n\t * @param {object} options - A object that contains font options to be parsed.\r\n\t * @return {object} The font object.\r\n\t * @todo Support font.* options and renamed to toFont().\r\n\t * @private\r\n\t */\r\n\t_parseFont: function(options) {\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\r\n\t\tvar font = {\r\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\r\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\r\n\t\t\tsize: size,\r\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\r\n\t\t\tweight: null,\r\n\t\t\tstring: ''\r\n\t\t};\r\n\r\n\t\tfont.string = toFontString(font);\r\n\t\treturn font;\r\n\t},\r\n\r\n\t/**\r\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\r\n\t * @param {Array} inputs - An array of values, falling back to the last value.\r\n\t * @param {object} [context] - If defined and the current value is a function, the value\r\n\t * is called with `context` as first argument and the result becomes the new input.\r\n\t * @param {number} [index] - If defined and the current value is an array, the value\r\n\t * at `index` become the new input.\r\n\t * @param {object} [info] - object to return information about resolution in\r\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\r\n\t * @since 2.7.0\r\n\t */\r\n\tresolve: function(inputs, context, index, info) {\r\n\t\tvar cacheable = true;\r\n\t\tvar i, ilen, value;\r\n\r\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\r\n\t\t\tvalue = inputs[i];\r\n\t\t\tif (value === undefined) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tif (context !== undefined && typeof value === 'function') {\r\n\t\t\t\tvalue = value(context);\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\r\n\t\t\t\tvalue = value[index];\r\n\t\t\t\tcacheable = false;\r\n\t\t\t}\r\n\t\t\tif (value !== undefined) {\r\n\t\t\t\tif (info && !cacheable) {\r\n\t\t\t\t\tinfo.cacheable = false;\r\n\t\t\t\t}\r\n\t\t\t\treturn value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\n/**\r\n * @alias Chart.helpers.math\r\n * @namespace\r\n */\r\nvar exports$2 = {\r\n\t/**\r\n\t * Returns an array of factors sorted from 1 to sqrt(value)\r\n\t * @private\r\n\t */\r\n\t_factorize: function(value) {\r\n\t\tvar result = [];\r\n\t\tvar sqrt = Math.sqrt(value);\r\n\t\tvar i;\r\n\r\n\t\tfor (i = 1; i < sqrt; i++) {\r\n\t\t\tif (value % i === 0) {\r\n\t\t\t\tresult.push(i);\r\n\t\t\t\tresult.push(value / i);\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\r\n\t\t\tresult.push(sqrt);\r\n\t\t}\r\n\r\n\t\tresult.sort(function(a, b) {\r\n\t\t\treturn a - b;\r\n\t\t}).pop();\r\n\t\treturn result;\r\n\t},\r\n\r\n\tlog10: Math.log10 || function(x) {\r\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\r\n\t\t// Check for whole powers of 10,\r\n\t\t// which due to floating point rounding error should be corrected.\r\n\t\tvar powerOf10 = Math.round(exponent);\r\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\r\n\r\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\r\n\t}\r\n};\r\n\r\nvar helpers_math = exports$2;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\r\n * @namespace Chart.helpers.log10\r\n * @deprecated since version 2.9.0\r\n * @todo remove at version 3\r\n * @private\r\n */\r\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn rectX + rectX + width - x;\r\n\t\t},\r\n\t\tsetWidth: function(w) {\r\n\t\t\twidth = w;\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\tif (align === 'center') {\r\n\t\t\t\treturn align;\r\n\t\t\t}\r\n\t\t\treturn align === 'right' ? 'left' : 'right';\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x - value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, itemWidth) {\r\n\t\t\treturn x - itemWidth;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getLtrAdapter = function() {\r\n\treturn {\r\n\t\tx: function(x) {\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\r\n\t\t},\r\n\t\ttextAlign: function(align) {\r\n\t\t\treturn align;\r\n\t\t},\r\n\t\txPlus: function(x, value) {\r\n\t\t\treturn x + value;\r\n\t\t},\r\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\r\n\t\t\treturn x;\r\n\t\t},\r\n\t};\r\n};\r\n\r\nvar getAdapter = function(rtl, rectX, width) {\r\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\r\n};\r\n\r\nvar overrideTextDirection = function(ctx, direction) {\r\n\tvar style, original;\r\n\tif (direction === 'ltr' || direction === 'rtl') {\r\n\t\tstyle = ctx.canvas.style;\r\n\t\toriginal = [\r\n\t\t\tstyle.getPropertyValue('direction'),\r\n\t\t\tstyle.getPropertyPriority('direction'),\r\n\t\t];\r\n\r\n\t\tstyle.setProperty('direction', direction, 'important');\r\n\t\tctx.prevTextDirection = original;\r\n\t}\r\n};\r\n\r\nvar restoreTextDirection = function(ctx) {\r\n\tvar original = ctx.prevTextDirection;\r\n\tif (original !== undefined) {\r\n\t\tdelete ctx.prevTextDirection;\r\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\r\n\t}\r\n};\r\n\r\nvar helpers_rtl = {\r\n\tgetRtlAdapter: getAdapter,\r\n\toverrideTextDirection: overrideTextDirection,\r\n\trestoreTextDirection: restoreTextDirection,\r\n};\n\nvar helpers$1 = helpers_core;\r\nvar easing = helpers_easing;\r\nvar canvas = helpers_canvas;\r\nvar options = helpers_options;\r\nvar math = helpers_math;\r\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\r\n\tvar keys = Object.keys(model);\r\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\r\n\r\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\tkey = keys[i];\r\n\r\n\t\ttarget = model[key];\r\n\r\n\t\t// if a value is added to the model after pivot() has been called, the view\r\n\t\t// doesn't contain it, so let's initialize the view to the target value.\r\n\t\tif (!view.hasOwnProperty(key)) {\r\n\t\t\tview[key] = target;\r\n\t\t}\r\n\r\n\t\tactual = view[key];\r\n\r\n\t\tif (actual === target || key[0] === '_') {\r\n\t\t\tcontinue;\r\n\t\t}\r\n\r\n\t\tif (!start.hasOwnProperty(key)) {\r\n\t\t\tstart[key] = actual;\r\n\t\t}\r\n\r\n\t\torigin = start[key];\r\n\r\n\t\ttype = typeof target;\r\n\r\n\t\tif (type === typeof origin) {\r\n\t\t\tif (type === 'string') {\r\n\t\t\t\tc0 = chartjsColor(origin);\r\n\t\t\t\tif (c0.valid) {\r\n\t\t\t\t\tc1 = chartjsColor(target);\r\n\t\t\t\t\tif (c1.valid) {\r\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\r\n\t\t\t\tview[key] = origin + (target - origin) * ease;\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tview[key] = target;\r\n\t}\r\n}\r\n\r\nvar Element = function(configuration) {\r\n\thelpers$1.extend(this, configuration);\r\n\tthis.initialize.apply(this, arguments);\r\n};\r\n\r\nhelpers$1.extend(Element.prototype, {\r\n\t_type: undefined,\r\n\r\n\tinitialize: function() {\r\n\t\tthis.hidden = false;\r\n\t},\r\n\r\n\tpivot: function() {\r\n\t\tvar me = this;\r\n\t\tif (!me._view) {\r\n\t\t\tme._view = helpers$1.extend({}, me._model);\r\n\t\t}\r\n\t\tme._start = {};\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttransition: function(ease) {\r\n\t\tvar me = this;\r\n\t\tvar model = me._model;\r\n\t\tvar start = me._start;\r\n\t\tvar view = me._view;\r\n\r\n\t\t// No animation -> No Transition\r\n\t\tif (!model || ease === 1) {\r\n\t\t\tme._view = helpers$1.extend({}, model);\r\n\t\t\tme._start = null;\r\n\t\t\treturn me;\r\n\t\t}\r\n\r\n\t\tif (!view) {\r\n\t\t\tview = me._view = {};\r\n\t\t}\r\n\r\n\t\tif (!start) {\r\n\t\t\tstart = me._start = {};\r\n\t\t}\r\n\r\n\t\tinterpolate(start, view, model, ease);\r\n\r\n\t\treturn me;\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\treturn {\r\n\t\t\tx: this._model.x,\r\n\t\t\ty: this._model.y\r\n\t\t};\r\n\t},\r\n\r\n\thasValue: function() {\r\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\r\n\t}\r\n});\r\n\r\nElement.extend = helpers$1.inherits;\r\n\r\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\r\n\tchart: null, // the animation associated chart instance\r\n\tcurrentStep: 0, // the current animation step\r\n\tnumSteps: 60, // default number of steps\r\n\teasing: '', // the easing to use for this animation\r\n\trender: null, // render function used by the animation service\r\n\r\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\r\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\r\n});\r\n\r\nvar core_animation = exports$3;\r\n\r\n// DEPRECATIONS\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation instead\r\n * @prop Chart.Animation#animationObject\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'animationObject', {\r\n\tget: function() {\r\n\t\treturn this;\r\n\t}\r\n});\r\n\r\n/**\r\n * Provided for backward compatibility, use Chart.Animation#chart instead\r\n * @prop Chart.Animation#chartInstance\r\n * @deprecated since version 2.6.0\r\n * @todo remove at version 3\r\n */\r\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\r\n\tget: function() {\r\n\t\treturn this.chart;\r\n\t},\r\n\tset: function(value) {\r\n\t\tthis.chart = value;\r\n\t}\r\n});\n\ncore_defaults._set('global', {\r\n\tanimation: {\r\n\t\tduration: 1000,\r\n\t\teasing: 'easeOutQuart',\r\n\t\tonProgress: helpers$1.noop,\r\n\t\tonComplete: helpers$1.noop\r\n\t}\r\n});\r\n\r\nvar core_animations = {\r\n\tanimations: [],\r\n\trequest: null,\r\n\r\n\t/**\r\n\t * @param {Chart} chart - The chart to animate.\r\n\t * @param {Chart.Animation} animation - The animation that we will animate.\r\n\t * @param {number} duration - The animation duration in ms.\r\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\r\n\t */\r\n\taddAnimation: function(chart, animation, duration, lazy) {\r\n\t\tvar animations = this.animations;\r\n\t\tvar i, ilen;\r\n\r\n\t\tanimation.chart = chart;\r\n\t\tanimation.startTime = Date.now();\r\n\t\tanimation.duration = duration;\r\n\r\n\t\tif (!lazy) {\r\n\t\t\tchart.animating = true;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\r\n\t\t\tif (animations[i].chart === chart) {\r\n\t\t\t\tanimations[i] = animation;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tanimations.push(animation);\r\n\r\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\r\n\t\tif (animations.length === 1) {\r\n\t\t\tthis.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\tcancelAnimation: function(chart) {\r\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\r\n\t\t\treturn animation.chart === chart;\r\n\t\t});\r\n\r\n\t\tif (index !== -1) {\r\n\t\t\tthis.animations.splice(index, 1);\r\n\t\t\tchart.animating = false;\r\n\t\t}\r\n\t},\r\n\r\n\trequestAnimationFrame: function() {\r\n\t\tvar me = this;\r\n\t\tif (me.request === null) {\r\n\t\t\t// Skip animation frame requests until the active one is executed.\r\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\r\n\t\t\t// and 'mouseout' events will trigger multiple renders.\r\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tme.request = null;\r\n\t\t\t\tme.startDigest();\r\n\t\t\t});\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tstartDigest: function() {\r\n\t\tvar me = this;\r\n\r\n\t\tme.advance();\r\n\r\n\t\t// Do we have more stuff to animate?\r\n\t\tif (me.animations.length > 0) {\r\n\t\t\tme.requestAnimationFrame();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tadvance: function() {\r\n\t\tvar animations = this.animations;\r\n\t\tvar animation, chart, numSteps, nextStep;\r\n\t\tvar i = 0;\r\n\r\n\t\t// 1 animation per chart, so we are looping charts here\r\n\t\twhile (i < animations.length) {\r\n\t\t\tanimation = animations[i];\r\n\t\t\tchart = animation.chart;\r\n\t\t\tnumSteps = animation.numSteps;\r\n\r\n\t\t\t// Make sure that currentStep starts at 1\r\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\r\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\r\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\r\n\r\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\r\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\r\n\r\n\t\t\tif (animation.currentStep >= numSteps) {\r\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\r\n\t\t\t\tchart.animating = false;\r\n\t\t\t\tanimations.splice(i, 1);\r\n\t\t\t} else {\r\n\t\t\t\t++i;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n};\n\nvar resolve = helpers$1.options.resolve;\r\n\r\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\r\n\r\n/**\r\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\r\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\r\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\r\n */\r\nfunction listenArrayEvents(array, listener) {\r\n\tif (array._chartjs) {\r\n\t\tarray._chartjs.listeners.push(listener);\r\n\t\treturn;\r\n\t}\r\n\r\n\tObject.defineProperty(array, '_chartjs', {\r\n\t\tconfigurable: true,\r\n\t\tenumerable: false,\r\n\t\tvalue: {\r\n\t\t\tlisteners: [listener]\r\n\t\t}\r\n\t});\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\r\n\t\tvar base = array[key];\r\n\r\n\t\tObject.defineProperty(array, key, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: function() {\r\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\r\n\t\t\t\tvar res = base.apply(this, args);\r\n\r\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\r\n\t\t\t\t\tif (typeof object[method] === 'function') {\r\n\t\t\t\t\t\tobject[method].apply(object, args);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn res;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n}\r\n\r\n/**\r\n * Removes the given array event listener and cleanup extra attached properties (such as\r\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\r\n */\r\nfunction unlistenArrayEvents(array, listener) {\r\n\tvar stub = array._chartjs;\r\n\tif (!stub) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvar listeners = stub.listeners;\r\n\tvar index = listeners.indexOf(listener);\r\n\tif (index !== -1) {\r\n\t\tlisteners.splice(index, 1);\r\n\t}\r\n\r\n\tif (listeners.length > 0) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tarrayEvents.forEach(function(key) {\r\n\t\tdelete array[key];\r\n\t});\r\n\r\n\tdelete array._chartjs;\r\n}\r\n\r\n// Base class for all dataset controllers (line, bar, etc)\r\nvar DatasetController = function(chart, datasetIndex) {\r\n\tthis.initialize(chart, datasetIndex);\r\n};\r\n\r\nhelpers$1.extend(DatasetController.prototype, {\r\n\r\n\t/**\r\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdatasetElementType: null,\r\n\r\n\t/**\r\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\r\n\t * @type {Chart.core.element}\r\n\t */\r\n\tdataElementType: null,\r\n\r\n\t/**\r\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth'\r\n\t],\r\n\r\n\t/**\r\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\r\n\t * A derived controller may override this to resolve controller-specific options.\r\n\t * The keys defined here are for backward compatibility for legend styles.\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'pointStyle'\r\n\t],\r\n\r\n\tinitialize: function(chart, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tme.chart = chart;\r\n\t\tme.index = datasetIndex;\r\n\t\tme.linkScales();\r\n\t\tme.addElements();\r\n\t\tme._type = me.getMeta().type;\r\n\t},\r\n\r\n\tupdateIndex: function(datasetIndex) {\r\n\t\tthis.index = datasetIndex;\r\n\t},\r\n\r\n\tlinkScales: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar chart = me.chart;\r\n\t\tvar scales = chart.scales;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scalesOpts = chart.options.scales;\r\n\r\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\r\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\r\n\t\t}\r\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\r\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\r\n\t\t}\r\n\t},\r\n\r\n\tgetDataset: function() {\r\n\t\treturn this.chart.data.datasets[this.index];\r\n\t},\r\n\r\n\tgetMeta: function() {\r\n\t\treturn this.chart.getDatasetMeta(this.index);\r\n\t},\r\n\r\n\tgetScaleForId: function(scaleID) {\r\n\t\treturn this.chart.scales[scaleID];\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScale: function() {\r\n\t\treturn this.getScaleForId(this._getValueScaleId());\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScale: function() {\r\n\t\treturn this.getScaleForId(this._getIndexScaleId());\r\n\t},\r\n\r\n\treset: function() {\r\n\t\tthis._update(true);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tdestroy: function() {\r\n\t\tif (this._data) {\r\n\t\t\tunlistenArrayEvents(this._data, this);\r\n\t\t}\r\n\t},\r\n\r\n\tcreateMetaDataset: function() {\r\n\t\tvar me = this;\r\n\t\tvar type = me.datasetElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index\r\n\t\t});\r\n\t},\r\n\r\n\tcreateMetaData: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar type = me.dataElementType;\r\n\t\treturn type && new type({\r\n\t\t\t_chart: me.chart,\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index\r\n\t\t});\r\n\t},\r\n\r\n\taddElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data || [];\r\n\t\tvar metaData = meta.data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\r\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\r\n\t\t}\r\n\r\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\r\n\t},\r\n\r\n\taddElementAndReset: function(index) {\r\n\t\tvar element = this.createMetaData(index);\r\n\t\tthis.getMeta().data.splice(index, 0, element);\r\n\t\tthis.updateElement(element, index, true);\r\n\t},\r\n\r\n\tbuildOrUpdateElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar data = dataset.data || (dataset.data = []);\r\n\r\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\r\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\r\n\t\t// the internal meta data accordingly.\r\n\t\tif (me._data !== data) {\r\n\t\t\tif (me._data) {\r\n\t\t\t\t// This case happens when the user replaced the data array instance.\r\n\t\t\t\tunlistenArrayEvents(me._data, me);\r\n\t\t\t}\r\n\r\n\t\t\tif (data && Object.isExtensible(data)) {\r\n\t\t\t\tlistenArrayEvents(data, me);\r\n\t\t\t}\r\n\t\t\tme._data = data;\r\n\t\t}\r\n\r\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\r\n\t\t// any updates and so make sure that we handle number of datapoints changing.\r\n\t\tme.resyncElements();\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the merged user-supplied and default dataset-level options\r\n\t * @private\r\n\t */\r\n\t_configure: function() {\r\n\t\tvar me = this;\r\n\t\tme._config = helpers$1.merge(Object.create(null), [\r\n\t\t\tme.chart.options.datasets[me._type],\r\n\t\t\tme.getDataset(),\r\n\t\t], {\r\n\t\t\tmerger: function(key, target, source) {\r\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\r\n\t\t\t\t\thelpers$1._merger(key, target, source);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t},\r\n\r\n\t_update: function(reset) {\r\n\t\tvar me = this;\r\n\t\tme._configure();\r\n\t\tme._cachedDataOpts = null;\r\n\t\tme.update(reset);\r\n\t},\r\n\r\n\tupdate: helpers$1.noop,\r\n\r\n\ttransition: function(easingValue) {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].transition(easingValue);\r\n\t\t}\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.transition(easingValue);\r\n\t\t}\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar elements = meta.data || [];\r\n\t\tvar ilen = elements.length;\r\n\t\tvar i = 0;\r\n\r\n\t\tif (meta.dataset) {\r\n\t\t\tmeta.dataset.draw();\r\n\t\t}\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\telements[i].draw();\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Returns a set of predefined style properties that should be used to represent the dataset\r\n\t * or the data if the index is specified\r\n\t * @param {number} index - data index\r\n\t * @return {IStyleInterface} style object\r\n\t */\r\n\tgetStyle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = meta.dataset;\r\n\t\tvar style;\r\n\r\n\t\tme._configure();\r\n\t\tif (dataset && index === undefined) {\r\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\r\n\t\t} else {\r\n\t\t\tindex = index || 0;\r\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\r\n\t\t}\r\n\r\n\t\tif (style.fill === false || style.fill === null) {\r\n\t\t\tstyle.backgroundColor = style.borderColor;\r\n\t\t}\r\n\r\n\t\treturn style;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element, hover) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._datasetElementOptions;\r\n\t\tvar values = {};\r\n\t\tvar i, ilen, key, readKey;\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index,\r\n\t\t\thover: hover\r\n\t\t};\r\n\r\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\tkey = elementOptions[i];\r\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\r\n\t\t\tvalues[key] = resolve([\r\n\t\t\t\tcustom[readKey],\r\n\t\t\t\tdatasetOpts[readKey],\r\n\t\t\t\toptions[readKey]\r\n\t\t\t], context);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(element, index) {\r\n\t\tvar me = this;\r\n\t\tvar custom = element && element.custom;\r\n\t\tvar cached = me._cachedDataOpts;\r\n\t\tif (cached && !custom) {\r\n\t\t\treturn cached;\r\n\t\t}\r\n\t\tvar chart = me.chart;\r\n\t\tvar datasetOpts = me._config;\r\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\r\n\t\tvar elementOptions = me._dataElementOptions;\r\n\t\tvar values = {};\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: me.getDataset(),\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\r\n\t\tvar info = {cacheable: !custom};\r\n\r\n\t\tvar keys, i, ilen, key;\r\n\r\n\t\tcustom = custom || {};\r\n\r\n\t\tif (helpers$1.isArray(elementOptions)) {\r\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\r\n\t\t\t\tkey = elementOptions[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tkeys = Object.keys(elementOptions);\r\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\t\tkey = keys[i];\r\n\t\t\t\tvalues[key] = resolve([\r\n\t\t\t\t\tcustom[key],\r\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\r\n\t\t\t\t\tdatasetOpts[key],\r\n\t\t\t\t\toptions[key]\r\n\t\t\t\t], context, index, info);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (info.cacheable) {\r\n\t\t\tme._cachedDataOpts = Object.freeze(values);\r\n\t\t}\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tremoveHoverStyle: function(element) {\r\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\r\n\t\tdelete element.$previousStyle;\r\n\t},\r\n\r\n\tsetHoverStyle: function(element) {\r\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\r\n\t\tvar index = element._index;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar model = element._model;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\telement.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\r\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\r\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_removeDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\r\n\t\tif (element) {\r\n\t\t\tthis.removeHoverStyle(element);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_setDatasetHoverStyle: function() {\r\n\t\tvar element = this.getMeta().dataset;\r\n\t\tvar prev = {};\r\n\t\tvar i, ilen, key, keys, hoverOptions, model;\r\n\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tmodel = element._model;\r\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\r\n\r\n\t\tkeys = Object.keys(hoverOptions);\r\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\r\n\t\t\tkey = keys[i];\r\n\t\t\tprev[key] = model[key];\r\n\t\t\tmodel[key] = hoverOptions[key];\r\n\t\t}\r\n\r\n\t\telement.$previousStyle = prev;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tresyncElements: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar data = me.getDataset().data;\r\n\t\tvar numMeta = meta.data.length;\r\n\t\tvar numData = data.length;\r\n\r\n\t\tif (numData < numMeta) {\r\n\t\t\tmeta.data.splice(numData, numMeta - numData);\r\n\t\t} else if (numData > numMeta) {\r\n\t\t\tme.insertElements(numMeta, numData - numMeta);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tinsertElements: function(start, count) {\r\n\t\tfor (var i = 0; i < count; ++i) {\r\n\t\t\tthis.addElementAndReset(start + i);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPush: function() {\r\n\t\tvar count = arguments.length;\r\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataPop: function() {\r\n\t\tthis.getMeta().data.pop();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataShift: function() {\r\n\t\tthis.getMeta().data.shift();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataSplice: function(start, count) {\r\n\t\tthis.getMeta().data.splice(start, count);\r\n\t\tthis.insertElements(start, arguments.length - 2);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tonDataUnshift: function() {\r\n\t\tthis.insertElements(0, arguments.length);\r\n\t}\r\n});\r\n\r\nDatasetController.extend = helpers$1.inherits;\r\n\r\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tarc: {\r\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\r\n\t\t\tborderColor: '#fff',\r\n\t\t\tborderWidth: 2,\r\n\t\t\tborderAlign: 'center'\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction clipArc(ctx, arc) {\r\n\tvar startAngle = arc.startAngle;\r\n\tvar endAngle = arc.endAngle;\r\n\tvar pixelMargin = arc.pixelMargin;\r\n\tvar angleMargin = pixelMargin / arc.outerRadius;\r\n\tvar x = arc.x;\r\n\tvar y = arc.y;\r\n\r\n\t// Draw an inner border by cliping the arc and drawing a double-width border\r\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\r\n\tctx.beginPath();\r\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\r\n\tif (arc.innerRadius > pixelMargin) {\r\n\t\tangleMargin = pixelMargin / arc.innerRadius;\r\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\r\n\t} else {\r\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\r\n\t}\r\n\tctx.closePath();\r\n\tctx.clip();\r\n}\r\n\r\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\r\n\tvar endAngle = arc.endAngle;\r\n\tvar i;\r\n\r\n\tif (inner) {\r\n\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\tclipArc(ctx, arc);\r\n\t\tarc.endAngle = endAngle;\r\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\r\n\t\t\tarc.endAngle += TAU;\r\n\t\t\tarc.fullCircles--;\r\n\t\t}\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\r\n\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\tctx.stroke();\r\n\t}\r\n}\r\n\r\nfunction drawBorder(ctx, vm, arc) {\r\n\tvar inner = vm.borderAlign === 'inner';\r\n\r\n\tif (inner) {\r\n\t\tctx.lineWidth = vm.borderWidth * 2;\r\n\t\tctx.lineJoin = 'round';\r\n\t} else {\r\n\t\tctx.lineWidth = vm.borderWidth;\r\n\t\tctx.lineJoin = 'bevel';\r\n\t}\r\n\r\n\tif (arc.fullCircles) {\r\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\r\n\t}\r\n\r\n\tif (inner) {\r\n\t\tclipArc(ctx, arc);\r\n\t}\r\n\r\n\tctx.beginPath();\r\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\r\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\tctx.closePath();\r\n\tctx.stroke();\r\n}\r\n\r\nvar element_arc = core_element.extend({\r\n\t_type: 'arc',\r\n\r\n\tinLabelRange: function(mouseX) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tinRange: function(chartX, chartY) {\r\n\t\tvar vm = this._view;\r\n\r\n\t\tif (vm) {\r\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\r\n\t\t\tvar angle = pointRelativePosition.angle;\r\n\t\t\tvar distance = pointRelativePosition.distance;\r\n\r\n\t\t\t// Sanitise angle range\r\n\t\t\tvar startAngle = vm.startAngle;\r\n\t\t\tvar endAngle = vm.endAngle;\r\n\t\t\twhile (endAngle < startAngle) {\r\n\t\t\t\tendAngle += TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle > endAngle) {\r\n\t\t\t\tangle -= TAU;\r\n\t\t\t}\r\n\t\t\twhile (angle < startAngle) {\r\n\t\t\t\tangle += TAU;\r\n\t\t\t}\r\n\r\n\t\t\t// Check if within the range of the open/close angle\r\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\r\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\r\n\r\n\t\t\treturn (betweenAngles && withinRadius);\r\n\t\t}\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\r\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\r\n\t\treturn {\r\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\r\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\r\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\r\n\r\n\t\treturn {\r\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\r\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\r\n\t\tvar arc = {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tinnerRadius: vm.innerRadius,\r\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\r\n\t\t\tpixelMargin: pixelMargin,\r\n\t\t\tstartAngle: vm.startAngle,\r\n\t\t\tendAngle: vm.endAngle,\r\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\r\n\t\t};\r\n\t\tvar i;\r\n\r\n\t\tctx.save();\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.strokeStyle = vm.borderColor;\r\n\r\n\t\tif (arc.fullCircles) {\r\n\t\t\tarc.endAngle = arc.startAngle + TAU;\r\n\t\t\tctx.beginPath();\r\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\t\tctx.closePath();\r\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\r\n\t\t\t\tctx.fill();\r\n\t\t\t}\r\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\r\n\t\t}\r\n\r\n\t\tctx.beginPath();\r\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\r\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\r\n\t\tctx.closePath();\r\n\t\tctx.fill();\r\n\r\n\t\tif (vm.borderWidth) {\r\n\t\t\tdrawBorder(ctx, vm, arc);\r\n\t\t}\r\n\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tline: {\r\n\t\t\ttension: 0.4,\r\n\t\t\tbackgroundColor: defaultColor,\r\n\t\t\tborderWidth: 3,\r\n\t\t\tborderColor: defaultColor,\r\n\t\t\tborderCapStyle: 'butt',\r\n\t\t\tborderDash: [],\r\n\t\t\tborderDashOffset: 0.0,\r\n\t\t\tborderJoinStyle: 'miter',\r\n\t\t\tcapBezierPoints: true,\r\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar element_line = core_element.extend({\r\n\t_type: 'line',\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar vm = me._view;\r\n\t\tvar ctx = me._chart.ctx;\r\n\t\tvar spanGaps = vm.spanGaps;\r\n\t\tvar points = me._children.slice(); // clone array\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\r\n\t\tvar lastDrawnIndex = -1;\r\n\t\tvar closePath = me._loop;\r\n\t\tvar index, previous, currentVM;\r\n\r\n\t\tif (!points.length) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (me._loop) {\r\n\t\t\tfor (index = 0; index < points.length; ++index) {\r\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\r\n\t\t\t\t// If the line has an open path, shift the point array\r\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\r\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\r\n\t\t\t\t\tclosePath = spanGaps;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// If the line has a close path, add the first point again\r\n\t\t\tif (closePath) {\r\n\t\t\t\tpoints.push(points[0]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\r\n\t\t// Stroke Line Options\r\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\r\n\r\n\t\t// IE 9 and 10 do not support line dash\r\n\t\tif (ctx.setLineDash) {\r\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\r\n\t\t}\r\n\r\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\r\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\r\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\r\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\r\n\r\n\t\t// Stroke Line\r\n\t\tctx.beginPath();\r\n\r\n\t\t// First point moves to it's starting position no matter what\r\n\t\tcurrentVM = points[0]._view;\r\n\t\tif (!currentVM.skip) {\r\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\tlastDrawnIndex = 0;\r\n\t\t}\r\n\r\n\t\tfor (index = 1; index < points.length; ++index) {\r\n\t\t\tcurrentVM = points[index]._view;\r\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\r\n\r\n\t\t\tif (!currentVM.skip) {\r\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\r\n\t\t\t\t\t// There was a gap and this is the first point after the gap\r\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Line to next point\r\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\r\n\t\t\t\t}\r\n\t\t\t\tlastDrawnIndex = index;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (closePath) {\r\n\t\t\tctx.closePath();\r\n\t\t}\r\n\r\n\t\tctx.stroke();\r\n\t\tctx.restore();\r\n\t}\r\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\r\n\r\nvar defaultColor$1 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\tpoint: {\r\n\t\t\tradius: 3,\r\n\t\t\tpointStyle: 'circle',\r\n\t\t\tbackgroundColor: defaultColor$1,\r\n\t\t\tborderColor: defaultColor$1,\r\n\t\t\tborderWidth: 1,\r\n\t\t\t// Hover\r\n\t\t\thitRadius: 1,\r\n\t\t\thoverRadius: 4,\r\n\t\t\thoverBorderWidth: 1\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction xRange(mouseX) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nfunction yRange(mouseY) {\r\n\tvar vm = this._view;\r\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\r\n}\r\n\r\nvar element_point = core_element.extend({\r\n\t_type: 'point',\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\r\n\t},\r\n\r\n\tinLabelRange: xRange,\r\n\tinXRange: xRange,\r\n\tinYRange: yRange,\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y,\r\n\t\t\tpadding: vm.radius + vm.borderWidth\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function(chartArea) {\r\n\t\tvar vm = this._view;\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar pointStyle = vm.pointStyle;\r\n\t\tvar rotation = vm.rotation;\r\n\t\tvar radius = vm.radius;\r\n\t\tvar x = vm.x;\r\n\t\tvar y = vm.y;\r\n\t\tvar globalDefaults = core_defaults.global;\r\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\r\n\r\n\t\tif (vm.skip) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Clipping for Points.\r\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\r\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\r\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\r\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\r\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\r\n\t\t}\r\n\t}\r\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\r\n\r\ncore_defaults._set('global', {\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tbackgroundColor: defaultColor$2,\r\n\t\t\tborderColor: defaultColor$2,\r\n\t\t\tborderSkipped: 'bottom',\r\n\t\t\tborderWidth: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\nfunction isVertical(vm) {\r\n\treturn vm && vm.width !== undefined;\r\n}\r\n\r\n/**\r\n * Helper function to get the bounds of the bar regardless of the orientation\r\n * @param bar {Chart.Element.Rectangle} the bar\r\n * @return {Bounds} bounds of the bar\r\n * @private\r\n */\r\nfunction getBarBounds(vm) {\r\n\tvar x1, x2, y1, y2, half;\r\n\r\n\tif (isVertical(vm)) {\r\n\t\thalf = vm.width / 2;\r\n\t\tx1 = vm.x - half;\r\n\t\tx2 = vm.x + half;\r\n\t\ty1 = Math.min(vm.y, vm.base);\r\n\t\ty2 = Math.max(vm.y, vm.base);\r\n\t} else {\r\n\t\thalf = vm.height / 2;\r\n\t\tx1 = Math.min(vm.x, vm.base);\r\n\t\tx2 = Math.max(vm.x, vm.base);\r\n\t\ty1 = vm.y - half;\r\n\t\ty2 = vm.y + half;\r\n\t}\r\n\r\n\treturn {\r\n\t\tleft: x1,\r\n\t\ttop: y1,\r\n\t\tright: x2,\r\n\t\tbottom: y2\r\n\t};\r\n}\r\n\r\nfunction swap(orig, v1, v2) {\r\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\r\n}\r\n\r\nfunction parseBorderSkipped(vm) {\r\n\tvar edge = vm.borderSkipped;\r\n\tvar res = {};\r\n\r\n\tif (!edge) {\r\n\t\treturn res;\r\n\t}\r\n\r\n\tif (vm.horizontal) {\r\n\t\tif (vm.base > vm.x) {\r\n\t\t\tedge = swap(edge, 'left', 'right');\r\n\t\t}\r\n\t} else if (vm.base < vm.y) {\r\n\t\tedge = swap(edge, 'bottom', 'top');\r\n\t}\r\n\r\n\tres[edge] = true;\r\n\treturn res;\r\n}\r\n\r\nfunction parseBorderWidth(vm, maxW, maxH) {\r\n\tvar value = vm.borderWidth;\r\n\tvar skip = parseBorderSkipped(vm);\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = +value.top || 0;\r\n\t\tr = +value.right || 0;\r\n\t\tb = +value.bottom || 0;\r\n\t\tl = +value.left || 0;\r\n\t} else {\r\n\t\tt = r = b = l = +value || 0;\r\n\t}\r\n\r\n\treturn {\r\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\r\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\r\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\r\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\r\n\t};\r\n}\r\n\r\nfunction boundingRects(vm) {\r\n\tvar bounds = getBarBounds(vm);\r\n\tvar width = bounds.right - bounds.left;\r\n\tvar height = bounds.bottom - bounds.top;\r\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\r\n\r\n\treturn {\r\n\t\touter: {\r\n\t\t\tx: bounds.left,\r\n\t\t\ty: bounds.top,\r\n\t\t\tw: width,\r\n\t\t\th: height\r\n\t\t},\r\n\t\tinner: {\r\n\t\t\tx: bounds.left + border.l,\r\n\t\t\ty: bounds.top + border.t,\r\n\t\t\tw: width - border.l - border.r,\r\n\t\t\th: height - border.t - border.b\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction inRange(vm, x, y) {\r\n\tvar skipX = x === null;\r\n\tvar skipY = y === null;\r\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\r\n\r\n\treturn bounds\r\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\r\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\r\n}\r\n\r\nvar element_rectangle = core_element.extend({\r\n\t_type: 'rectangle',\r\n\r\n\tdraw: function() {\r\n\t\tvar ctx = this._chart.ctx;\r\n\t\tvar vm = this._view;\r\n\t\tvar rects = boundingRects(vm);\r\n\t\tvar outer = rects.outer;\r\n\t\tvar inner = rects.inner;\r\n\r\n\t\tctx.fillStyle = vm.backgroundColor;\r\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\r\n\r\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tctx.save();\r\n\t\tctx.beginPath();\r\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\r\n\t\tctx.clip();\r\n\t\tctx.fillStyle = vm.borderColor;\r\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\r\n\t\tctx.fill('evenodd');\r\n\t\tctx.restore();\r\n\t},\r\n\r\n\theight: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn vm.base - vm.y;\r\n\t},\r\n\r\n\tinRange: function(mouseX, mouseY) {\r\n\t\treturn inRange(this._view, mouseX, mouseY);\r\n\t},\r\n\r\n\tinLabelRange: function(mouseX, mouseY) {\r\n\t\tvar vm = this._view;\r\n\t\treturn isVertical(vm)\r\n\t\t\t? inRange(vm, mouseX, null)\r\n\t\t\t: inRange(vm, null, mouseY);\r\n\t},\r\n\r\n\tinXRange: function(mouseX) {\r\n\t\treturn inRange(this._view, mouseX, null);\r\n\t},\r\n\r\n\tinYRange: function(mouseY) {\r\n\t\treturn inRange(this._view, null, mouseY);\r\n\t},\r\n\r\n\tgetCenterPoint: function() {\r\n\t\tvar vm = this._view;\r\n\t\tvar x, y;\r\n\t\tif (isVertical(vm)) {\r\n\t\t\tx = vm.x;\r\n\t\t\ty = (vm.y + vm.base) / 2;\r\n\t\t} else {\r\n\t\t\tx = (vm.x + vm.base) / 2;\r\n\t\t\ty = vm.y;\r\n\t\t}\r\n\r\n\t\treturn {x: x, y: y};\r\n\t},\r\n\r\n\tgetArea: function() {\r\n\t\tvar vm = this._view;\r\n\r\n\t\treturn isVertical(vm)\r\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\r\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\r\n\t},\r\n\r\n\ttooltipPosition: function() {\r\n\t\tvar vm = this._view;\r\n\t\treturn {\r\n\t\t\tx: vm.x,\r\n\t\t\ty: vm.y\r\n\t\t};\r\n\t}\r\n});\n\nvar elements = {};\r\nvar Arc = element_arc;\r\nvar Line = element_line;\r\nvar Point = element_point;\r\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\r\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('bar', {\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tbar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\r\n * @private\r\n */\r\nfunction computeMinSampleSize(scale, pixels) {\r\n\tvar min = scale._length;\r\n\tvar prev, curr, i, ilen;\r\n\r\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\r\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\r\n\t}\r\n\r\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\r\n\t\tcurr = scale.getPixelForTick(i);\r\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\r\n\t\tprev = curr;\r\n\t}\r\n\r\n\treturn min;\r\n}\r\n\r\n/**\r\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\r\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\r\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\r\n * @private\r\n */\r\nfunction computeFitCategoryTraits(index, ruler, options) {\r\n\tvar thickness = options.barThickness;\r\n\tvar count = ruler.stackCount;\r\n\tvar curr = ruler.pixels[index];\r\n\tvar min = helpers$1.isNullOrUndef(thickness)\r\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\r\n\t\t: -1;\r\n\tvar size, ratio;\r\n\r\n\tif (helpers$1.isNullOrUndef(thickness)) {\r\n\t\tsize = min * options.categoryPercentage;\r\n\t\tratio = options.barPercentage;\r\n\t} else {\r\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\r\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\r\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\r\n\t\tsize = thickness * count;\r\n\t\tratio = 1;\r\n\t}\r\n\r\n\treturn {\r\n\t\tchunk: size / count,\r\n\t\tratio: ratio,\r\n\t\tstart: curr - (size / 2)\r\n\t};\r\n}\r\n\r\n/**\r\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\r\n * percentage options are 1), based on the previous and following categories. This mode\r\n * generates bars with different widths when data are not evenly spaced.\r\n * @private\r\n */\r\nfunction computeFlexCategoryTraits(index, ruler, options) {\r\n\tvar pixels = ruler.pixels;\r\n\tvar curr = pixels[index];\r\n\tvar prev = index > 0 ? pixels[index - 1] : null;\r\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\r\n\tvar percent = options.categoryPercentage;\r\n\tvar start, size;\r\n\r\n\tif (prev === null) {\r\n\t\t// first data: its size is double based on the next point or,\r\n\t\t// if it's also the last data, we use the scale size.\r\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\r\n\t}\r\n\r\n\tif (next === null) {\r\n\t\t// last data: its size is also double based on the previous point.\r\n\t\tnext = curr + curr - prev;\r\n\t}\r\n\r\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\r\n\tsize = Math.abs(next - prev) / 2 * percent;\r\n\r\n\treturn {\r\n\t\tchunk: size / ruler.stackCount,\r\n\t\tratio: options.barPercentage,\r\n\t\tstart: start\r\n\t};\r\n}\r\n\r\nvar controller_bar = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Rectangle,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderSkipped',\r\n\t\t'borderWidth',\r\n\t\t'barPercentage',\r\n\t\t'barThickness',\r\n\t\t'categoryPercentage',\r\n\t\t'maxBarThickness',\r\n\t\t'minBarLength'\r\n\t],\r\n\r\n\tinitialize: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta, scaleOpts;\r\n\r\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\r\n\r\n\t\tmeta = me.getMeta();\r\n\t\tmeta.stack = me.getDataset().stack;\r\n\t\tmeta.bar = true;\r\n\r\n\t\tscaleOpts = me._getIndexScale().options;\r\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\r\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\r\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\r\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\r\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._ruler = me.getRuler();\r\n\r\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(rects[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(rectangle, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\r\n\r\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\r\n\t\trectangle._datasetIndex = me.index;\r\n\t\trectangle._index = index;\r\n\t\trectangle._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderSkipped: options.borderSkipped,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\tdatasetLabel: dataset.label,\r\n\t\t\tlabel: me.chart.data.labels[index]\r\n\t\t};\r\n\r\n\t\tif (helpers$1.isArray(dataset.data[index])) {\r\n\t\t\trectangle._model.borderSkipped = null;\r\n\t\t}\r\n\r\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\r\n\r\n\t\trectangle.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\r\n\t\tvar me = this;\r\n\t\tvar model = rectangle._model;\r\n\t\tvar vscale = me._getValueScale();\r\n\t\tvar base = vscale.getBasePixel();\r\n\t\tvar horizontal = vscale.isHorizontal();\r\n\t\tvar ruler = me._ruler || me.getRuler();\r\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\r\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\r\n\r\n\t\tmodel.horizontal = horizontal;\r\n\t\tmodel.base = reset ? base : vpixels.base;\r\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\r\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\r\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\r\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stacks based on groups and bar visibility.\r\n\t * @param {number} [last] - The dataset index\r\n\t * @returns {string[]} The list of stack IDs\r\n\t * @private\r\n\t */\r\n\t_getStacks: function(last) {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar stacks = [];\r\n\t\tvar i, meta;\r\n\r\n\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\tmeta = metasets[i];\r\n\t\t\t// stacked | meta.stack\r\n\t\t\t// | found | not found | undefined\r\n\t\t\t// false | x | x | x\r\n\t\t\t// true | | x |\r\n\t\t\t// undefined | | x | x\r\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\r\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\r\n\t\t\t\tstacks.push(meta.stack);\r\n\t\t\t}\r\n\t\t\tif (meta.index === last) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn stacks;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the effective number of stacks based on groups and bar visibility.\r\n\t * @private\r\n\t */\r\n\tgetStackCount: function() {\r\n\t\treturn this._getStacks().length;\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\r\n\t * @param {number} [datasetIndex] - The dataset index\r\n\t * @param {string} [name] - The stack name to find\r\n\t * @returns {number} The stack index\r\n\t * @private\r\n\t */\r\n\tgetStackIndex: function(datasetIndex, name) {\r\n\t\tvar stacks = this._getStacks(datasetIndex);\r\n\t\tvar index = (name !== undefined)\r\n\t\t\t? stacks.indexOf(name)\r\n\t\t\t: -1; // indexOf returns -1 if element is not present\r\n\r\n\t\treturn (index === -1)\r\n\t\t\t? stacks.length - 1\r\n\t\t\t: index;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tgetRuler: function() {\r\n\t\tvar me = this;\r\n\t\tvar scale = me._getIndexScale();\r\n\t\tvar pixels = [];\r\n\t\tvar i, ilen;\r\n\r\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\r\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tpixels: pixels,\r\n\t\t\tstart: scale._startPixel,\r\n\t\t\tend: scale._endPixel,\r\n\t\t\tstackCount: me.getStackCount(),\r\n\t\t\tscale: scale\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * Note: pixel values are not clamped to the scale area.\r\n\t * @private\r\n\t */\r\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar isHorizontal = scale.isHorizontal();\r\n\t\tvar datasets = chart.data.datasets;\r\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\r\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\r\n\t\tvar minBarLength = options.minBarLength;\r\n\t\tvar stacked = scale.options.stacked;\r\n\t\tvar stack = me.getMeta().stack;\r\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\r\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\r\n\t\tvar ilen = metasets.length;\r\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\r\n\r\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\timeta = metasets[i];\r\n\r\n\t\t\t\tif (imeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (imeta.stack === stack) {\r\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\r\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\r\n\r\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\r\n\t\t\t\t\t\tstart += ivalue;\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\tbase = scale.getPixelForValue(start);\r\n\t\thead = scale.getPixelForValue(start + length);\r\n\t\tsize = head - base;\r\n\r\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\r\n\t\t\tsize = minBarLength;\r\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\r\n\t\t\t\thead = base - minBarLength;\r\n\t\t\t} else {\r\n\t\t\t\thead = base + minBarLength;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tsize: size,\r\n\t\t\tbase: base,\r\n\t\t\thead: head,\r\n\t\t\tcenter: head + size / 2\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\r\n\t\tvar me = this;\r\n\t\tvar range = options.barThickness === 'flex'\r\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\r\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\r\n\r\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\r\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\r\n\t\tvar size = Math.min(\r\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\r\n\t\t\trange.chunk * range.ratio);\r\n\r\n\t\treturn {\r\n\t\t\tbase: center - size / 2,\r\n\t\t\thead: center + size / 2,\r\n\t\t\tcenter: center,\r\n\t\t\tsize: size\r\n\t\t};\r\n\t},\r\n\r\n\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar scale = me._getValueScale();\r\n\t\tvar rects = me.getMeta().data;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar ilen = rects.length;\r\n\t\tvar i = 0;\r\n\r\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\r\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\r\n\t\t\t\trects[i].draw();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\r\n\t\tvar indexOpts = me._getIndexScale().options;\r\n\t\tvar valueOpts = me._getValueScale().options;\r\n\r\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\r\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\r\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\r\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\r\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\r\n\r\n\t\treturn values;\r\n\t}\r\n\r\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\r\nvar resolve$1 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('bubble', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\r\n\t\t\tposition: 'bottom',\r\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\r\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\r\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_bubble = core_datasetController.extend({\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t\t'hoverRadius',\r\n\t\t'hitRadius',\r\n\t\t'pointStyle',\r\n\t\t'rotation'\r\n\t],\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data;\r\n\r\n\t\t// Update Points\r\n\t\thelpers$1.each(points, function(point, index) {\r\n\t\t\tme.updateElement(point, index, reset);\r\n\t\t});\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar data = me.getDataset().data[index];\r\n\t\tvar dsIndex = me.index;\r\n\r\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\r\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\r\n\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = dsIndex;\r\n\t\tpoint._index = index;\r\n\t\tpoint._model = {\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\thitRadius: options.hitRadius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tradius: reset ? 0 : options.radius,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t};\r\n\r\n\t\tpoint.pivot();\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = options.radius + options.hoverRadius;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDataElementOptions: function(point, index) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar data = dataset.data[index] || {};\r\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\t// In case values were cached (and thus frozen), we need to clone the values\r\n\t\tif (me._cachedDataOpts === values) {\r\n\t\t\tvalues = helpers$1.extend({}, values);\r\n\t\t}\r\n\r\n\t\t// Custom radius resolution\r\n\t\tvalues.radius = resolve$1([\r\n\t\t\tcustom.radius,\r\n\t\t\tdata.r,\r\n\t\t\tme._config.radius,\r\n\t\t\tchart.options.elements.point.radius\r\n\t\t], context, index);\r\n\r\n\t\treturn values;\r\n\t}\r\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\r\n\r\nvar PI$1 = Math.PI;\r\nvar DOUBLE_PI$1 = PI$1 * 2;\r\nvar HALF_PI$1 = PI$1 / 2;\r\n\r\ncore_defaults._set('doughnut', {\r\n\tanimation: {\r\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\r\n\t\tanimateRotate: true,\r\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\r\n\t\tanimateScale: false\r\n\t},\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\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\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t// toggle visibility of index if exists\r\n\t\t\t\tif (meta.data[index]) {\r\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// The percentage of the chart that we cut out of the middle.\r\n\tcutoutPercentage: 50,\r\n\r\n\t// The rotation of the chart, where the first data arc begins.\r\n\trotation: -HALF_PI$1,\r\n\r\n\t// The total circumference of the chart.\r\n\tcircumference: DOUBLE_PI$1,\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(tooltipItem, data) {\r\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\r\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\r\n\r\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\r\n\t\t\t\t\t// show value on first line of multiline label\r\n\t\t\t\t\t// need to clone because we are changing the value\r\n\t\t\t\t\tdataLabel = dataLabel.slice();\r\n\t\t\t\t\tdataLabel[0] += value;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataLabel += value;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn dataLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_doughnut = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\r\n\tgetRingIndex: function(datasetIndex) {\r\n\t\tvar ringIndex = 0;\r\n\r\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\r\n\t\t\tif (this.chart.isDatasetVisible(j)) {\r\n\t\t\t\t++ringIndex;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringIndex;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar ratioX = 1;\r\n\t\tvar ratioY = 1;\r\n\t\tvar offsetX = 0;\r\n\t\tvar offsetY = 0;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar arcs = meta.data;\r\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\r\n\t\tvar circumference = opts.circumference;\r\n\t\tvar chartWeight = me._getRingWeight(me.index);\r\n\t\tvar maxWidth, maxHeight, i, ilen;\r\n\r\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\r\n\t\tif (circumference < DOUBLE_PI$1) {\r\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\r\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\r\n\t\t\tvar endAngle = startAngle + circumference;\r\n\t\t\tvar startX = Math.cos(startAngle);\r\n\t\t\tvar startY = Math.sin(startAngle);\r\n\t\t\tvar endX = Math.cos(endAngle);\r\n\t\t\tvar endY = Math.sin(endAngle);\r\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\r\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\r\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\r\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\r\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\r\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\r\n\t\t\tratioX = (maxX - minX) / 2;\r\n\t\t\tratioY = (maxY - minY) / 2;\r\n\t\t\toffsetX = -(maxX + minX) / 2;\r\n\t\t\toffsetY = -(maxY + minY) / 2;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t}\r\n\r\n\t\tchart.borderWidth = me.getMaxBorderWidth();\r\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\r\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\r\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\r\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\r\n\t\tchart.offsetX = offsetX * chart.outerRadius;\r\n\t\tchart.offsetY = offsetY * chart.outerRadius;\r\n\r\n\t\tmeta.total = me.calculateTotal();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\r\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\r\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\r\n\t\tvar startAngle = opts.rotation; // non reset case handled later\r\n\t\tvar endAngle = opts.rotation; // non reset case handled later\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\r\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\r\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX + chart.offsetX,\r\n\t\t\t\ty: centerY + chart.offsetY,\r\n\t\t\t\tstartAngle: startAngle,\r\n\t\t\t\tendAngle: endAngle,\r\n\t\t\t\tcircumference: circumference,\r\n\t\t\t\touterRadius: outerRadius,\r\n\t\t\t\tinnerRadius: innerRadius,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tvar model = arc._model;\r\n\r\n\t\t// Set correct angles if not resetting\r\n\t\tif (!reset || !animationOpts.animateRotate) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tmodel.startAngle = opts.rotation;\r\n\t\t\t} else {\r\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\r\n\t\t\t}\r\n\r\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\r\n\t\t}\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcalculateTotal: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar total = 0;\r\n\t\tvar value;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tvalue = dataset.data[index];\r\n\t\t\tif (!isNaN(value) && !element.hidden) {\r\n\t\t\t\ttotal += Math.abs(value);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/* if (total === 0) {\r\n\t\t\ttotal = NaN;\r\n\t\t}*/\r\n\r\n\t\treturn total;\r\n\t},\r\n\r\n\tcalculateCircumference: function(value) {\r\n\t\tvar total = this.getMeta().total;\r\n\t\tif (total > 0 && !isNaN(value)) {\r\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\r\n\t\t}\r\n\t\treturn 0;\r\n\t},\r\n\r\n\t// gets the max border or hover width to properly scale pie charts\r\n\tgetMaxBorderWidth: function(arcs) {\r\n\t\tvar me = this;\r\n\t\tvar max = 0;\r\n\t\tvar chart = me.chart;\r\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\r\n\r\n\t\tif (!arcs) {\r\n\t\t\t// Find the outmost visible dataset\r\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\r\n\t\t\t\tif (chart.isDatasetVisible(i)) {\r\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\t\tarcs = meta.data;\r\n\t\t\t\t\tif (i !== me.index) {\r\n\t\t\t\t\t\tcontroller = meta.controller;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!arcs) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarc = arcs[i];\r\n\t\t\tif (controller) {\r\n\t\t\t\tcontroller._configure();\r\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\r\n\t\t\t} else {\r\n\t\t\t\toptions = arc._options;\r\n\t\t\t}\r\n\t\t\tif (options.borderAlign !== 'inner') {\r\n\t\t\t\tborderWidth = options.borderWidth;\r\n\t\t\t\thoverWidth = options.hoverBorderWidth;\r\n\r\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\r\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn max;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\r\n\t * @private\r\n\t */\r\n\t_getRingWeightOffset: function(datasetIndex) {\r\n\t\tvar ringWeightOffset = 0;\r\n\r\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\r\n\t\t\tif (this.chart.isDatasetVisible(i)) {\r\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn ringWeightOffset;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getRingWeight: function(dataSetIndex) {\r\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\r\n\t},\r\n\r\n\t/**\r\n\t * Returns the sum of all visibile data set weights. This value can be 0.\r\n\t * @private\r\n\t */\r\n\t_getVisibleDatasetWeightTotal: function() {\r\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\r\n\t}\r\n});\n\ncore_defaults._set('horizontalBar', {\r\n\thover: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tposition: 'left',\r\n\t\t\toffset: true,\r\n\t\t\tgridLines: {\r\n\t\t\t\toffsetGridLines: true\r\n\t\t\t}\r\n\t\t}]\r\n\t},\r\n\r\n\telements: {\r\n\t\trectangle: {\r\n\t\t\tborderSkipped: 'left'\r\n\t\t}\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tmode: 'index',\r\n\t\taxis: 'y'\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\thorizontalBar: {\r\n\t\t\tcategoryPercentage: 0.8,\r\n\t\t\tbarPercentage: 0.9\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_horizontalBar = controller_bar.extend({\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.getMeta().xAxisID;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.getMeta().yAxisID;\r\n\t}\r\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\r\nvar resolve$2 = helpers$1.options.resolve;\r\nvar isPointInArea = helpers$1.canvas._isPointInArea;\r\n\r\ncore_defaults._set('line', {\r\n\tshowLines: true,\r\n\tspanGaps: false,\r\n\r\n\thover: {\r\n\t\tmode: 'label'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\ttype: 'category',\r\n\t\t\tid: 'x-axis-0'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\ttype: 'linear',\r\n\t\t\tid: 'y-axis-0'\r\n\t\t}]\r\n\t}\r\n});\r\n\r\nfunction scaleClip(scale, halfBorderWidth) {\r\n\tvar tickOpts = scale && scale.options.ticks || {};\r\n\tvar reverse = tickOpts.reverse;\r\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\r\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\r\n\treturn {\r\n\t\tstart: reverse ? max : min,\r\n\t\tend: reverse ? min : max\r\n\t};\r\n}\r\n\r\nfunction defaultClip(xScale, yScale, borderWidth) {\r\n\tvar halfBorderWidth = borderWidth / 2;\r\n\tvar x = scaleClip(xScale, halfBorderWidth);\r\n\tvar y = scaleClip(yScale, halfBorderWidth);\r\n\r\n\treturn {\r\n\t\ttop: y.end,\r\n\t\tright: x.end,\r\n\t\tbottom: y.start,\r\n\t\tleft: x.start\r\n\t};\r\n}\r\n\r\nfunction toClip(value) {\r\n\tvar t, r, b, l;\r\n\r\n\tif (helpers$1.isObject(value)) {\r\n\t\tt = value.top;\r\n\t\tr = value.right;\r\n\t\tb = value.bottom;\r\n\t\tl = value.left;\r\n\t} else {\r\n\t\tt = r = b = l = value;\r\n\t}\r\n\r\n\treturn {\r\n\t\ttop: t,\r\n\t\tright: r,\r\n\t\tbottom: b,\r\n\t\tleft: l\r\n\t};\r\n}\r\n\r\n\r\nvar controller_line = core_datasetController.extend({\r\n\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderColor',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'borderWidth',\r\n\t\t'cubicInterpolationMode',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar options = me.chart.options;\r\n\t\tvar config = me._config;\r\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\r\n\t\tvar i, ilen;\r\n\r\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\r\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\r\n\r\n\t\t// Update Line\r\n\t\tif (showLine) {\r\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\t\tconfig.lineTension = config.tension;\r\n\t\t\t}\r\n\r\n\t\t\t// Utility\r\n\t\t\tline._scale = me._yScale;\r\n\t\t\tline._datasetIndex = me.index;\r\n\t\t\t// Data\r\n\t\t\tline._children = points;\r\n\t\t\t// Model\r\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\t\tline.pivot();\r\n\t\t}\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\tif (showLine && line._model.tension !== 0) {\r\n\t\t\tme.updateBezierControlPoints();\r\n\t\t}\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar datasetIndex = me.index;\r\n\t\tvar value = dataset.data[index];\r\n\t\tvar xScale = me._xScale;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar x, y;\r\n\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\r\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\r\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\r\n\r\n\t\t// Utility\r\n\t\tpoint._xScale = xScale;\r\n\t\tpoint._yScale = yScale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = datasetIndex;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x,\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\r\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function(element) {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar custom = element.custom || {};\r\n\t\tvar options = me.chart.options;\r\n\t\tvar lineOptions = options.elements.line;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\t// The default behavior of lines is to break at null values, according\r\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\r\n\t\t// This option gives lines the ability to span gaps\r\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\r\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\r\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tcalculatePointY: function(value, index, datasetIndex) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar yScale = me._yScale;\r\n\t\tvar sumPos = 0;\r\n\t\tvar sumNeg = 0;\r\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\r\n\r\n\t\tif (yScale.options.stacked) {\r\n\t\t\trightValue = +yScale.getRightValue(value);\r\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\r\n\t\t\tilen = metasets.length;\r\n\r\n\t\t\tfor (i = 0; i < ilen; ++i) {\r\n\t\t\t\tdsMeta = metasets[i];\r\n\t\t\t\tif (dsMeta.index === datasetIndex) {\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\r\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\r\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\r\n\t\t\t\t\tif (stackedRightValue < 0) {\r\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (rightValue < 0) {\r\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\r\n\t\t\t}\r\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\r\n\t\t}\r\n\t\treturn yScale.getPixelForValue(value);\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar lineModel = meta.dataset._model;\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (lineModel.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\r\n\t\t\thelpers$1.splineCurveMonotone(points);\r\n\t\t} else {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\r\n\t\t\t\t\tmodel,\r\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\r\n\t\t\t\t\tlineModel.tension\r\n\t\t\t\t);\r\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\r\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\r\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\r\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (chart.options.elements.line.capBezierPoints) {\r\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\t\tmodel = points[i]._model;\r\n\t\t\t\tif (isPointInArea(model, area)) {\r\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\r\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\r\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\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\tdraw: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar points = meta.data || [];\r\n\t\tvar area = chart.chartArea;\r\n\t\tvar canvas = chart.canvas;\r\n\t\tvar i = 0;\r\n\t\tvar ilen = points.length;\r\n\t\tvar clip;\r\n\r\n\t\tif (me._showLine) {\r\n\t\t\tclip = meta.dataset._model.clip;\r\n\r\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\r\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\r\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\r\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\r\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\r\n\t\t\t});\r\n\r\n\t\t\tmeta.dataset.draw();\r\n\r\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\r\n\t\t}\r\n\r\n\t\t// Draw the points\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tpoints[i].draw(area);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\r\n\t},\r\n});\n\nvar resolve$3 = helpers$1.options.resolve;\r\n\r\ncore_defaults._set('polarArea', {\r\n\tscale: {\r\n\t\ttype: 'radialLinear',\r\n\t\tangleLines: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tgridLines: {\r\n\t\t\tcircular: true\r\n\t\t},\r\n\t\tpointLabels: {\r\n\t\t\tdisplay: false\r\n\t\t},\r\n\t\tticks: {\r\n\t\t\tbeginAtZero: true\r\n\t\t}\r\n\t},\r\n\r\n\t// Boolean - Whether to animate the rotation of the chart\r\n\tanimation: {\r\n\t\tanimateRotate: true,\r\n\t\tanimateScale: true\r\n\t},\r\n\r\n\tstartAngle: -0.5 * Math.PI,\r\n\tlegendCallback: function(chart) {\r\n\t\tvar list = document.createElement('ul');\r\n\t\tvar data = chart.data;\r\n\t\tvar datasets = data.datasets;\r\n\t\tvar labels = data.labels;\r\n\t\tvar i, ilen, listItem, listItemSpan;\r\n\r\n\t\tlist.setAttribute('class', chart.id + '-legend');\r\n\t\tif (datasets.length) {\r\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\r\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\r\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\r\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\r\n\t\t\t\tif (labels[i]) {\r\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn list.outerHTML;\r\n\t},\r\n\tlegend: {\r\n\t\tlabels: {\r\n\t\t\tgenerateLabels: function(chart) {\r\n\t\t\t\tvar data = chart.data;\r\n\t\t\t\tif (data.labels.length && data.datasets.length) {\r\n\t\t\t\t\treturn data.labels.map(function(label, i) {\r\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\r\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\ttext: label,\r\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\r\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\r\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\r\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\r\n\r\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\r\n\t\t\t\t\t\t\tindex: i\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\treturn [];\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tonClick: function(e, legendItem) {\r\n\t\t\tvar index = legendItem.index;\r\n\t\t\tvar chart = this.chart;\r\n\t\t\tvar i, ilen, meta;\r\n\r\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\r\n\t\t\t\tmeta = chart.getDatasetMeta(i);\r\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\r\n\t\t\t}\r\n\r\n\t\t\tchart.update();\r\n\t\t}\r\n\t},\r\n\r\n\t// Need to override these to give a nice default\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn '';\r\n\t\t\t},\r\n\t\t\tlabel: function(item, data) {\r\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_polarArea = core_datasetController.extend({\r\n\r\n\tdataElementType: elements.Arc,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderColor',\r\n\t\t'borderWidth',\r\n\t\t'borderAlign',\r\n\t\t'hoverBackgroundColor',\r\n\t\t'hoverBorderColor',\r\n\t\t'hoverBorderWidth',\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar start = me.chart.options.startAngle || 0;\r\n\t\tvar starts = me._starts = [];\r\n\t\tvar angles = me._angles = [];\r\n\t\tvar arcs = meta.data;\r\n\t\tvar i, ilen, angle;\r\n\r\n\t\tme._updateRadius();\r\n\r\n\t\tmeta.count = me.countVisibleElements();\r\n\r\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\r\n\t\t\tstarts[i] = start;\r\n\t\t\tangle = me._computeAngle(i);\r\n\t\t\tangles[i] = angle;\r\n\t\t\tstart += angle;\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\r\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\r\n\t\t\tme.updateElement(arcs[i], i, reset);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_updateRadius: function() {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar chartArea = chart.chartArea;\r\n\t\tvar opts = chart.options;\r\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\r\n\r\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\r\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\r\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\r\n\r\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\r\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\r\n\t},\r\n\r\n\tupdateElement: function(arc, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar chart = me.chart;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar opts = chart.options;\r\n\t\tvar animationOpts = opts.animation;\r\n\t\tvar scale = chart.scale;\r\n\t\tvar labels = chart.data.labels;\r\n\r\n\t\tvar centerX = scale.xCenter;\r\n\t\tvar centerY = scale.yCenter;\r\n\r\n\t\t// var negHalfPI = -0.5 * Math.PI;\r\n\t\tvar datasetStartAngle = opts.startAngle;\r\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar startAngle = me._starts[index];\r\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\r\n\r\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\r\n\t\tvar options = arc._options || {};\r\n\r\n\t\thelpers$1.extend(arc, {\r\n\t\t\t// Utility\r\n\t\t\t_datasetIndex: me.index,\r\n\t\t\t_index: index,\r\n\t\t\t_scale: scale,\r\n\r\n\t\t\t// Desired view properties\r\n\t\t\t_model: {\r\n\t\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\t\tborderColor: options.borderColor,\r\n\t\t\t\tborderWidth: options.borderWidth,\r\n\t\t\t\tborderAlign: options.borderAlign,\r\n\t\t\t\tx: centerX,\r\n\t\t\t\ty: centerY,\r\n\t\t\t\tinnerRadius: 0,\r\n\t\t\t\touterRadius: reset ? resetRadius : distance,\r\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\r\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\r\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tarc.pivot();\r\n\t},\r\n\r\n\tcountVisibleElements: function() {\r\n\t\tvar dataset = this.getDataset();\r\n\t\tvar meta = this.getMeta();\r\n\t\tvar count = 0;\r\n\r\n\t\thelpers$1.each(meta.data, function(element, index) {\r\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\r\n\t\t\t\tcount++;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn count;\r\n\t},\r\n\r\n\t/**\r\n\t * @protected\r\n\t */\r\n\tsetHoverStyle: function(arc) {\r\n\t\tvar model = arc._model;\r\n\t\tvar options = arc._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\r\n\r\n\t\tarc.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_computeAngle: function(index) {\r\n\t\tvar me = this;\r\n\t\tvar count = this.getMeta().count;\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar meta = me.getMeta();\r\n\r\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\t// Scriptable options\r\n\t\tvar context = {\r\n\t\t\tchart: me.chart,\r\n\t\t\tdataIndex: index,\r\n\t\t\tdataset: dataset,\r\n\t\t\tdatasetIndex: me.index\r\n\t\t};\r\n\r\n\t\treturn resolve$3([\r\n\t\t\tme.chart.options.elements.arc.angle,\r\n\t\t\t(2 * Math.PI) / count\r\n\t\t], context, index);\r\n\t}\r\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\r\ncore_defaults._set('pie', {\r\n\tcutoutPercentage: 0\r\n});\r\n\r\n// Pie charts are Doughnut chart with different defaults\r\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\r\n\r\ncore_defaults._set('radar', {\r\n\tspanGaps: false,\r\n\tscale: {\r\n\t\ttype: 'radialLinear'\r\n\t},\r\n\telements: {\r\n\t\tline: {\r\n\t\t\tfill: 'start',\r\n\t\t\ttension: 0 // no bezier in radar\r\n\t\t}\r\n\t}\r\n});\r\n\r\nvar controller_radar = core_datasetController.extend({\r\n\tdatasetElementType: elements.Line,\r\n\r\n\tdataElementType: elements.Point,\r\n\r\n\tlinkScales: helpers$1.noop,\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_datasetElementOptions: [\r\n\t\t'backgroundColor',\r\n\t\t'borderWidth',\r\n\t\t'borderColor',\r\n\t\t'borderCapStyle',\r\n\t\t'borderDash',\r\n\t\t'borderDashOffset',\r\n\t\t'borderJoinStyle',\r\n\t\t'fill'\r\n\t],\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_dataElementOptions: {\r\n\t\tbackgroundColor: 'pointBackgroundColor',\r\n\t\tborderColor: 'pointBorderColor',\r\n\t\tborderWidth: 'pointBorderWidth',\r\n\t\thitRadius: 'pointHitRadius',\r\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\r\n\t\thoverBorderColor: 'pointHoverBorderColor',\r\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\r\n\t\thoverRadius: 'pointHoverRadius',\r\n\t\tpointStyle: 'pointStyle',\r\n\t\tradius: 'pointRadius',\r\n\t\trotation: 'pointRotation'\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getIndexScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_getValueScaleId: function() {\r\n\t\treturn this.chart.scale.id;\r\n\t},\r\n\r\n\tupdate: function(reset) {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar line = meta.dataset;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar config = me._config;\r\n\t\tvar i, ilen;\r\n\r\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\r\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\r\n\t\t\tconfig.lineTension = config.tension;\r\n\t\t}\r\n\r\n\t\t// Utility\r\n\t\tline._scale = scale;\r\n\t\tline._datasetIndex = me.index;\r\n\t\t// Data\r\n\t\tline._children = points;\r\n\t\tline._loop = true;\r\n\t\t// Model\r\n\t\tline._model = me._resolveDatasetElementOptions(line);\r\n\r\n\t\tline.pivot();\r\n\r\n\t\t// Update Points\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tme.updateElement(points[i], i, reset);\r\n\t\t}\r\n\r\n\t\t// Update bezier control points\r\n\t\tme.updateBezierControlPoints();\r\n\r\n\t\t// Now pivot the point for animation\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tpoints[i].pivot();\r\n\t\t}\r\n\t},\r\n\r\n\tupdateElement: function(point, index, reset) {\r\n\t\tvar me = this;\r\n\t\tvar custom = point.custom || {};\r\n\t\tvar dataset = me.getDataset();\r\n\t\tvar scale = me.chart.scale;\r\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\r\n\t\tvar options = me._resolveDataElementOptions(point, index);\r\n\t\tvar lineModel = me.getMeta().dataset._model;\r\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\r\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\r\n\r\n\t\t// Utility\r\n\t\tpoint._scale = scale;\r\n\t\tpoint._options = options;\r\n\t\tpoint._datasetIndex = me.index;\r\n\t\tpoint._index = index;\r\n\r\n\t\t// Desired view properties\r\n\t\tpoint._model = {\r\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\r\n\t\t\ty: y,\r\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\r\n\t\t\t// Appearance\r\n\t\t\tradius: options.radius,\r\n\t\t\tpointStyle: options.pointStyle,\r\n\t\t\trotation: options.rotation,\r\n\t\t\tbackgroundColor: options.backgroundColor,\r\n\t\t\tborderColor: options.borderColor,\r\n\t\t\tborderWidth: options.borderWidth,\r\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\r\n\r\n\t\t\t// Tooltip\r\n\t\t\thitRadius: options.hitRadius\r\n\t\t};\r\n\t},\r\n\r\n\t/**\r\n\t * @private\r\n\t */\r\n\t_resolveDatasetElementOptions: function() {\r\n\t\tvar me = this;\r\n\t\tvar config = me._config;\r\n\t\tvar options = me.chart.options;\r\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\r\n\r\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\r\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\r\n\r\n\t\treturn values;\r\n\t},\r\n\r\n\tupdateBezierControlPoints: function() {\r\n\t\tvar me = this;\r\n\t\tvar meta = me.getMeta();\r\n\t\tvar area = me.chart.chartArea;\r\n\t\tvar points = meta.data || [];\r\n\t\tvar i, ilen, model, controlPoints;\r\n\r\n\t\t// Only consider points that are drawn in case the spanGaps option is used\r\n\t\tif (meta.dataset._model.spanGaps) {\r\n\t\t\tpoints = points.filter(function(pt) {\r\n\t\t\t\treturn !pt._model.skip;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfunction capControlPoint(pt, min, max) {\r\n\t\t\treturn Math.max(Math.min(pt, max), min);\r\n\t\t}\r\n\r\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\r\n\t\t\tmodel = points[i]._model;\r\n\t\t\tcontrolPoints = helpers$1.splineCurve(\r\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\r\n\t\t\t\tmodel,\r\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\r\n\t\t\t\tmodel.tension\r\n\t\t\t);\r\n\r\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\r\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\r\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\r\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\r\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\r\n\t\t}\r\n\t},\r\n\r\n\tsetHoverStyle: function(point) {\r\n\t\tvar model = point._model;\r\n\t\tvar options = point._options;\r\n\t\tvar getHoverColor = helpers$1.getHoverColor;\r\n\r\n\t\tpoint.$previousStyle = {\r\n\t\t\tbackgroundColor: model.backgroundColor,\r\n\t\t\tborderColor: model.borderColor,\r\n\t\t\tborderWidth: model.borderWidth,\r\n\t\t\tradius: model.radius\r\n\t\t};\r\n\r\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\r\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\r\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\r\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\r\n\t}\r\n});\n\ncore_defaults._set('scatter', {\r\n\thover: {\r\n\t\tmode: 'single'\r\n\t},\r\n\r\n\tscales: {\r\n\t\txAxes: [{\r\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\r\n\t\t\ttype: 'linear', // scatter should not use a category axis\r\n\t\t\tposition: 'bottom'\r\n\t\t}],\r\n\t\tyAxes: [{\r\n\t\t\tid: 'y-axis-1',\r\n\t\t\ttype: 'linear',\r\n\t\t\tposition: 'left'\r\n\t\t}]\r\n\t},\r\n\r\n\ttooltips: {\r\n\t\tcallbacks: {\r\n\t\t\ttitle: function() {\r\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\r\n\t\t\t},\r\n\t\t\tlabel: function(item) {\r\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\ncore_defaults._set('global', {\r\n\tdatasets: {\r\n\t\tscatter: {\r\n\t\t\tshowLine: false\r\n\t\t}\r\n\t}\r\n});\r\n\r\n// Scatter charts use line controllers\r\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\r\n// the class, and so must be CamelCase in order to be correctly retrieved\r\n// by the controller in core.controller.js (`controllers[meta.type]`).\r\n\r\nvar controllers = {\r\n\tbar: controller_bar,\r\n\tbubble: controller_bubble,\r\n\tdoughnut: controller_doughnut,\r\n\thorizontalBar: controller_horizontalBar,\r\n\tline: controller_line,\r\n\tpolarArea: controller_polarArea,\r\n\tpie: controller_pie,\r\n\tradar: controller_radar,\r\n\tscatter: controller_scatter\r\n};\n\n/**\r\n * Helper function to get relative position for an event\r\n * @param {Event|IEvent} event - The event to get the position for\r\n * @param {Chart} chart - The chart\r\n * @returns {object} the event position\r\n */\r\nfunction getRelativePosition(e, chart) {\r\n\tif (e.native) {\r\n\t\treturn {\r\n\t\t\tx: e.x,\r\n\t\t\ty: e.y\r\n\t\t};\r\n\t}\r\n\r\n\treturn helpers$1.getRelativePosition(e, chart);\r\n}\r\n\r\n/**\r\n * Helper function to traverse all of the visible elements in the chart\r\n * @param {Chart} chart - the chart\r\n * @param {function} handler - the callback to execute for each visible item\r\n */\r\nfunction parseVisibleItems(chart, handler) {\r\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\r\n\tvar metadata, i, j, ilen, jlen, element;\r\n\r\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\r\n\t\tmetadata = metasets[i].data;\r\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\r\n\t\t\telement = metadata[j];\r\n\t\t\tif (!element._view.skip) {\r\n\t\t\t\thandler(element);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Helper function to get the items that intersect the event position\r\n * @param {ChartElement[]} items - elements to filter\r\n * @param {object} position - the point to be nearest to\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getIntersectItems(chart, position) {\r\n\tvar elements = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\r\n * @param {Chart} chart - the chart to look at elements from\r\n * @param {object} position - the point to be nearest to\r\n * @param {boolean} intersect - if true, only consider items that intersect the position\r\n * @param {function} distanceMetric - function to provide the distance between points\r\n * @return {ChartElement[]} the nearest items\r\n */\r\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\r\n\tvar minDistance = Number.POSITIVE_INFINITY;\r\n\tvar nearestItems = [];\r\n\r\n\tparseVisibleItems(chart, function(element) {\r\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar center = element.getCenterPoint();\r\n\t\tvar distance = distanceMetric(position, center);\r\n\t\tif (distance < minDistance) {\r\n\t\t\tnearestItems = [element];\r\n\t\t\tminDistance = distance;\r\n\t\t} else if (distance === minDistance) {\r\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\r\n\t\t\tnearestItems.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn nearestItems;\r\n}\r\n\r\n/**\r\n * Get a distance metric function for two points based on the\r\n * axis mode setting\r\n * @param {string} axis - the axis mode. x|y|xy\r\n */\r\nfunction getDistanceMetricForAxis(axis) {\r\n\tvar useX = axis.indexOf('x') !== -1;\r\n\tvar useY = axis.indexOf('y') !== -1;\r\n\r\n\treturn function(pt1, pt2) {\r\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\r\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\r\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\r\n\t};\r\n}\r\n\r\nfunction indexMode(chart, e, options) {\r\n\tvar position = getRelativePosition(e, chart);\r\n\t// Default axis for index mode is 'x' to match old behaviour\r\n\toptions.axis = options.axis || 'x';\r\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\tvar elements = [];\r\n\r\n\tif (!items.length) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\r\n\t\tvar element = meta.data[items[0]._index];\r\n\r\n\t\t// don't count items that are skipped (null data)\r\n\t\tif (element && !element._view.skip) {\r\n\t\t\telements.push(element);\r\n\t\t}\r\n\t});\r\n\r\n\treturn elements;\r\n}\r\n\r\n/**\r\n * @interface IInteractionOptions\r\n */\r\n/**\r\n * If true, only consider items that intersect the point\r\n * @name IInterfaceOptions#boolean\r\n * @type Boolean\r\n */\r\n\r\n/**\r\n * Contains interaction related functions\r\n * @namespace Chart.Interaction\r\n */\r\nvar core_interaction = {\r\n\t// Helper function for different modes\r\n\tmodes: {\r\n\t\tsingle: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar elements = [];\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\telements.push(element);\r\n\t\t\t\t\treturn elements;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn elements.slice(0, 1);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.label\r\n\t\t * @deprecated since version 2.4.0\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\tlabel: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\r\n\t\t * @function Chart.Interaction.modes.index\r\n\t\t * @since v2.4.0\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tindex: indexMode,\r\n\r\n\t\t/**\r\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\r\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\r\n\t\t * @function Chart.Interaction.modes.dataset\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use during interaction\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tdataset: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\r\n\r\n\t\t\tif (items.length > 0) {\r\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\r\n\t\t\t}\r\n\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * @function Chart.Interaction.modes.x-axis\r\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\r\n\t\t * @todo remove at version 3\r\n\t\t * @private\r\n\t\t */\r\n\t\t'x-axis': function(chart, e) {\r\n\t\t\treturn indexMode(chart, e, {intersect: false});\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Point mode returns all elements that hit test based on the event position\r\n\t\t * of the event\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tpoint: function(chart, e) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\treturn getIntersectItems(chart, position);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * nearest mode returns the element closest to the point\r\n\t\t * @function Chart.Interaction.modes.intersect\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tnearest: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\toptions.axis = options.axis || 'xy';\r\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\r\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * x mode returns the elements that hit-test at the current x coordinate\r\n\t\t * @function Chart.Interaction.modes.x\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\tx: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inXRange(position.x)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * y mode returns the elements that hit-test at the current y coordinate\r\n\t\t * @function Chart.Interaction.modes.y\r\n\t\t * @param {Chart} chart - the chart we are returning items from\r\n\t\t * @param {Event} e - the event we are find things at\r\n\t\t * @param {IInteractionOptions} options - options to use\r\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\r\n\t\t */\r\n\t\ty: function(chart, e, options) {\r\n\t\t\tvar position = getRelativePosition(e, chart);\r\n\t\t\tvar items = [];\r\n\t\t\tvar intersectsItem = false;\r\n\r\n\t\t\tparseVisibleItems(chart, function(element) {\r\n\t\t\t\tif (element.inYRange(position.y)) {\r\n\t\t\t\t\titems.push(element);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (element.inRange(position.x, position.y)) {\r\n\t\t\t\t\tintersectsItem = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// If we want to trigger on an intersect and we don't have any items\r\n\t\t\t// that intersect the position, return nothing\r\n\t\t\tif (options.intersect && !intersectsItem) {\r\n\t\t\t\titems = [];\r\n\t\t\t}\r\n\t\t\treturn items;\r\n\t\t}\r\n\t}\r\n};\n\nvar extend = helpers$1.extend;\r\n\r\nfunction filterByPosition(array, position) {\r\n\treturn helpers$1.where(array, function(v) {\r\n\t\treturn v.pos === position;\r\n\t});\r\n}\r\n\r\nfunction sortByWeight(array, reverse) {\r\n\treturn array.sort(function(a, b) {\r\n\t\tvar v0 = reverse ? b : a;\r\n\t\tvar v1 = reverse ? a : b;\r\n\t\treturn v0.weight === v1.weight ?\r\n\t\t\tv0.index - v1.index :\r\n\t\t\tv0.weight - v1.weight;\r\n\t});\r\n}\r\n\r\nfunction wrapBoxes(boxes) {\r\n\tvar layoutBoxes = [];\r\n\tvar i, ilen, box;\r\n\r\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\r\n\t\tbox = boxes[i];\r\n\t\tlayoutBoxes.push({\r\n\t\t\tindex: i,\r\n\t\t\tbox: box,\r\n\t\t\tpos: box.position,\r\n\t\t\thorizontal: box.isHorizontal(),\r\n\t\t\tweight: box.weight\r\n\t\t});\r\n\t}\r\n\treturn layoutBoxes;\r\n}\r\n\r\nfunction setLayoutDims(layouts, params) {\r\n\tvar i, ilen, layout;\r\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\r\n\t\tlayout = layouts[i];\r\n\t\t// store width used instead of chartArea.w in fitBoxes\r\n\t\tlayout.width = layout.horizontal\r\n\t\t\t? layout.box.fullWidth && params.availableWidth\r\n\t\t\t: params.vBoxMaxWidth;\r\n\t\t// store height used instead of chartArea.h in fitBoxes\r\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\r\n\t}\r\n}\r\n\r\nfunction buildLayoutBoxes(boxes) {\r\n\tvar layoutBoxes = wrapBoxes(boxes);\r\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\r\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\r\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\r\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\r\n\r\n\treturn {\r\n\t\tleftAndTop: left.concat(top),\r\n\t\trightAndBottom: right.concat(bottom),\r\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\r\n\t\tvertical: left.concat(right),\r\n\t\thorizontal: top.concat(bottom)\r\n\t};\r\n}\r\n\r\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\r\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\r\n}\r\n\r\nfunction updateDims(chartArea, params, layout) {\r\n\tvar box = layout.box;\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\tvar newWidth, newHeight;\r\n\r\n\tif (layout.size) {\r\n\t\t// this layout was already counted for, lets first reduce old size\r\n\t\tchartArea[layout.pos] -= layout.size;\r\n\t}\r\n\tlayout.size = layout.horizontal ? box.height : box.width;\r\n\tchartArea[layout.pos] += layout.size;\r\n\r\n\tif (box.getPadding) {\r\n\t\tvar boxPadding = box.getPadding();\r\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\r\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\r\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\r\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\r\n\t}\r\n\r\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\r\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\r\n\r\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\r\n\t\tchartArea.w = newWidth;\r\n\t\tchartArea.h = newHeight;\r\n\r\n\t\t// return true if chart area changed in layout's direction\r\n\t\tvar sizes = layout.horizontal ? [newWidth, chartArea.w] : [newHeight, chartArea.h];\r\n\t\treturn sizes[0] !== sizes[1] && (!isNaN(sizes[0]) || !isNaN(sizes[1]));\r\n\t}\r\n}\r\n\r\nfunction handleMaxPadding(chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction updatePos(pos) {\r\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\r\n\t\tchartArea[pos] += change;\r\n\t\treturn change;\r\n\t}\r\n\tchartArea.y += updatePos('top');\r\n\tchartArea.x += updatePos('left');\r\n\tupdatePos('right');\r\n\tupdatePos('bottom');\r\n}\r\n\r\nfunction getMargins(horizontal, chartArea) {\r\n\tvar maxPadding = chartArea.maxPadding;\r\n\r\n\tfunction marginForPositions(positions) {\r\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\r\n\t\tpositions.forEach(function(pos) {\r\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\r\n\t\t});\r\n\t\treturn margin;\r\n\t}\r\n\r\n\treturn horizontal\r\n\t\t? marginForPositions(['left', 'right'])\r\n\t\t: marginForPositions(['top', 'bottom']);\r\n}\r\n\r\nfunction fitBoxes(boxes, chartArea, params) {\r\n\tvar refitBoxes = [];\r\n\tvar i, ilen, layout, box, refit, changed;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\r\n\t\tbox.update(\r\n\t\t\tlayout.width || chartArea.w,\r\n\t\t\tlayout.height || chartArea.h,\r\n\t\t\tgetMargins(layout.horizontal, chartArea)\r\n\t\t);\r\n\t\tif (updateDims(chartArea, params, layout)) {\r\n\t\t\tchanged = true;\r\n\t\t\tif (refitBoxes.length) {\r\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\r\n\t\t\t\t// -> we have to refit those\r\n\t\t\t\trefit = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\r\n\t\t\trefitBoxes.push(layout);\r\n\t\t}\r\n\t}\r\n\r\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\r\n}\r\n\r\nfunction placeBoxes(boxes, chartArea, params) {\r\n\tvar userPadding = params.padding;\r\n\tvar x = chartArea.x;\r\n\tvar y = chartArea.y;\r\n\tvar i, ilen, layout, box;\r\n\r\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\r\n\t\tlayout = boxes[i];\r\n\t\tbox = layout.box;\r\n\t\tif (layout.horizontal) {\r\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\r\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\r\n\t\t\tbox.top = y;\r\n\t\t\tbox.bottom = y + box.height;\r\n\t\t\tbox.width = box.right - box.left;\r\n\t\t\ty = box.bottom;\r\n\t\t} else {\r\n\t\t\tbox.left = x;\r\n\t\t\tbox.right = x + box.width;\r\n\t\t\tbox.top = chartArea.top;\r\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\r\n\t\t\tbox.height = box.bottom - box.top;\r\n\t\t\tx = box.right;\r\n\t\t}\r\n\t}\r\n\r\n\tchartArea.x = x;\r\n\tchartArea.y = y;\r\n}\r\n\r\ncore_defaults._set('global', {\r\n\tlayout: {\r\n\t\tpadding: {\r\n\t\t\ttop: 0,\r\n\t\t\tright: 0,\r\n\t\t\tbottom: 0,\r\n\t\t\tleft: 0\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/**\r\n * @interface ILayoutItem\r\n * @prop {string} position - The position of the item in the chart layout. Possible values are\r\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\r\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\r\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\r\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\r\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\r\n * @prop {function} getPadding - Returns an object with padding on the edges\r\n * @prop {number} width - Width of item. Must be valid after update()\r\n * @prop {number} height - Height of item. Must be valid after update()\r\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\r\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\r\n */\r\n\r\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\r\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\r\n// It is this service's responsibility of carrying out that layout.\r\nvar core_layouts = {\r\n\tdefaults: {},\r\n\r\n\t/**\r\n\t * Register a box to a chart.\r\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\r\n\t * @param {Chart} chart - the chart to use\r\n\t * @param {ILayoutItem} item - the item to add to be layed out\r\n\t */\r\n\taddBox: function(chart, item) {\r\n\t\tif (!chart.boxes) {\r\n\t\t\tchart.boxes = [];\r\n\t\t}\r\n\r\n\t\t// initialize item with default values\r\n\t\titem.fullWidth = item.fullWidth || false;\r\n\t\titem.position = item.position || 'top';\r\n\t\titem.weight = item.weight || 0;\r\n\t\titem._layers = item._layers || function() {\r\n\t\t\treturn [{\r\n\t\t\t\tz: 0,\r\n\t\t\t\tdraw: function() {\r\n\t\t\t\t\titem.draw.apply(item, arguments);\r\n\t\t\t\t}\r\n\t\t\t}];\r\n\t\t};\r\n\r\n\t\tchart.boxes.push(item);\r\n\t},\r\n\r\n\t/**\r\n\t * Remove a layoutItem from a chart\r\n\t * @param {Chart} chart - the chart to remove the box from\r\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\r\n\t */\r\n\tremoveBox: function(chart, layoutItem) {\r\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\r\n\t\tif (index !== -1) {\r\n\t\t\tchart.boxes.splice(index, 1);\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Sets (or updates) options on the given `item`.\r\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\r\n\t * @param {ILayoutItem} item - the item to configure with the given options\r\n\t * @param {object} options - the new item options.\r\n\t */\r\n\tconfigure: function(chart, item, options) {\r\n\t\tvar props = ['fullWidth', 'position', 'weight'];\r\n\t\tvar ilen = props.length;\r\n\t\tvar i = 0;\r\n\t\tvar prop;\r\n\r\n\t\tfor (; i < ilen; ++i) {\r\n\t\t\tprop = props[i];\r\n\t\t\tif (options.hasOwnProperty(prop)) {\r\n\t\t\t\titem[prop] = options[prop];\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Fits boxes of the given chart into the given size by having each box measure itself\r\n\t * then running a fitting algorithm\r\n\t * @param {Chart} chart - the chart\r\n\t * @param {number} width - the width to fit into\r\n\t * @param {number} height - the height to fit into\r\n\t */\r\n\tupdate: function(chart, width, height) {\r\n\t\tif (!chart) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar layoutOptions = chart.options.layout || {};\r\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\r\n\r\n\t\tvar availableWidth = width - padding.width;\r\n\t\tvar availableHeight = height - padding.height;\r\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\r\n\t\tvar verticalBoxes = boxes.vertical;\r\n\t\tvar horizontalBoxes = boxes.horizontal;\r\n\r\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\r\n\t\t// Our canvas looks like the following.\r\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\r\n\t\t// B1 is the bottom axis\r\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\r\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\r\n\t\t// an error will be thrown.\r\n\t\t//\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | T1 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | | | T2 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | C1 | | C2 | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | | |\r\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\r\n\t\t// | | | | |\r\n\t\t// | | |----| |----| |\r\n\t\t// | | | C3 | | C4 | |\r\n\t\t// | |----|-------------------------------------|----|\r\n\t\t// | | | B1 | |\r\n\t\t// |----------------------------------------------------|\r\n\t\t// | B2 (Full Width) |\r\n\t\t// |----------------------------------------------------|\r\n\t\t//\r\n\r\n\t\tvar params = Object.freeze({\r\n\t\t\touterWidth: width,\r\n\t\t\touterHeight: height,\r\n\t\t\tpadding: padding,\r\n\t\t\tavailableWidth: availableWidth,\r\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\r\n\t\t\thBoxMaxHeight: availableHeight / 2\r\n\t\t});\r\n\t\tvar chartArea = extend({\r\n\t\t\tmaxPadding: extend({}, padding),\r\n\t\t\tw: availableWidth,\r\n\t\t\th: availableHeight,\r\n\t\t\tx: padding.left,\r\n\t\t\ty: padding.top\r\n\t\t}, padding);\r\n\r\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\r\n\r\n\t\t// First fit vertical boxes\r\n\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\r\n\t\t// Then fit horizontal boxes\r\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\r\n\t\t\t// if the area changed, re-fit vertical boxes\r\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\r\n\t\t}\r\n\r\n\t\thandleMaxPadding(chartArea);\r\n\r\n\t\t// Finally place the boxes to correct coordinates\r\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\r\n\r\n\t\t// Move to opposite side of chart\r\n\t\tchartArea.x += chartArea.w;\r\n\t\tchartArea.y += chartArea.h;\r\n\r\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\r\n\r\n\t\tchart.chartArea = {\r\n\t\t\tleft: chartArea.left,\r\n\t\t\ttop: chartArea.top,\r\n\t\t\tright: chartArea.left + chartArea.w,\r\n\t\t\tbottom: chartArea.top + chartArea.h\r\n\t\t};\r\n\r\n\t\t// Finally update boxes in chartArea (radial scale for example)\r\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\r\n\t\t\tvar box = layout.box;\r\n\t\t\textend(box, chart.chartArea);\r\n\t\t\tbox.update(chartArea.w, chartArea.h);\r\n\t\t});\r\n\t}\r\n};\n\n/**\r\n * Platform fallback implementation (minimal).\r\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\r\n */\r\n\r\nvar platform_basic = {\r\n\tacquireContext: function(item) {\r\n\t\tif (item && item.canvas) {\r\n\t\t\t// Support for any object associated to a canvas (including a context2d)\r\n\t\t\titem = item.canvas;\r\n\t\t}\r\n\r\n\t\treturn item && item.getContext('2d') || null;\r\n\t}\r\n};\n\nvar platform_dom = \"/*\\r\\n * DOM element rendering detection\\r\\n * https://davidwalsh.name/detect-node-insertion\\r\\n */\\r\\n@keyframes chartjs-render-animation {\\r\\n\\tfrom { opacity: 0.99; }\\r\\n\\tto { opacity: 1; }\\r\\n}\\r\\n\\r\\n.chartjs-render-monitor {\\r\\n\\tanimation: chartjs-render-animation 0.001s;\\r\\n}\\r\\n\\r\\n/*\\r\\n * DOM element resizing detection\\r\\n * https://github.com/marcj/css-element-queries\\r\\n */\\r\\n.chartjs-size-monitor,\\r\\n.chartjs-size-monitor-expand,\\r\\n.chartjs-size-monitor-shrink {\\r\\n\\tposition: absolute;\\r\\n\\tdirection: ltr;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n\\tright: 0;\\r\\n\\tbottom: 0;\\r\\n\\toverflow: hidden;\\r\\n\\tpointer-events: none;\\r\\n\\tvisibility: hidden;\\r\\n\\tz-index: -1;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-expand > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 1000000px;\\r\\n\\theight: 1000000px;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\\r\\n.chartjs-size-monitor-shrink > div {\\r\\n\\tposition: absolute;\\r\\n\\twidth: 200%;\\r\\n\\theight: 200%;\\r\\n\\tleft: 0;\\r\\n\\ttop: 0;\\r\\n}\\r\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\r\nvar CSS_PREFIX = 'chartjs-';\r\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\r\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\r\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\r\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\r\n\r\n/**\r\n * DOM event types -> Chart.js event types.\r\n * Note: only events with different types are mapped.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\r\n */\r\nvar EVENT_TYPES = {\r\n\ttouchstart: 'mousedown',\r\n\ttouchmove: 'mousemove',\r\n\ttouchend: 'mouseup',\r\n\tpointerenter: 'mouseenter',\r\n\tpointerdown: 'mousedown',\r\n\tpointermove: 'mousemove',\r\n\tpointerup: 'mouseup',\r\n\tpointerleave: 'mouseout',\r\n\tpointerout: 'mouseout'\r\n};\r\n\r\n/**\r\n * The \"used\" size is the final value of a dimension property after all calculations have\r\n * been performed. This method uses the computed style of `element` but returns undefined\r\n * if the computed style is not expressed in pixels. That can happen in some cases where\r\n * `element` has a size relative to its parent and this last one is not yet displayed,\r\n * for example because of `display: none` on a parent node.\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\r\n * @returns {number} Size in pixels or undefined if unknown.\r\n */\r\nfunction readUsedSize(element, property) {\r\n\tvar value = helpers$1.getStyle(element, property);\r\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\r\n\treturn matches ? Number(matches[1]) : undefined;\r\n}\r\n\r\n/**\r\n * Initializes the canvas style and render size without modifying the canvas display size,\r\n * since responsiveness is handled by the controller.resize() method. The config is used\r\n * to determine the aspect ratio to apply in case no explicit height has been specified.\r\n */\r\nfunction initCanvas(canvas, config) {\r\n\tvar style = canvas.style;\r\n\r\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\r\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\r\n\tvar renderHeight = canvas.getAttribute('height');\r\n\tvar renderWidth = canvas.getAttribute('width');\r\n\r\n\t// Chart.js modifies some canvas values that we want to restore on destroy\r\n\tcanvas[EXPANDO_KEY] = {\r\n\t\tinitial: {\r\n\t\t\theight: renderHeight,\r\n\t\t\twidth: renderWidth,\r\n\t\t\tstyle: {\r\n\t\t\t\tdisplay: style.display,\r\n\t\t\t\theight: style.height,\r\n\t\t\t\twidth: style.width\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t// Force canvas to display as block to avoid extra space caused by inline\r\n\t// elements, which would interfere with the responsive resize process.\r\n\t// https://github.com/chartjs/Chart.js/issues/2538\r\n\tstyle.display = style.display || 'block';\r\n\r\n\tif (renderWidth === null || renderWidth === '') {\r\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\r\n\t\tif (displayWidth !== undefined) {\r\n\t\t\tcanvas.width = displayWidth;\r\n\t\t}\r\n\t}\r\n\r\n\tif (renderHeight === null || renderHeight === '') {\r\n\t\tif (canvas.style.height === '') {\r\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\r\n\t\t\t// which one can be specified by the user but also by charts as default option\r\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\r\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\r\n\t\t} else {\r\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\r\n\t\t\tif (displayWidth !== undefined) {\r\n\t\t\t\tcanvas.height = displayHeight;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\treturn canvas;\r\n}\r\n\r\n/**\r\n * Detects support for options object argument in addEventListener.\r\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\r\n * @private\r\n */\r\nvar supportsEventListenerOptions = (function() {\r\n\tvar supports = false;\r\n\ttry {\r\n\t\tvar options = Object.defineProperty({}, 'passive', {\r\n\t\t\t// eslint-disable-next-line getter-return\r\n\t\t\tget: function() {\r\n\t\t\t\tsupports = true;\r\n\t\t\t}\r\n\t\t});\r\n\t\twindow.addEventListener('e', null, options);\r\n\t} catch (e) {\r\n\t\t// continue regardless of error\r\n\t}\r\n\treturn supports;\r\n}());\r\n\r\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\r\n// https://github.com/chartjs/Chart.js/issues/4287\r\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\r\n\r\nfunction addListener(node, type, listener) {\r\n\tnode.addEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction removeListener(node, type, listener) {\r\n\tnode.removeEventListener(type, listener, eventListenerOptions);\r\n}\r\n\r\nfunction createEvent(type, chart, x, y, nativeEvent) {\r\n\treturn {\r\n\t\ttype: type,\r\n\t\tchart: chart,\r\n\t\tnative: nativeEvent || null,\r\n\t\tx: x !== undefined ? x : null,\r\n\t\ty: y !== undefined ? y : null,\r\n\t};\r\n}\r\n\r\nfunction fromNativeEvent(event, chart) {\r\n\tvar type = EVENT_TYPES[event.type] || event.type;\r\n\tvar pos = helpers$1.getRelativePosition(event, chart);\r\n\treturn createEvent(type, chart, pos.x, pos.y, event);\r\n}\r\n\r\nfunction throttled(fn, thisArg) {\r\n\tvar ticking = false;\r\n\tvar args = [];\r\n\r\n\treturn function() {\r\n\t\targs = Array.prototype.slice.call(arguments);\r\n\t\tthisArg = thisArg || this;\r\n\r\n\t\tif (!ticking) {\r\n\t\t\tticking = true;\r\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\r\n\t\t\t\tticking = false;\r\n\t\t\t\tfn.apply(thisArg, args);\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction createDiv(cls) {\r\n\tvar el = document.createElement('div');\r\n\tel.className = cls || '';\r\n\treturn el;\r\n}\r\n\r\n// Implementation based on https://github.com/marcj/css-element-queries\r\nfunction createResizer(handler) {\r\n\tvar maxSize = 1000000;\r\n\r\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\r\n\t// https://github.com/chartjs/Chart.js/issues/5902\r\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\r\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\r\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\r\n\r\n\texpand.appendChild(createDiv());\r\n\tshrink.appendChild(createDiv());\r\n\r\n\tresizer.appendChild(expand);\r\n\tresizer.appendChild(shrink);\r\n\tresizer._reset = function() {\r\n\t\texpand.scrollLeft = maxSize;\r\n\t\texpand.scrollTop = maxSize;\r\n\t\tshrink.scrollLeft = maxSize;\r\n\t\tshrink.scrollTop = maxSize;\r\n\t};\r\n\r\n\tvar onScroll = function() {\r\n\t\tresizer._reset();\r\n\t\thandler();\r\n\t};\r\n\r\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\r\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\r\n\r\n\treturn resizer;\r\n}\r\n\r\n// https://davidwalsh.name/detect-node-insertion\r\nfunction watchForRender(node, handler) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\tvar proxy = expando.renderProxy = function(e) {\r\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\r\n\t\t\thandler();\r\n\t\t}\r\n\t};\r\n\r\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\taddListener(node, type, proxy);\r\n\t});\r\n\r\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\r\n\t// is removed then added back immediately (same animation frame?). Accessing the\r\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\r\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\r\n\t// https://github.com/chartjs/Chart.js/issues/4737\r\n\texpando.reflow = !!node.offsetParent;\r\n\r\n\tnode.classList.add(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction unwatchForRender(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar proxy = expando.renderProxy;\r\n\r\n\tif (proxy) {\r\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\r\n\t\t\tremoveListener(node, type, proxy);\r\n\t\t});\r\n\r\n\t\tdelete expando.renderProxy;\r\n\t}\r\n\r\n\tnode.classList.remove(CSS_RENDER_MONITOR);\r\n}\r\n\r\nfunction addResizeListener(node, listener, chart) {\r\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\r\n\r\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\r\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\r\n\t\t\tvar w = container ? container.clientWidth : 0;\r\n\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\r\n\t\t\t\t// If the container size shrank during chart resize, let's assume\r\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\r\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\r\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\r\n\t\t\t\t// events are ignored during this whole 2 resize process.\r\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\r\n\t\t\t\t// twice in a frame (potential performance issue)\r\n\t\t\t\tlistener(createEvent('resize', chart));\r\n\t\t\t}\r\n\t\t}\r\n\t}));\r\n\r\n\t// The resizer needs to be attached to the node parent, so we first need to be\r\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\r\n\twatchForRender(node, function() {\r\n\t\tif (expando.resizer) {\r\n\t\t\tvar container = node.parentNode;\r\n\t\t\tif (container && container !== resizer.parentNode) {\r\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\r\n\t\t\t}\r\n\r\n\t\t\t// The container size might have changed, let's reset the resizer state.\r\n\t\t\tresizer._reset();\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction removeResizeListener(node) {\r\n\tvar expando = node[EXPANDO_KEY] || {};\r\n\tvar resizer = expando.resizer;\r\n\r\n\tdelete expando.resizer;\r\n\tunwatchForRender(node);\r\n\r\n\tif (resizer && resizer.parentNode) {\r\n\t\tresizer.parentNode.removeChild(resizer);\r\n\t}\r\n}\r\n\r\n/**\r\n * Injects CSS styles inline if the styles are not already present.\r\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the