{"version":3,"file":"Scripts/main.js","mappings":"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","sources":["webpack://opten.larrson.rosenquist/./app/components/consortia.ts","webpack://opten.larrson.rosenquist/./app/components/filter-helper.ts","webpack://opten.larrson.rosenquist/./app/components/filter.ts","webpack://opten.larrson.rosenquist/./app/components/input.ts","webpack://opten.larrson.rosenquist/./app/components/interactive-svg.ts","webpack://opten.larrson.rosenquist/./app/components/keyvalue-chain.ts","webpack://opten.larrson.rosenquist/./app/components/modal.ts","webpack://opten.larrson.rosenquist/./app/components/navigation.ts","webpack://opten.larrson.rosenquist/./app/components/player.ts","webpack://opten.larrson.rosenquist/./app/components/scroll-to.ts","webpack://opten.larrson.rosenquist/./app/components/slider.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/animation/linear-tween/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/collapse/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/collapse/initializer/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/factory/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/metadata/component.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/reflector/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/resolver/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/util/decorators.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/util/factories.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/compiler/util/type.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/add-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/as-html-element/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/change-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/class-regex/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/get-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/get-selector-element-from-element/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/get-selector-from-element/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/get-window-scroll-top/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/has-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/is-html-element/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/remove-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/dom/toggle-class/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/events/dispatch-custom-event/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/events/event-namespace-factory/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/player/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/scroll/scroll-to-element/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/scroll/scroll-to-offset/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/scroll/scroll-to/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/transition/add-transition-end-listener/index.ts","webpack://opten.larrson.rosenquist/./node_modules/@opten/transition/get-transition-end-event-name/index.ts","webpack://opten.larrson.rosenquist/./node_modules/dom7/dom7.esm.js","webpack://opten.larrson.rosenquist/./node_modules/ssr-window/ssr-window.esm.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/breakpoints/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/check-overflow/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/classes/addClasses.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/classes/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/classes/removeClasses.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/core.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/defaults.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events-emitter.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onClick.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onResize.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onScroll.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onTouchEnd.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onTouchMove.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/events/onTouchStart.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/grab-cursor/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/images/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/images/loadImage.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/images/preloadImages.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/loop/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/loop/loopCreate.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/loop/loopDestroy.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/loop/loopFix.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/moduleExtendParams.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/modules/observer/observer.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/modules/resize/resize.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideNext.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slidePrev.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideReset.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideTo.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideToClosest.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/slide/slideToLoop.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/transition/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/transition/setTransition.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/transition/transitionEmit.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/transition/transitionEnd.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/transition/transitionStart.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/getTranslate.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/maxTranslate.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/minTranslate.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/setTranslate.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/translate/translateTo.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/index.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateProgress.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateSize.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateSlides.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/a11y/a11y.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/controller/controller.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/grid/grid.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/history/history.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/lazy/lazy.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/manipulation.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/navigation/navigation.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/pagination/pagination.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/parallax/parallax.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/virtual/virtual.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/modules/zoom/zoom.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/classes-to-selector.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/create-shadow.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/dom.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/effect-init.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/effect-target.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/get-browser.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/get-device.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/get-support.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/shared/utils.js","webpack://opten.larrson.rosenquist/./node_modules/swiper/swiper.esm.js","webpack://opten.larrson.rosenquist/webpack/bootstrap","webpack://opten.larrson.rosenquist/./app/main.ts","webpack://opten.larrson.rosenquist/./app/main.scss?ddbf"],"sourcesContent":["import { Component } from '@opten/compiler/metadata/component';\nimport { addClass } from '@opten/dom/add-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\n@Component({ className: 'js-consortia' })\nexport class ConsortiaComponent {\n\tconsortia: HTMLElement[];\n\ttitleElement: HTMLElement;\n\ttextElement: HTMLElement;\n\tmainTitle: string;\n\tmainTitleElement: HTMLElement;\n\n\tconstructor(private element: HTMLElement) {\n\t\tthis.consortia = Array.from(\n\t\t\telement.getElementsByClassName('js-consortium')\n\t\t).map(o => o);\n\t\tthis.titleElement = (\n\t\t\telement.getElementsByClassName('js-consortium-title')[0]\n\t\t);\n\t\tthis.textElement = (\n\t\t\telement.getElementsByClassName('js-consortium-text')[0]\n\t\t);\n\t\tthis.mainTitleElement = (\n\t\t\telement.getElementsByClassName('js-consortium-main-title')[0]\n\t\t);\n\n\t\tthis.consortia.forEach(consortium => {\n\t\t\tconsortium.addEventListener('mouseover', () => {\n\t\t\t\tlet consortiumData = (\n\t\t\t\t\tconsortium.getElementsByClassName('js-consortium-data')[0]\n\t\t\t\t);\n\t\t\t\tthis.textElement.innerHTML = consortiumData.dataset.text;\n\t\t\t\tthis.titleElement.innerHTML = consortiumData.dataset.title;\n\t\t\t\tif (this.mainTitleElement) {\n\t\t\t\t\tthis.mainTitleElement.style.display = 'none';\n\t\t\t\t}\n\n\t\t\t\tlet contents = Array.from(\n\t\t\t\t\tconsortium.getElementsByClassName('js-consortium-content')\n\t\t\t\t);\n\n\t\t\t\tcontents.forEach(content => {\n\t\t\t\t\taddClass(content, 'is-visible');\n\t\t\t\t});\n\t\t\t});\n\t\t\tconsortium.addEventListener('mouseleave', () => {\n\t\t\t\tthis.textElement.innerHTML = '';\n\t\t\t\tthis.titleElement.innerHTML = '';\n\t\t\t\tif (this.mainTitleElement) {\n\t\t\t\t\tthis.mainTitleElement.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tlet contents = Array.from(\n\t\t\t\t\tconsortium.getElementsByClassName('js-consortium-content')\n\t\t\t\t);\n\n\t\t\t\tcontents.forEach(content => {\n\t\t\t\t\tremoveClass(content, 'is-visible');\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tdeactivateAll() {\n\t\tthis.consortia.forEach((consortium, index) => {\n\t\t\tArray.from(\n\t\t\t\tconsortium.getElementsByClassName('js-consortium-content')\n\t\t\t).forEach(consortium => {\n\t\t\t\tremoveClass(consortium, 'is-visible');\n\t\t\t});\n\t\t});\n\t}\n}\n","import { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\nimport { toggleClass } from '@opten/dom/toggle-class';\n\nexport interface FilterHelperOptions {\n\tfilterControlSelector?: string;\n\tfilterFormSelector?: string;\n\tonSubmit?: () => void;\n\tonReset?: () => void;\n\tonRemoveFilter?: (value, name) => void;\n}\n\nexport class FilterHelper {\n\tstatic defaults: FilterHelperOptions = {\n\t\tfilterControlSelector: '.js-filter-control',\n\t\tfilterFormSelector: '.js-filter-form',\n\t\tonSubmit: () => {},\n\t\tonReset: () => {},\n\t\tonRemoveFilter: (value, name) => {},\n\t};\n\n\tform: HTMLFormElement;\n\temptyState: HTMLElement;\n\ttagContainer: HTMLElement;\n\tfilters: HTMLInputElement[];\n\tsearch: HTMLInputElement;\n\n\tprivate filterGroups: any = {};\n\n\toptions: FilterHelperOptions;\n\n\ttags: HTMLElement[] = [];\n\tprivate tagTemplate: HTMLElement;\n\n\tprivate modals: HTMLElement[];\n\n\tconstructor(private element: HTMLElement, options?: FilterHelperOptions) {\n\t\tthis.options = { ...FilterHelper.defaults, ...options };\n\n\t\tthis.form = hasClass(\n\t\t\telement,\n\t\t\tthis.options.filterFormSelector.substring(1)\n\t\t)\n\t\t\t? (element as HTMLFormElement)\n\t\t\t: (element.querySelector(\n\t\t\t\t\tthis.options.filterFormSelector\n\t\t\t ) as HTMLFormElement);\n\t\tthis.emptyState = element.getElementsByClassName(\n\t\t\t'js-filter-empty-state'\n\t\t)[0] as HTMLElement;\n\t\tthis.modals = Array.from(\n\t\t\telement.getElementsByClassName('js-modal')\n\t\t) as HTMLElement[];\n\t\tthis.filters = Array.from(\n\t\t\telement.querySelectorAll(this.options.filterControlSelector)\n\t\t) as HTMLInputElement[];\n\t\tthis.search = element.getElementsByClassName(\n\t\t\t'js-filter-search'\n\t\t)[0] as HTMLInputElement;\n\t\tthis.tagContainer = element.getElementsByClassName(\n\t\t\t'js-filter-tag-container'\n\t\t)[0] as HTMLElement;\n\t\tthis.tagTemplate = element.getElementsByClassName(\n\t\t\t'js-filter-tag'\n\t\t)[0] as HTMLElement;\n\n\t\tthis.form.addEventListener('reset', (e) => {\n\t\t\tthis.closeModal();\n\t\t\tthis.tags.forEach((tag) => {\n\t\t\t\tthis.removeFilterItem(tag);\n\t\t\t});\n\t\t\tif (this.search) {\n\t\t\t\tthis.search.value = '';\n\t\t\t}\n\t\t\tthis.toggleEmptyState(false);\n\t\t\tthis.options.onReset();\n\t\t});\n\n\t\tthis.form.addEventListener('submit', (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.closeModal();\n\t\t\tthis.options.onSubmit();\n\t\t});\n\n\t\tthis.filters.forEach((filter) => {\n\t\t\tif (filter.type === 'checkbox') {\n\t\t\t\tconst self = filter.getAttribute('data-self');\n\t\t\t\tconst connected = filter.getAttribute('data-connected');\n\t\t\t\tif (connected) {\n\t\t\t\t\tif (this.filterGroups[connected]) {\n\t\t\t\t\t\tthis.filterGroups[connected].push(filter);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.filterGroups[connected] = [filter];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tconst filterSame = this.filters.filter(\n\t\t\t\t\t(o) => o.name === filter.name\n\t\t\t\t);\n\t\t\t\tconst filterAll = filterSame.filter((o) => o.value === '');\n\t\t\t\tfilter.addEventListener('change', (e) => {\n\t\t\t\t\tif (this.filterGroups[self]) {\n\t\t\t\t\t\tthis.filterGroups[self].filter(\n\t\t\t\t\t\t\t(o) => (o.checked = filter.checked)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (connected) {\n\t\t\t\t\t\tconst target = this.filters.find(\n\t\t\t\t\t\t\t(o) => o.getAttribute('data-self') === connected\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (target) {\n\t\t\t\t\t\t\tif (filter.checked) {\n\t\t\t\t\t\t\t\ttarget.checked = this.filters\n\t\t\t\t\t\t\t\t\t.filter(\n\t\t\t\t\t\t\t\t\t\t(o) =>\n\t\t\t\t\t\t\t\t\t\t\to.getAttribute('data-connected') ===\n\t\t\t\t\t\t\t\t\t\t\tconnected\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t.every((o) => o.checked);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttarget.checked = false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (filter.value === '' && filter.checked) {\n\t\t\t\t\t\tfilterSame.filter((o) => (o.checked = false));\n\t\t\t\t\t}\n\t\t\t\t\tif (filterAll && filterAll.length > 0) {\n\t\t\t\t\t\tfilterAll.forEach((all) => {\n\t\t\t\t\t\t\tall.checked =\n\t\t\t\t\t\t\t\tfilterSame.some(\n\t\t\t\t\t\t\t\t\t(o) =>\n\t\t\t\t\t\t\t\t\t\to.checked ||\n\t\t\t\t\t\t\t\t\t\t(o.checked && o.value === '')\n\t\t\t\t\t\t\t\t) === false;\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tupdateTags() {\n\t\tif (this.tagContainer) {\n\t\t\tthis.tags = [];\n\t\t\tthis.tagContainer.innerHTML = '';\n\t\t\tconst data = new FormData(this.form);\n\t\t\tfor (const [name, value] of data) {\n\t\t\t\tif (value && value !== '') {\n\t\t\t\t\tconst filter = this.filters.find(\n\t\t\t\t\t\t(o) => o.name === name && o.value === value\n\t\t\t\t\t);\n\t\t\t\t\tconst title = filter\n\t\t\t\t\t\t? filter.getAttribute('data-title')\n\t\t\t\t\t\t: '';\n\t\t\t\t\tif (title) {\n\t\t\t\t\t\tthis.addFilterItem(title, name, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttoggleClass(this.element, 'has-filters', this.tags.length > 0);\n\t\t}\n\t}\n\n\taddFilterItem(title, name, value) {\n\t\tconst temp = document.createElement('div');\n\t\tlet tag = this.tagTemplate.cloneNode(true) as HTMLElement;\n\t\tremoveClass(tag, 'd-none');\n\t\ttag.setAttribute('data-name', name);\n\t\ttag.setAttribute('data-value', value);\n\t\ttemp.appendChild(tag);\n\t\ttag.outerHTML = tag.outerHTML.replace(/{title}/g, title);\n\t\ttag = (temp.firstChild || temp.firstElementChild) as HTMLElement;\n\t\tthis.tagContainer.appendChild(tag);\n\t\tthis.tags.push(tag);\n\n\t\ttag.addEventListener('click', (e) => {\n\t\t\te.preventDefault();\n\t\t\tthis.removeFilterItem(tag);\n\t\t});\n\t}\n\n\tremoveFilterItem(tag) {\n\t\tconst name = tag.getAttribute('data-name');\n\t\tconst value = tag.getAttribute('data-value');\n\t\tconst filter = this.filters.find(\n\t\t\t(o) => o.name === name && o.value === value\n\t\t);\n\t\tif (filter) {\n\t\t\tfilter.value = filter.defaultValue;\n\t\t\tfilter.checked = false;\n\t\t}\n\t\tthis.options.onRemoveFilter(value, name);\n\t}\n\n\ttoggleEmptyState(show = false) {\n\t\tif (this.emptyState) {\n\t\t\ttoggleClass(this.emptyState, 'd-none', show);\n\t\t}\n\t}\n\n\tprivate closeModal() {\n\t\tif (this.modals.length) {\n\t\t\tthis.modals.forEach((modal) => {\n\t\t\t\tremoveClass(modal, 'is-open');\n\t\t\t});\n\t\t}\n\t}\n}\n","import { Collapse } from '@opten/collapse/initializer';\nimport { Component } from '@opten/compiler/metadata/component';\n\nimport { FilterHelper } from './filter-helper';\n\ndeclare const mixitup: any;\n\n@Component({ className: 'js-filter' })\nexport class FilterComponent {\n\tprivate filter: FilterHelper;\n\n\tprivate mixer: any;\n\tprivate targetSelector = '.js-filter-item';\n\tprivate sortSelector = '.js-filter-sort';\n\tprivate pageListSelector = '.js-filter-page-list';\n\tprivate sortControls: HTMLElement[];\n\tprivate pageList: HTMLElement;\n\tprivate pageLimit: number = 5;\n\tprivate pagerControls: HTMLElement[];\n\n\tconstructor(private element: HTMLElement) {\n\t\tthis.pageList = this.element.querySelector(\n\t\t\t'.js-filter-page-list'\n\t\t) as HTMLElement;\n\t\tthis.sortControls = Array.from(\n\t\t\tthis.element.querySelectorAll(this.sortSelector)\n\t\t) as HTMLElement[];\n\n\t\tthis.filter = new FilterHelper(this.element, {\n\t\t\tonReset: () => {\n\t\t\t\tthis.mixer.filter('all');\n\t\t\t},\n\t\t\tonRemoveFilter: (value, name) => {\n\t\t\t\tconst activeFilter = this.mixer.getFilterGroupSelectors(name);\n\t\t\t\tthis.mixer.setFilterGroupSelectors(\n\t\t\t\t\tname,\n\t\t\t\t\tactiveFilter.filter((o) => o !== value)\n\t\t\t\t);\n\t\t\t\tthis.mixer.parseFilterGroups();\n\t\t\t},\n\t\t});\n\n\t\tlet options: any = {\n\t\t\tselectors: {\n\t\t\t\ttarget: this.targetSelector,\n\t\t\t\tcontrol: this.filter.options.filterControlSelector,\n\t\t\t},\n\t\t\tcontrols: {\n\t\t\t\tscope: 'local',\n\t\t\t\ttoggleLogic: 'and',\n\t\t\t\tenable: false,\n\t\t\t},\n\t\t\tmultifilter: {\n\t\t\t\tenable: true,\n\t\t\t\tparseOn: 'submit', //'change',\n\t\t\t},\n\t\t\tcallbacks: {\n\t\t\t\tonParseFilterGroups: (command) => {\n\t\t\t\t\tthis.filter.updateTags();\n\t\t\t\t\treturn command;\n\t\t\t\t},\n\t\t\t\tonMixStart: (state, futureState) => {\n\t\t\t\t\tthis.filter.toggleEmptyState(futureState.totalShow > 0);\n\t\t\t\t},\n\t\t\t\tonMixEnd: (state) => {\n\t\t\t\t\tthis.filter.toggleEmptyState(state.totalShow > 0);\n\t\t\t\t},\n\t\t\t\tonMixClick: (state, originalEvent) => {\n\t\t\t\t\tif (originalEvent.target.closest(this.filter.options.filterControlSelector).getAttribute('data-filter')) {\n\t\t\t\t\t\toriginalEvent.preventDefault();\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tthis.mixer.parseFilterGroups();\n\t\t\t\t\t\t}, 500);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\t\tif (this.pageList) {\n\t\t\tthis.pageLimit = parseInt(this.pageList.getAttribute('data-limit') || this.pageLimit.toString());\n\t\t\toptions = this.mergeDeep(options, {\n\t\t\t\tselectors: {\n\t\t\t\t\tpageList: this.pageListSelector,\n\t\t\t\t},\n\t\t\t\tclassNames: {\n\t\t\t\t\telementPager: 'pager',\n\t\t\t\t},\n\t\t\t\tpagination: {\n\t\t\t\t\tlimit: this.pageLimit,\n\t\t\t\t\tmaintainActivePage: false,\n\t\t\t\t\thidePageListIfSinglePage: true,\n\t\t\t\t\tgeneratePageStats: false,\n\t\t\t\t},\n\t\t\t\ttemplates: {\n\t\t\t\t\tpagerPrev:\n\t\t\t\t\t\t'',\n\t\t\t\t\tpagerNext:\n\t\t\t\t\t\t'',\n\t\t\t\t},\n\t\t\t\tcallbacks: {\n\t\t\t\t\tonMixEnd: (state) => {\n\t\t\t\t\t\tthis.initPager();\n\t\t\t\t\t\tthis.filter.toggleEmptyState(state.totalShow > 0);\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tthis.mixer = mixitup(this.element, options);\n\n\t\tif (this.sortControls.length > 0) {\n\t\t\tthis.sortControls.forEach((sort) => {\n\t\t\t\tsort.addEventListener('click', (e) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tthis.mixer.sort(sort.getAttribute('data-sort'));\n\t\t\t\t\tthis.sortControls.forEach((control) => {\n\t\t\t\t\t\tconst input = control.querySelector('input');\n\t\t\t\t\t\tif (input) {\n\t\t\t\t\t\t\tinput.checked = sort == control;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tconst params = new URL(document.location).searchParams;\n\t\tif (params) {\n\t\t\tconst events = {};\n\t\t\tparams.forEach((value, key) => {\n\t\t\t\tconst filter = this.filter.filters.find(\n\t\t\t\t\t(o) => (o.name == key && o.value == value)\n\t\t\t\t);\n\t\t\t\tconst filterLink = this.filter.filters.find(\n\t\t\t\t\t(o) => (o.tagName != 'checkbox' && o.getAttribute('data-filter') == value)\n\t\t\t\t) as HTMLElement;\n\t\t\t\tif (filterLink) {\n\t\t\t\t\tconst t = events[key];\n\t\t\t\t\tif (t) {\n\t\t\t\t\t\tt.push(value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tevents[key] = [value];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (filter) {\n\t\t\t\t\tconst t = events[filter.name];\n\t\t\t\t\tif (t) {\n\t\t\t\t\t\tt.push(filter.value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tevents[filter.name] = [filter.value];\n\t\t\t\t\t}\n\t\t\t\t\tfilter.checked = true;\n\t\t\t\t\tconst changeEvent = new Event('change', {\n\t\t\t\t\t\tbubbles: false,\n\t\t\t\t\t\tcancelable: true,\n\t\t\t\t\t});\n\t\t\t\t\tfilter.dispatchEvent(changeEvent);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (Object.keys(events).length > 0) {\n\t\t\t\tObject.keys(events).forEach((key) => {\n\t\t\t\t\tthis.mixer.setFilterGroupSelectors(key, events[key]);\n\t\t\t\t});\n\t\t\t\tthis.mixer.parseFilterGroups();\n\t\t\t}\n\t\t}\n\n\t\tthis.initPager();\n\t}\n\n\tprivate initPager() {\n\t\tif (this.pageList) {\n\t\t\tthis.pagerControls = Array.from(\n\t\t\t\tthis.pageList.querySelectorAll('.mixitup-pager')\n\t\t\t) as HTMLElement[];\n\t\t\tthis.pagerControls.forEach((control) => {\n\t\t\t\tconst dataPage = control.getAttribute('data-page');\n\t\t\t\tcontrol.addEventListener('click', (e) => {\n\t\t\t\t\tthis.mixer.paginate(dataPage);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate mergeDeep(target, ...sources) {\n\t\tif (!sources.length) return target;\n\t\tconst source = sources.shift();\n\n\t\tif (this.isObject(target) && this.isObject(source)) {\n\t\t\tfor (const key in source) {\n\t\t\t\tif (this.isObject(source[key])) {\n\t\t\t\t\tif (!target[key]) Object.assign(target, { [key]: {} });\n\t\t\t\t\tthis.mergeDeep(target[key], source[key]);\n\t\t\t\t} else {\n\t\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.mergeDeep(target, ...sources);\n\t}\n\n\tprivate isObject(item) {\n\t\treturn item && typeof item === 'object' && !Array.isArray(item);\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { toggleClass } from '@opten/dom/toggle-class';\n\n@Component({ className: 'js-input' })\nexport class InputComponent {\n\tprivate formField: HTMLElement;\n\tprivate labels: HTMLElement[];\n\tprivate hasValueClass = 'has-value';\n\tprivate isActiveClass = 'is-active';\n\n\tconstructor(private input: HTMLInputElement) {\n\t\tthis.formField = input.closest('.c-formfield') as HTMLElement;\n\t\tthis.labels = Array.from(\n\t\t\tinput\n\t\t\t\t.closest('form')\n\t\t\t\t.querySelectorAll(`[data-group=\"${this.input.name}\"]`)\n\t\t) as HTMLElement[];\n\n\t\tinput.addEventListener('change', () => this.setValueClass());\n\t\tinput.addEventListener('input', () => this.setValueClass());\n\n\t\tthis.setValueClass();\n\t}\n\n\tprivate setValueClass() {\n\t\tconst data =\n\t\t\tthis.input.placeholder ||\n\t\t\tthis.input.value ||\n\t\t\tthis.input.type == 'date' ||\n\t\t\tthis.input.type == 'time';\n\t\ttoggleClass(\n\t\t\tthis.formField,\n\t\t\tthis.hasValueClass,\n\t\t\t!!data\n\t\t);\n\t\tthis.updateInputHeight();\n\t\tif (this.labels && this.labels.length > 0) {\n\t\t\tlet value = this.input.value;\n\t\t\tif (\n\t\t\t\tthis.input.type.toLowerCase() === 'radio' ||\n\t\t\t\tthis.input.type.toLowerCase() === 'checkbox'\n\t\t\t) {\n\t\t\t\tvalue = this.input.checked ? this.input.value : '';\n\t\t\t}\n\t\t\tthis.labels.forEach((label) => {\n\t\t\t\tconst isActiveClass =\n\t\t\t\t\tlabel.getAttribute('data-active-class') ||\n\t\t\t\t\tthis.isActiveClass;\n\t\t\t\tconst htmlFor = label.htmlFor || label.getAttribute('data-for');\n\t\t\t\ttoggleClass(\n\t\t\t\t\tlabel,\n\t\t\t\t\tisActiveClass,\n\t\t\t\t\tvalue && htmlFor == this.input.id\n\t\t\t\t);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate updateInputHeight() {\n\t\tif (this.input.tagName.toLowerCase() === 'textarea') {\n\t\t\tthis.input.style.height = '';\n\t\t\tthis.input.style.height = this.input.scrollHeight + 2 + 'px';\n\t\t}\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { addClass } from '@opten/dom/add-class';\n\n@Component({ className: 'js-interactive-svg' })\nexport class InteractiveSvgComponent {\n\tconstructor(private element: HTMLElement) {\n\t\tconst svg = this.element.querySelector('svg') as SVGElement;\n\t\tconst items = Array.from(\n\t\t\tthis.element.querySelectorAll('.js-interactive-svg-item')\n\t\t) as HTMLElement[];\n\n\t\tif (svg && items && items.length > 0) {\n\t\t\titems.forEach(item => {\n\t\t\t\tconst svgItem = svg.querySelector(\n\t\t\t\t\t`[id*='${item.getAttribute('data-svg')}']`\n\t\t\t\t);\n\t\t\t\tif (svgItem) {\n\t\t\t\t\taddClass(svgItem, 'has-link');\n\t\t\t\t\tsvgItem.addEventListener('click', e =>\n\t\t\t\t\t\tthis.open(item, svgItem)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate open(item, svgItem) {\n\t\titem.click();\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { Collapse } from '@opten/collapse/initializer';\nimport { addClass } from '@opten/dom/add-class';\n\n@Component({ className: 'js-keyvaluechain-collapse' })\nexport class KeyvaluechainCollapseComponent {\n collapse: Collapse;\n constructor(private element: HTMLElement) {\n this.init();\n // TODO: debounce\n window.addEventListener('resize', () => {\n console.log(window.innerWidth)\n this.init();\n });\n }\n\n private init() {\n this.reset();\n if (this.isMobile() && this.element.hasAttribute('data-mobile')) {\n this.collapse = new Collapse(this.element, { dataTargetSelector: \"data-mobile-target\" });\n } else if (!this.isMobile() && this.element.hasAttribute('data-desktop')) {\n this.collapse = new Collapse(this.element, { dataTargetSelector: \"data-desktop-target\" });\n }\n }\n\n private reset() {\n this.collapse?.destroy();\n addClass(this.element, 'collapse');\n }\n\n // TODO: define correct breakpoint\n private isMobile = () => window.innerWidth < 1000;\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\nimport { toggleClass } from '@opten/dom/toggle-class';\n\n@Component({ className: 'js-modal' })\nexport class ModalComponent {\n\tprivate triggers: HTMLElement[];\n\n\tconstructor(private element: HTMLElement) {\n\t\tthis.triggers = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`[href=\"#${this.element.id}\"], [data-target=\"#${this.element.id}\"]`\n\t\t\t)\n\t\t);\n\n\t\tthis.triggers.forEach(trigger => {\n\t\t\ttrigger.addEventListener('click', e => {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\ttoggleClass(this.element, 'is-open');\n\t\t\t});\n\t\t});\n\n\t\tdocument.addEventListener('click', e => {\n\t\t\tif (\n\t\t\t\thasClass(this.element, 'is-open') &&\n\t\t\t\t(!e.target.closest('.c-modal__inner') ||\n\t\t\t\t\te.target.closest('.js-modal-close'))\n\t\t\t) {\n\t\t\t\te.preventDefault();\n\t\t\t\tremoveClass(this.element, 'is-open');\n\t\t\t}\n\t\t});\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { addClass } from '@opten/dom/add-class';\nimport { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\n\n@Component({ className: 'js-navigation' })\nexport class Navigation {\n\tprivate toggler : Element;\n\tprivate collapse : Element;\n\tconstructor(private element: HTMLElement) {\n\t\tthis.Init(element);\n\t}\n\n\tprivate Init(Element: HTMLElement) {\n\t\twindow.addEventListener('resize', () => this.HandleResize());\n\t\tthis.toggler = this.element.getElementsByClassName('js-navigation-toggler')[0];\n\t\tthis.collapse = this.element.getElementsByClassName('js-collapse')[0];\n\t\t\tthis.toggler.addEventListener('click', () => {\n\t\t\t\tif (hasClass(Element, 'is-open')) {\n\t\t\t\t\tremoveClass(this.element, 'is-open');\n\t\t\t\t} else {\n\t\t\t\t\taddClass(this.element, 'is-open');\n\t\t\t\t}\n\t\t\t});\n\t\tArray.from(\n\t\t\tElement.getElementsByClassName('js-navigation-top-link')\n\t\t).forEach(element => {\n\t\t\telement.addEventListener('click', e => {\n\t\t\t\tif (this.IsMobile() === true) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tArray.from(Element.getElementsByClassName('js-navigation-top')).forEach(\n\t\t\telement => {\n\t\t\t\telement.addEventListener('click', e => {\n\t\t\t\t\tthis.RenderMobileSubnav(element);\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\tprivate RenderMobileSubnav(TopElement: Element) {\n\t\tlet subnav = TopElement.getElementsByClassName('js-navigation-sub')[0];\n\t\tif (subnav !== null && subnav !== undefined && subnav) {\n\t\t\tif (this.IsMobile()) {\n\t\t\t\tif (hasClass(subnav, 'd-block')) {\n\t\t\t\t\tremoveClass(subnav, 'd-block');\n\t\t\t\t\taddClass(subnav, 'd-none');\n\t\t\t\t} else {\n\t\t\t\t\tremoveClass(subnav, 'd-none');\n\t\t\t\t\taddClass(subnav, 'd-block');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tremoveClass(subnav, 'd-none');\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate IsMobile() {\n\t\tlet isMobile = getComputedStyle(\n\t\t\tdocument.documentElement\n\t\t).getPropertyValue('--isMobile');\n\t\treturn isMobile == ' yes' || isMobile == 'yes';\n\t}\n\n\tprivate HandleResize() {\n\t\tif(this.IsMobile() == false) {\n\t\t\tremoveClass(this.element, 'is-open');\n\t\t\tremoveClass(this.toggler, 'is-active');\n\t\t\tthis.toggler.setAttribute('aria-expanded','false');\n\t\t\tremoveClass(this.collapse, 'collapse--show');\n\t\t}\n\t}\n}\n\n","import { Component } from '@opten/compiler/metadata/component';\nimport { addClass } from '@opten/dom/add-class';\nimport { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\nimport { IFramePlayer } from '@opten/player';\n\nconst stringIFramePlayer = 'IFramePlayer';\n@Component({ className: 'js-player' })\nexport class IFramePlayerComponent {\n\tprivate player: IFramePlayer;\n\tprivate iFrameElement: HTMLIFrameElement;\n\n\tconstructor(private element: HTMLElement) {\n\t\tthis.player = new IFramePlayer(this.element);\n\t\tthis.iFrameElement = this.element.getElementsByTagName('iframe')[0];\n\t\tif (hasClass(this.element, 'autoplay')) {\n\t\t\tif (this.iFrameElement.src.indexOf('background') != -1) {\n\t\t\t\tthis.play();\n\t\t\t} else {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.play();\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t}\n\t\tthis.element[stringIFramePlayer] = this;\n\t}\n\n\tstatic getInstance(element: HTMLElement) {\n\t\tif (!element) return;\n\t\treturn element[stringIFramePlayer] as IFramePlayerComponent;\n\t}\n\n\tplay() {\n\t\tif (this.iFrameElement.src.indexOf('autoplay') === -1) {\n\t\t\tthis.iFrameElement.src +=\n\t\t\t\tthis.iFrameElement.src.indexOf('?') === -1\n\t\t\t\t\t? '?autoplay=1'\n\t\t\t\t\t: '&autoplay=1';\n\t\t} else {\n\t\t\tthis.iFrameElement.src = this.iFrameElement.src.replace(\n\t\t\t\t'autoplay=0',\n\t\t\t\t'autoplay=1'\n\t\t\t);\n\t\t}\n\t\taddClass(this.element, 'is-playing');\n\t}\n\n\tpause() {\n\t\tif (this.iFrameElement.src.indexOf('autoplay') === -1) {\n\t\t\tthis.iFrameElement.src +=\n\t\t\t\tthis.iFrameElement.src.indexOf('?') === -1\n\t\t\t\t\t? '?autoplay=0'\n\t\t\t\t\t: '&autoplay=0';\n\t\t} else {\n\t\t\tthis.iFrameElement.src = this.iFrameElement.src.replace(\n\t\t\t\t'autoplay=1',\n\t\t\t\t'autoplay=0'\n\t\t\t);\n\t\t}\n\t\tremoveClass(this.element, 'is-playing');\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\nimport { hasClass } from '@opten/dom/has-class';\nimport { scrollToElement } from '@opten/scroll/scroll-to-element';\n\n@Component({ className: 'js-scroll-to' })\nexport class ScrollToComponent {\n\tprivate navbar: HTMLElement;\n\n\tconstructor(private element: HTMLElement) {\n\t\tthis.navbar = document.getElementsByClassName(\n\t\t\t'js-navigation'\n\t\t)[0] as HTMLElement;\n\n\t\telement.addEventListener('click', e => {\n\t\t\te.preventDefault();\n\t\t\tlet target = getSelectorElementFromElement(element);\n\t\t\tconst offsetString = element.getAttribute('data-offset');\n\t\t\tlet offset =\n\t\t\t\toffsetString === 'targetHeight'\n\t\t\t\t\t? target.clientHeight\n\t\t\t\t\t: parseInt(offsetString || '0', 0);\n\t\t\tif (isNaN(offset)) {\n\t\t\t\toffset = 0;\n\t\t\t}\n\t\t\tif (offset === 0) {\n\t\t\t\toffset = this.navbar ? this.navbar.clientHeight * -1 : 0;\n\t\t\t}\n\t\t\tif (hasClass(target, 'js-collapse')) {\n\t\t\t\ttarget = target.parentNode as HTMLElement;\n setTimeout(() => {\n scrollToElement(target, undefined, undefined, offset);\n }, 350);\n\t\t\t} else {\n scrollToElement(target, undefined, undefined, offset);\n }\n\t\t});\n\t}\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport Swiper, { Autoplay, Keyboard, Navigation, Pagination } from 'swiper';\n\nSwiper.use([Keyboard, Autoplay, Navigation, Pagination]);\n\n@Component({ className: 'js-slider' })\nexport class SliderComponent {\n\tpublic swiper: Swiper;\n\n\tconstructor(private element: HTMLElement) {\n\t\tconst delay =\n\t\t\tparseInt(this.element.getAttribute('data-delay') ?? '0') * 1000;\n\t\tthis.swiper = new Swiper(this.element, {\n\t\t\t// autoHeight: true,\n\t\t\tautoplay:\n\t\t\t\tdelay > 0\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tdelay\n\t\t\t\t\t }\n\t\t\t\t\t: false,\n\t\t\tspeed: 1000,\n\t\t\ttouchReleaseOnEdges: true,\n\t\t\tnavigation: {\n\t\t\t\tprevEl: '.swiper-button-prev',\n\t\t\t\tnextEl: '.swiper-button-next'\n\t\t\t},\n\t\t\tpagination: {\n\t\t\t\tel: '.swiper-pagination',\n\t\t\t\tclickable: true\n\t\t\t},\n\t\t\tkeyboard: {\n\t\t\t\tenabled: true,\n\t\t\t\tonlyInViewport: true\n\t\t\t}\n\t\t});\n\t}\n}\n","export function linearTween(\n\ttimeElapsed: number,\n\tstart: number,\n\tdistance: number,\n\tduration: number\n) {\n\treturn (distance * timeElapsed) / duration + start;\n}\n","import { Component } from '@opten/compiler/metadata/component';\nimport { Collapse } from './initializer';\n\n@Component({ className: 'js-collapse' })\nexport class CollapseComponent {\n\tcollapse: Collapse;\n\tconstructor(private element: HTMLElement) {\n\t\tthis.collapse = new Collapse(element, {});\n\t}\n}\n","import { addClass } from '@opten/dom/add-class';\nimport { hasClass } from '@opten/dom/has-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\nimport { getSelectorElementFromElement } from '@opten/dom/get-selector-element-from-element';\nimport { addTransitionEndListener } from '@opten/transition/add-transition-end-listener';\n\nimport { eventNamespaceFactory } from '@opten/events/event-namespace-factory';\n\nconst stringCollapse = 'Collapse';\n\nexport interface CollapseOptions {\n\tcomponentClass?: string;\n\tactiveClass?: string;\n\tactiveParentClass?: string;\n\tshowClass?: string;\n\tshowClassDesktop?: string;\n\tdesktopWidth?: number;\n\tcollapsingClass?: string;\n\tparentElement?: HTMLElement;\n\ttransitionDuration?: number;\n\tanimateProp?: 'height' | 'width' | false;\n\tisHideable?: boolean;\n\tcloseSiblings?: boolean;\n\tuseShowClassDesktop?: boolean;\n\tdataParentSelector?: string;\n\tdataTargetSelector?: string;\n\tdataToggleSelector?: string;\n\threfSelector?: string;\n}\n\nexport class Collapse {\n\t// TODO: Uggly naming\n\tget toggles(): HTMLElement[] {\n\t\treturn this.triggers;\n\t}\n\n\tconstructor(public element: HTMLElement, options?: CollapseOptions) {\n\t\tthis.options = {\n\t\t\t...this.options,\n\t\t\t...options,\n\t\t};\n\n\t\tif (!this.options.parentElement) {\n\t\t\tthis.options.parentElement = getSelectorElementFromElement(\n\t\t\t\telement,\n\t\t\t\tthis.options.dataParentSelector,\n\t\t\t\tfalse\n\t\t\t);\n\t\t}\n\n\t\tthis.init();\n\t}\n\tprivate options: CollapseOptions = {\n\t\tactiveClass: 'is-active',\n\t\tactiveParentClass: 'is-active',\n\t\tanimateProp: 'height',\n\t\tcollapsingClass: 'collapse--collapsing',\n\t\tcomponentClass: 'collapse',\n\t\tshowClass: 'collapse--show',\n\t\tshowClassDesktop: 'collapse--md-show',\n\t\tdesktopWidth: 1024,\n\t\ttransitionDuration: 600,\n\t\tisHideable: true,\n\t\tcloseSiblings: true,\n\t\tuseShowClassDesktop: false,\n\t\tdataParentSelector: 'data-parent',\n\t\tdataTargetSelector: 'data-target',\n\t\tdataToggleSelector: 'data-toggle',\n\t\threfSelector: 'href',\n\t};\n\n\tprivate parent: HTMLElement;\n\tprivate triggers: HTMLElement[];\n\n\tprivate target: Element;\n\tprivate isTransitioning = false; // when true it will prevent click handlers\n\n\t// event names\n\tprivate eventNamespaceFn = eventNamespaceFactory('opten.collapse');\n\n\tstatic getInstance(\n\t\telement: HTMLElement,\n\t\toptions?: CollapseOptions,\n\t\tcreate = true\n\t) {\n\t\tlet data = element[stringCollapse] as Collapse;\n\n\t\tif (!data && create) {\n\t\t\tdata = new Collapse(element, options);\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tisOpen(): boolean {\n\t\tif (\n\t\t\tthis.options.useShowClassDesktop &&\n\t\t\twindow.outerWidth >= this.options.desktopWidth &&\n\t\t\thasClass(this.element, this.options.showClassDesktop)\n\t\t) {\n\t\t\taddClass(this.element, this.options.showClass);\n\t\t}\n\t\tremoveClass(this.element, this.options.showClassDesktop);\n\t\treturn hasClass(this.element, this.options.showClass);\n\t}\n\n\ttoggle() {\n\t\tif (this.isOpen()) {\n\t\t\tif (this.options.isHideable) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.show();\n\t\t}\n\t}\n\n\tshow() {\n\t\tif (this.isTransitioning || this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.options.closeSiblings && this.parent) {\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\n\t\t\tconst actives = Array.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\n\t\t\t\t)\n\t\t\t).filter((active) => active !== this.target);\n\n\t\t\tif (actives && actives.length) {\n\t\t\t\tconst anyTransitioning = actives.filter((active) => {\n\t\t\t\t\tconst collapseInstance = active[stringCollapse] as Collapse;\n\t\t\t\t\treturn collapseInstance && collapseInstance.isTransitioning;\n\t\t\t\t});\n\n\t\t\t\tif (anyTransitioning.length) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tactives.forEach((active) =>\n\t\t\t\t\tCollapse.getInstance(active as HTMLElement).hide()\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tthis._handleShow(this.element, this.triggers);\n\t}\n\n\thide() {\n\t\tif (this.isTransitioning || !this.isOpen()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._handleClose(this.element, this.triggers);\n\t}\n\n\tdestroy() {\n\t\tconst element = this.element;\n\n\t\tif (element[stringCollapse]) {\n\t\t\telement[stringCollapse] = null;\n\n\t\t\tremoveClass(element, this.options.componentClass);\n\t\t\tremoveClass(element, this.options.collapsingClass);\n\t\t\tremoveClass(element, this.options.showClass);\n\n\t\t\tif (this.options.animateProp) {\n\t\t\t\telement.style[this.options.animateProp] = null;\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate init() {\n\t\t// todo: only initalize once, like bootstrap does it?\n\t\tthis.triggers = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`[${this.options.hrefSelector}=\"#${this.element.id}\"], [${this.options.dataTargetSelector}=\"#${this.element.id}\"]`\n\t\t\t)\n\t\t);\n\n\t\t// todo: why do we need that?\n\t\tconst toggles = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"]`\n\t\t\t)\n\t\t);\n\t\tfor (const toggle of toggles) {\n\t\t\tconst target = getSelectorElementFromElement(\n\t\t\t\ttoggle,\n\t\t\t\tthis.options.dataTargetSelector\n\t\t\t);\n\t\t\tif (target !== null && target === this.element) {\n\t\t\t\tthis.target = target;\n\t\t\t\tthis.triggers.push(toggle as HTMLElement);\n\t\t\t}\n\t\t}\n\n\t\tthis.parent = this.options.parentElement;\n\n\t\t// init\n\t\tif (!(stringCollapse in this.element)) {\n\t\t\t// prevent adding event handlers twice\n\t\t\tthis.triggers.forEach((trigger) =>\n\t\t\t\ttrigger.addEventListener('click', this.handleClick, false)\n\t\t\t);\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\tArray.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`[${this.options.dataToggleSelector}=\"collapse\"][${this.options.dataParentSelector}=\"#${this.parent.id}\"]`\n\t\t\t\t)\n\t\t\t).forEach((element) => {\n\t\t\t\tthis._addAriaAndCollapsedClass(\n\t\t\t\t\tgetSelectorElementFromElement(\n\t\t\t\t\t\telement,\n\t\t\t\t\t\tthis.options.dataTargetSelector\n\t\t\t\t\t),\n\t\t\t\t\t[element]\n\t\t\t\t);\n\t\t\t});\n\t\t} else {\n\t\t\tthis._addAriaAndCollapsedClass(this.element, this.triggers);\n\t\t}\n\n\t\taddClass(this.element, this.options.componentClass);\n\n\t\tthis.element[stringCollapse] = this;\n\t}\n\n\tprivate handleClick = (event: Event) => {\n\t\t// preventDefault only for elements (which change the URL) not inside the collapsible element\n\t\tconst trigger = event && (event.currentTarget as HTMLElement);\n\t\tif (trigger && trigger.tagName === 'A') {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tconst target = getSelectorElementFromElement(\n\t\t\ttrigger,\n\t\t\tthis.options.dataTargetSelector\n\t\t);\n\t\tlet data = target[stringCollapse] as Collapse;\n\n\t\tif (!data) {\n\t\t\tdata = trigger[stringCollapse] as Collapse;\n\t\t}\n\n\t\tif (target) {\n\t\t\tCollapse.getInstance(target, data.options).toggle();\n\t\t}\n\t};\n\n\tprivate _handleShow(collapseElement: HTMLElement, triggers?: Element[]) {\n\t\tthis.eventNamespaceFn(collapseElement, 'show');\n\n\t\tremoveClass(collapseElement, this.options.componentClass);\n\t\taddClass(collapseElement, this.options.collapsingClass);\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] =\n\t\t\t\tcollapseElement.scrollHeight + 'px';\n\t\t}\n\n\t\tif (triggers && triggers.length) {\n\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\taddClass(trigger, this.options.activeClass);\n\t\t\t\ttrigger.setAttribute('aria-expanded', 'true');\n\t\t\t});\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\taddClass(this.parent, this.options.activeClass);\n\t\t}\n\n\t\tthis.isTransitioning = true;\n\n\t\taddTransitionEndListener(\n\t\t\tcollapseElement,\n\t\t\t() => {\n\t\t\t\tremoveClass(collapseElement, this.options.collapsingClass);\n\t\t\t\taddClass(collapseElement, this.options.componentClass);\n\t\t\t\taddClass(collapseElement, this.options.showClass);\n\n\t\t\t\tthis.isTransitioning = false;\n\t\t\t\tif (this.options.animateProp) {\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t\t\t}\n\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'shown');\n\t\t\t},\n\t\t\tthis.options.transitionDuration\n\t\t);\n\t}\n\n\tprivate _handleClose(collapseElement: HTMLElement, triggers?: Element[]) {\n\t\tthis.eventNamespaceFn(collapseElement, 'hide');\n\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] =\n\t\t\t\tcollapseElement.scrollHeight + 'px';\n\t\t}\n\n\t\taddClass(collapseElement, this.options.collapsingClass);\n\t\tremoveClass(collapseElement, this.options.componentClass);\n\t\tremoveClass(collapseElement, this.options.showClass);\n\t\t// force reflow to enable transition\n\t\tcollapseElement.offsetWidth; // eslint-disable-line\n\n\t\tif (triggers && triggers.length) {\n\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\tconst target = getSelectorElementFromElement(\n\t\t\t\t\ttrigger,\n\t\t\t\t\tthis.options.dataTargetSelector\n\t\t\t\t);\n\n\t\t\t\tif (target !== null) {\n\t\t\t\t\tif (!hasClass(target, this.options.showClass)) {\n\t\t\t\t\t\tremoveClass(trigger, this.options.activeClass);\n\t\t\t\t\t\ttrigger.setAttribute('aria-expanded', 'false');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.parent) {\n\t\t\tconst selector = `[${this.options.dataParentSelector}=\"#${this.parent.id}\"]`;\n\t\t\tconst actives = Array.from(\n\t\t\t\tthis.parent.querySelectorAll(\n\t\t\t\t\t`${selector}.${this.options.showClass}, ${selector}.${this.options.collapsingClass}`\n\t\t\t\t)\n\t\t\t).filter((o) => o !== collapseElement);\n\n\t\t\tif (this.parent && actives.length === 0) {\n\t\t\t\tremoveClass(this.parent, this.options.activeParentClass);\n\t\t\t}\n\t\t}\n\n\t\tthis.isTransitioning = true;\n\t\tif (this.options.animateProp) {\n\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t}\n\n\t\taddTransitionEndListener(\n\t\t\tcollapseElement,\n\t\t\t() => {\n\t\t\t\tthis.isTransitioning = false;\n\n\t\t\t\tremoveClass(collapseElement, this.options.collapsingClass);\n\t\t\t\taddClass(collapseElement, this.options.componentClass);\n\n\t\t\t\tif (this.options.animateProp) {\n\t\t\t\t\tcollapseElement.style[this.options.animateProp] = null;\n\t\t\t\t}\n\n\t\t\t\tthis.eventNamespaceFn(collapseElement, 'hidden');\n\t\t\t},\n\t\t\tthis.options.transitionDuration\n\t\t);\n\t}\n\n\tprivate _addAriaAndCollapsedClass(element: Element, triggers: Element[]) {\n\t\tif (element) {\n\t\t\tconst isOpen = hasClass(element, this.options.showClass);\n\n\t\t\tif (triggers && triggers.length) {\n\t\t\t\ttriggers.forEach((trigger) => {\n\t\t\t\t\tisOpen\n\t\t\t\t\t\t? addClass(trigger, this.options.activeClass)\n\t\t\t\t\t\t: removeClass(trigger, this.options.activeClass);\n\n\t\t\t\t\ttrigger.setAttribute(\n\t\t\t\t\t\t'aria-expanded',\n\t\t\t\t\t\tisOpen.toString().toLowerCase()\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport function collapse(\n\telement: HTMLElement,\n\toptions?: CollapseOptions\n): Collapse {\n\tconsole.error(\n\t\t'collapse deprecated: use new Collapse(element, options) instead. (initialized elements can be accessed via Collapse.getInstance()'\n\t);\n\tlet data = element[stringCollapse] as Collapse;\n\n\tif (!data) {\n\t\tdata = new Collapse(element, options);\n\t}\n\n\treturn data;\n}\n","import { asHTMLElement } from '@opten/dom/as-html-element';\nimport { hasClass } from '@opten/dom/has-class';\nimport { isHTMLElement } from '@opten/dom/is-html-element';\n\nimport { Compiler } from '../';\nimport { Component } from '../metadata/component';\nimport { Reflector } from '../reflector';\nimport { Resolver } from '../resolver';\n\n// TODO: cache, static, inject?\nconst reflector = new Reflector();\nconst resolver = new Resolver(reflector);\nconst compiler = new Compiler(resolver);\n\nexport function factory(components: any[]) {\n\treturn (rootElement: HTMLElement) => {\n\t\tconst observables = new Map();\n\t\tcomponents.forEach((componentType) => {\n\t\t\t// TODO: inject resolver, or cache?\n\t\t\t// TODO: static or something to cache?\n\t\t\tconst component = resolver.resolve(componentType);\n\n\t\t\tif (component) {\n\t\t\t\tconst safeRootElement =\n\t\t\t\t\trootElement === document.body ? document : rootElement;\n\t\t\t\tArray.from(\n\t\t\t\t\tsafeRootElement.getElementsByClassName(component.className)\n\t\t\t\t).forEach((node) =>\n\t\t\t\t\tcompiler.compile(component, node as HTMLElement, componentType)\n\t\t\t\t);\n\n\t\t\t\tif (component.observe) {\n\t\t\t\t\tobservables.set(component, componentType);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`No @Component annotation for ${\n\t\t\t\t\t\tcomponentType ? componentType.name : componentType\n\t\t\t\t\t} found!`\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\n\t\tif (observables.size) {\n\t\t\tnew MutationObserver((mutations) => {\n\t\t\t\tconst componentInitializer = new Map void>();\n\n\t\t\t\tmutations.forEach((mutation) => {\n\t\t\t\t\tobservables.forEach((value, key) =>\n\t\t\t\t\t\tArray.from(mutation.addedNodes)\n\t\t\t\t\t\t\t.filter((node) => isHTMLElement(node))\n\t\t\t\t\t\t\t.map((node) => asHTMLElement(node))\n\t\t\t\t\t\t\t.forEach((node) => {\n\t\t\t\t\t\t\t\tconst comps = Array.from(\n\t\t\t\t\t\t\t\t\tnode.getElementsByClassName(key.className)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (hasClass(node, key.className)) {\n\t\t\t\t\t\t\t\t\tcomps.push(node);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcomps.forEach((component) => {\n\t\t\t\t\t\t\t\t\tcomponentInitializer.set(component as HTMLElement, () =>\n\t\t\t\t\t\t\t\t\t\tcompiler.compile(key, component as HTMLElement, value)\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t});\n\n\t\t\t\tcomponentInitializer.forEach((c) => c());\n\t\t\t}).observe(document.body, {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t});\n\t\t}\n\t};\n}\n","import { Component } from './metadata/component';\nimport { Query } from './metadata/di';\nimport { OnInit } from './metadata/lifecycle';\nimport { Resolver } from './resolver';\nimport { isType } from './util/type';\n\n// TODO: move whole project to @opten/initializer?\nexport class Compiler {\n\tprivate componentCache = new Map();\n\n\tconstructor(private resolver: Resolver) {}\n\n\tcompile(\n\t\tcomponent: Component,\n\t\tnode: HTMLElement,\n\t\tcomponentType: /*Type*/ any\n\t) {\n\t\t// TODO: cache everything?\n\n\t\t// TODO: cache that also?\n\t\tconst constructor = new componentType(node);\n\n\t\tif (this.componentCache.has(node)) {\n\t\t\tthis.componentCache.get(node).push(constructor);\n\t\t} else {\n\t\t\tthis.componentCache.set(node, [constructor]);\n\t\t}\n\n\t\tObject.keys(component.queries).forEach((propName) => {\n\t\t\tconst query: Query = component.queries[propName];\n\n\t\t\t// TODO: why do we have to inject the resolver?\n\t\t\t// can we not get the class name by some other way?\n\t\t\tconst target = this.resolver.resolve(query.selector);\n\n\t\t\tif (target) {\n\t\t\t\tconst targetNode = query.descendants ? node : document;\n\t\t\t\tconst nodes = targetNode.getElementsByClassName(target.className);\n\n\t\t\t\tconst cache = Array.from(nodes)\n\t\t\t\t\t.filter((o) => (query.filter ? query.filter(o) : true))\n\t\t\t\t\t.map((e) => this.componentCache.get(e as HTMLElement))\n\t\t\t\t\t.filter((e) => e !== undefined && e !== null)\n\t\t\t\t\t.reduce((acc, val) => acc.concat(val), [])\n\t\t\t\t\t.filter((f) => f.constructor === query.selector);\n\n\t\t\t\tconstructor[propName] = query.first ? cache[0] : cache;\n\t\t\t}\n\t\t});\n\n\t\tif (isType(constructor.onInit)) {\n\t\t\t(constructor as OnInit).onInit();\n\t\t}\n\t}\n}\n","import { makeDecorator, TypeDecorator } from '../util/decorators';\nimport { makeMetadataFactory, MetadataFactory } from '../util/factories';\n\nexport interface ComponentDecorator {\n\t(obj: Component): TypeDecorator;\n\tnew (obj: Component): Component;\n}\n\nexport interface Component {\n\tclassName?: string;\n\tobserve?: boolean;\n\tqueries?: { [key: string]: any };\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-denylist,id-match\nexport const Component: ComponentDecorator = makeDecorator(\n\t'Component',\n\t(c: Component = {}) => ({ ...c })\n);\n\nexport const createComponent: MetadataFactory =\n\tmakeMetadataFactory('Component', (c: Component = {}) => ({\n\t\t...c,\n\t}));\n","import { ANNOTATIONS, PROP_METADATA } from '../util/decorators';\nimport { isType, Type } from '../util/type';\n\n// TODO: @opten/reflector? or @opten/initializer/reflector?\nexport class Reflector {\n\tannotations(typeOrFunc: Type): any[] {\n\t\tif (!isType(typeOrFunc)) {\n\t\t\treturn [];\n\t\t}\n\t\tconst parentCtor = getParentCtor(typeOrFunc);\n\t\tconst ownAnnotations = this._ownAnnotations(typeOrFunc, parentCtor) || [];\n\t\tconst parentAnnotations =\n\t\t\tparentCtor !== Object ? this.annotations(parentCtor) : [];\n\t\treturn parentAnnotations.concat(ownAnnotations);\n\t}\n\n\tpropMetadata(typeOrFunc: any): { [key: string]: any[] } {\n\t\tif (!isType(typeOrFunc)) {\n\t\t\treturn {};\n\t\t}\n\t\tconst parentCtor = getParentCtor(typeOrFunc);\n\t\tconst propMetadata: { [key: string]: any[] } = {};\n\t\tif (parentCtor !== Object) {\n\t\t\tconst parentPropMetadata = this.propMetadata(parentCtor);\n\t\t\tObject.keys(parentPropMetadata).forEach((propName) => {\n\t\t\t\tpropMetadata[propName] = parentPropMetadata[propName];\n\t\t\t});\n\t\t}\n\t\tconst ownPropMetadata = this._ownPropMetadata(typeOrFunc, parentCtor);\n\t\tif (ownPropMetadata) {\n\t\t\tObject.keys(ownPropMetadata).forEach((propName) => {\n\t\t\t\tconst decorators: any[] = [];\n\t\t\t\tif (propMetadata.hasOwnProperty(propName)) {\n\t\t\t\t\tdecorators.push(...propMetadata[propName]);\n\t\t\t\t}\n\t\t\t\tdecorators.push(...ownPropMetadata[propName]);\n\t\t\t\tpropMetadata[propName] = decorators;\n\t\t\t});\n\t\t}\n\t\treturn propMetadata;\n\t}\n\n\tprivate _ownAnnotations(\n\t\ttypeOrFunc: Type,\n\t\tparentCtor: any\n\t): any[] | null {\n\t\t// API for metadata created by invoking the decorators.\n\t\tif (typeOrFunc.hasOwnProperty(ANNOTATIONS)) {\n\t\t\treturn (typeOrFunc as any)[ANNOTATIONS];\n\t\t}\n\t\treturn null;\n\t}\n\n\tprivate _ownPropMetadata(\n\t\ttypeOrFunc: any,\n\t\tparentCtor: any\n\t): { [key: string]: any[] } | null {\n\t\t// API for metadata created by invoking the decorators.\n\t\tif (typeOrFunc.hasOwnProperty(PROP_METADATA)) {\n\t\t\treturn (typeOrFunc as any)[PROP_METADATA];\n\t\t}\n\t\treturn null;\n\t}\n}\n\nfunction getParentCtor(ctor: Type): Type {\n\tconst parentProto = Object.getPrototypeOf(ctor.prototype);\n\tconst parentCtor = parentProto ? parentProto.constructor : null;\n\t// Note: We always use `Object` as the null value\n\t// to simplify checking later on.\n\treturn parentCtor || Object;\n}\n","import { Component, createComponent } from '../metadata/component';\nimport { Query } from '../metadata/di';\nimport { Reflector } from '../reflector';\n\nconst QUERY_METADATA_IDENTIFIERS = [\n\t'ComponentRef',\n\t'ComponentRefs',\n\t'ChildRef',\n\t'ChildrenRef',\n];\n\n// TODO: @opten/resolver? or @opten/initializer/resolver?\nexport class Resolver {\n\tconstructor(private reflector: Reflector) {}\n\n\t// propertyCache = new Map();\n\n\tresolve(type: any /*Type*/): Component | null {\n\t\tconst typeMetadata = this.reflector.annotations(type);\n\n\t\tif (typeMetadata) {\n\t\t\tconst metadata = findLast(\n\t\t\t\ttypeMetadata,\n\t\t\t\t(c) => c && c.metadataName === 'Component'\n\t\t\t);\n\n\t\t\tif (metadata) {\n\t\t\t\tconst propertyMetadata = this.reflector.propMetadata(type);\n\n\t\t\t\treturn this._mergeWithPropertyMetadata(\n\t\t\t\t\tmetadata,\n\t\t\t\t\tpropertyMetadata,\n\t\t\t\t\ttype\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tprivate _mergeWithPropertyMetadata(\n\t\tcomponent: Component,\n\t\tpropertyMetadata: { [key: string]: any[] },\n\t\tcomponentType: /*Type*/ any\n\t): Component {\n\t\tconst queries: { [key: string]: any } = {};\n\n\t\tObject.keys(propertyMetadata).forEach((propName: string) => {\n\t\t\tconst query = findLast(propertyMetadata[propName], (a) =>\n\t\t\t\tQUERY_METADATA_IDENTIFIERS.some((i) => i && i === a.metadataName)\n\t\t\t);\n\n\t\t\tif (query) {\n\t\t\t\tqueries[propName] = query;\n\t\t\t}\n\t\t});\n\n\t\treturn this._merge(component, queries, componentType);\n\t}\n\n\tprivate _merge(\n\t\tcomponent: Component,\n\t\tqueries: { [key: string]: any },\n\t\tcomponentType: /*Type*/ any\n\t): Component {\n\t\tconst mergedQueries = component.queries\n\t\t\t? { ...component.queries, ...queries }\n\t\t\t: queries;\n\n\t\treturn createComponent({\n\t\t\tclassName: component.className,\n\t\t\tobserve: component.observe,\n\t\t\tqueries: mergedQueries,\n\t\t});\n\t}\n\n\tprivate _getQueriesMetadata(queries: { [key: string]: Query }): any[] {\n\t\tconst res: any[] = [];\n\n\t\tObject.keys(queries).forEach((propertyName: string) => {\n\t\t\tconst query = queries[propertyName];\n\t\t\tres.push(this._getQueryMetadata(query, propertyName));\n\t\t});\n\n\t\treturn res;\n\t}\n\n\tprivate _getQueryMetadata(q: Query, propertyName: string): any {\n\t\treturn {\n\t\t\tdescendants: q.descendants,\n\t\t\tfirst: q.first,\n\t\t\tpropertyName,\n\t\t\tread: false,\n\t\t\tselector: q.selector,\n\t\t};\n\t}\n}\n\nfunction findLast(arr: T[], condition: (value: T) => boolean): T | null {\n\tfor (let i = arr.length - 1; i >= 0; i--) {\n\t\tif (condition(arr[i])) {\n\t\t\treturn arr[i];\n\t\t}\n\t}\n\treturn null;\n}\n","import { Type } from './type';\n\nexport const ANNOTATIONS = '__annotations__';\nexport const PROP_METADATA = '__prop__metadata__';\n\nexport interface TypeDecorator {\n\t// Invoke as ES7 decorator.\n\t>(type: T): T;\n\n\t// Make TypeDecorator assignable to built-in ParameterDecorator type.\n\t// ParameterDecorator is declared in lib.d.ts as a `declare type`\n\t// so we cannot declare this interface as a subtype.\n\t// see https://github.com/angular/angular/issues/3379#issuecomment-126169417\n\t(\n\t\ttarget: object,\n\t\tpropertyKey?: string | symbol,\n\t\tparameterIndex?: number\n\t): void;\n}\n\nexport function makeDecorator(\n\tname: string,\n\tprops?: (...args: any[]) => any,\n\tparentClass?: any,\n\tchainFn?: (fn: TypeDecorator) => void,\n\ttypeFn?: (type: Type, ...args: any[]) => void\n): {\n\t\tnew (...args: any[]): any;\n\t\t(...args: any[]): any;\n\t\t(...args: any[]): (cls: any) => any;\n\t} {\n\tconst metaCtor = makeMetadataCtor(props);\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tfunction DecoratorFactory(...args: any[]): (cls: any) => any {\n\t\tif (this instanceof DecoratorFactory) {\n\t\t\tmetaCtor.call(this, ...args);\n\t\t\treturn this;\n\t\t}\n\n\t\tconst annotationInstance = new (DecoratorFactory as any)(...args);\n\t\tconst typeDecorator: TypeDecorator = (cls: Type) => {\n\t\t\tif (typeFn) {\n\t\t\t\ttypeFn(cls, ...args);\n\t\t\t}\n\t\t\t// Use of Object.defineProperty is important since it creates non-enumerable property which\n\t\t\t// prevents the property is copied during subclassing.\n\t\t\tconst annotations = cls.hasOwnProperty(ANNOTATIONS)\n\t\t\t\t? (cls as any)[ANNOTATIONS]\n\t\t\t\t: Object.defineProperty(cls, ANNOTATIONS, { value: [] })[ANNOTATIONS];\n\t\t\tannotations.push(annotationInstance);\n\t\t\treturn cls;\n\t\t};\n\t\tif (chainFn) {\n\t\t\tchainFn(typeDecorator);\n\t\t}\n\t\treturn typeDecorator;\n\t}\n\n\tif (parentClass) {\n\t\tDecoratorFactory.prototype = Object.create(parentClass.prototype);\n\t}\n\n\tDecoratorFactory.prototype.metadataName = name;\n\treturn DecoratorFactory as any;\n}\n\nfunction makeMetadataCtor(props?: (...args: any[]) => any): any {\n\treturn function ctor(...args: any[]) {\n\t\tif (props) {\n\t\t\tconst values = props(...args);\n\t\t\tfor (const propName in values) {\n\t\t\t\tif (values.hasOwnProperty(propName)) {\n\t\t\t\t\tthis[propName] = values[propName];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\nexport function makePropDecorator(\n\tname: string,\n\tprops?: (...args: any[]) => any,\n\tparentClass?: any\n): any {\n\tconst metaCtor = makeMetadataCtor(props);\n\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\tfunction PropDecoratorFactory(...args: any[]): any {\n\t\tif (this instanceof PropDecoratorFactory) {\n\t\t\tmetaCtor.apply(this, args);\n\t\t\treturn this;\n\t\t}\n\n\t\tconst decoratorInstance = new (PropDecoratorFactory as any)(...args);\n\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\t\treturn function PropDecorator(target: any, metaName: string) {\n\t\t\tconst constructor = target.constructor;\n\t\t\t// Use of Object.defineProperty is important since it creates non-enumerable property which\n\t\t\t// prevents the property is copied during subclassing.\n\t\t\tconst meta = constructor.hasOwnProperty(PROP_METADATA)\n\t\t\t\t? (constructor as any)[PROP_METADATA]\n\t\t\t\t: Object.defineProperty(constructor, PROP_METADATA, {\n\t\t\t\t\tvalue: {},\n\t\t\t\t })[PROP_METADATA];\n\t\t\tmeta[metaName] = (meta.hasOwnProperty(metaName) && meta[metaName]) || [];\n\t\t\tmeta[metaName].unshift(decoratorInstance);\n\t\t};\n\t}\n\n\tif (parentClass) {\n\t\tPropDecoratorFactory.prototype = Object.create(parentClass.prototype);\n\t}\n\n\tPropDecoratorFactory.prototype.metadataName = name;\n\treturn PropDecoratorFactory;\n}\n","export interface MetadataFactory {\n\t(...args: any[]): T;\n\tmetadataName: string;\n\tisTypeOf(obj: any): obj is T;\n}\n\nexport function makeMetadataFactory(\n\tname: string,\n\tprops?: (...args: any[]) => T\n): MetadataFactory {\n\tconst factory: any = (...args: any[]) => {\n\t\tconst values = props ? props(...args) : {};\n\t\treturn {\n\t\t\tmetadataName: name,\n\t\t\t...values,\n\t\t};\n\t};\n\tfactory.isTypeOf = (obj: any) => obj && obj.metadataName === name;\n\tfactory.metadataName = name;\n\treturn factory;\n}\n","// eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle,id-denylist,id-match\nexport const Type = Function;\n\nexport function isType(v: any): v is Type {\n\treturn typeof v === 'function';\n}\n\nexport type Type = new (...args: any[]) => T;\n","import { getClass } from '../get-class';\nimport { hasClass } from '../has-class';\n\nexport function addClass(element: Element, className: string) {\n\tif (element && !hasClass(element, className)) {\n\t\telement.setAttribute('class', getClass(element).trim() + ' ' + className);\n\t}\n}\n","import { isHTMLElement } from '../is-html-element';\n\nexport function asHTMLElement(o: any): HTMLElement {\n\tif (isHTMLElement(o)) {\n\t\treturn o as HTMLElement;\n\t}\n\treturn null;\n}\n","import { addClass } from '../add-class';\nimport { removeClass } from '../remove-class';\n\nexport function changeClass(element: Element, className: string, add = true) {\n\tif (add) {\n\t\taddClass(element, className);\n\t} else {\n\t\tremoveClass(element, className);\n\t}\n}\n","const classRegexCache = {};\nexport function classRegex(className: string): RegExp {\n\tif (!classRegexCache[className]) {\n\t\tclassRegexCache[className] = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)');\n\t}\n\treturn classRegexCache[className];\n}\n","export function getClass(element: Element) {\n\treturn element.getAttribute('class') || '';\n}\n","import { getSelectorFromElement } from '../get-selector-from-element';\n\nexport function getSelectorElementFromElement(\n\telement: Element,\n\tattribute = 'data-target',\n\tfallbackHref = true\n): HTMLElement {\n\tconst selector = getSelectorFromElement(element, attribute, fallbackHref);\n\n\tif (selector && selector.indexOf('#') === 0) {\n\t\treturn document.getElementById(selector.substr(1, selector.length - 1));\n\t}\n\n\treturn null;\n}\n","export function getSelectorFromElement(\n\telement: Element,\n\tattribute = 'data-target',\n\tfallbackHref = true\n): string {\n\tlet selector = element.getAttribute(attribute);\n\n\tif (!selector && fallbackHref) {\n\t\tselector = element.getAttribute('href') || '';\n\t\tselector = /^#.*/i.test(selector) ? selector : null;\n\t}\n\n\treturn selector;\n}\n","export function getWindowScrollTop() {\n\treturn window.pageYOffset !== undefined\n\t\t? window.pageYOffset\n\t\t: (\n\t\t\t(document.documentElement ||\n\t\t\t\t\tdocument.body.parentNode ||\n\t\t\t\t\tdocument.body) as HTMLElement\n\t\t ).scrollTop;\n}\n","import { classRegex } from '../class-regex';\nimport { getClass } from '../get-class';\n\nexport function hasClass(element: Element, className: string): boolean {\n\treturn element && classRegex(className).test(getClass(element));\n}\n","export function isHTMLElement(o: any) {\n\treturn typeof HTMLElement === 'object'\n\t\t? o instanceof HTMLElement\n\t\t: o &&\n\t\t\t\ttypeof o === 'object' &&\n\t\t\t\to !== null &&\n\t\t\t\to.nodeType === 1 &&\n\t\t\t\ttypeof o.nodeName === 'string';\n}\n","import { classRegex } from '../class-regex';\nimport { getClass } from '../get-class';\nimport { hasClass } from '../has-class';\n\nexport function removeClass(element: Element, className: string) {\n\tif (element && hasClass(element, className)) {\n\t\tconst regex = classRegex(className);\n\t\telement.setAttribute('class', getClass(element).replace(regex, ' ').trim());\n\t}\n}\n\nexport function removeClassFactory(className: string) {\n\treturn (element: Element) => {\n\t\tremoveClass(element, className);\n\t};\n}\n\nexport function removeClassOnCollection(\n\telements: Element[],\n\tclassName: string\n) {\n\telements.forEach(removeClassFactory(className));\n}\n","import { changeClass } from '../change-class';\nimport { hasClass } from '../has-class';\n\nexport function toggleClass(\n\telement: Element,\n\tclassName: string,\n\tstate?: boolean\n) {\n\tchangeClass(\n\t\telement,\n\t\tclassName,\n\t\tstate === undefined ? !hasClass(element, className) : state\n\t);\n}\n","export function dispatchCustomEvent(element: EventTarget, eventName: string) {\n\tconst event = new CustomEvent(eventName);\n\telement.dispatchEvent(event);\n}\n","import { dispatchCustomEvent } from '../dispatch-custom-event';\n\nexport function eventNamespaceFactory(namespace: string) {\n\treturn (element: EventTarget, eventName: string) =>\n\t\tdispatchCustomEvent(element, eventName + '.' + namespace);\n}\n","import { addClass } from '@opten/dom/add-class';\n\nconst stringPlayer = 'Player';\n\nexport class IFramePlayerOptions {\n\tstartPlayerClass?: string;\n}\n\nexport class IFramePlayer {\n\tprivate _buttonElement: HTMLElement;\n\tprivate _iFrameElement: HTMLIFrameElement;\n\tprivate _options: IFramePlayerOptions = {\n\t\tstartPlayerClass: 'js-player-start',\n\t};\n\n\tprivate _boundClick = this._handleClick.bind(this);\n\n\tconstructor(private element: HTMLElement, options?: IFramePlayerOptions) {\n\t\tthis._options = { ...this._options, ...options };\n\n\t\tthis._buttonElement = element.getElementsByClassName(\n\t\t\tthis._options.startPlayerClass\n\t\t)[0] as HTMLElement;\n\n\t\tthis._iFrameElement = element.getElementsByTagName('iframe')[0];\n\n\t\tthis._init();\n\t}\n\n\tprivate _init() {\n\t\t// init\n\t\tif (!(stringPlayer in this.element)) {\n\t\t\t// prevent adding event handlers twice\n\t\t\tif (this._buttonElement && this._iFrameElement) {\n\t\t\t\tthis._buttonElement.addEventListener('click', this._boundClick);\n\t\t\t}\n\t\t}\n\n\t\tthis.element[stringPlayer] = this;\n\t}\n\n\tprivate _handleClick() {\n\t\tthis.play();\n\t\tthis._buttonElement.removeEventListener('click', this._boundClick);\n\t}\n\n\tplay() {\n\t\tif (this._iFrameElement.src.indexOf('autoplay') === -1) {\n\t\t\tthis._iFrameElement.src +=\n\t\t\t\tthis._iFrameElement.src.indexOf('?') === -1\n\t\t\t\t\t? '?autoplay=1'\n\t\t\t\t\t: '&autoplay=1';\n\t\t\taddClass(this.element, 'is-playing');\n\t\t}\n\t}\n}\n\nexport function iframePlayer(\n\telement: HTMLElement,\n\toptions?: IFramePlayerOptions\n) {\n\tlet data = element[stringPlayer] as IFramePlayer;\n\n\tif (!data) {\n\t\tdata = new IFramePlayer(element, options);\n\t}\n\treturn data;\n}\n","import { AnimationFunction } from '@opten/animation/animation-function';\nimport { linearTween } from '@opten/animation/linear-tween';\nimport { scrollToOffset } from '../scroll-to-offset';\n\nexport function scrollToElement(\n\ttarget: Element,\n\tanimation: AnimationFunction = linearTween,\n\tduration = 300,\n\toffset = 0,\n\twrapper: HTMLElement | Window = window\n) {\n\tconst top =\n\t\twrapper !== window\n\t\t\t? (target as HTMLElement).offsetTop - (wrapper as HTMLElement).scrollTop\n\t\t\t: target.getBoundingClientRect().top;\n\n\treturn scrollToOffset(top, animation, duration, offset, wrapper);\n}\n","import { AnimationFunction } from '@opten/animation/animation-function';\nimport { linearTween } from '@opten/animation/linear-tween';\nimport { scrollTo } from '../scroll-to';\n\nexport function scrollToOffset(\n\tdistance: number,\n\tanimationFunction: AnimationFunction = linearTween,\n\tduration = 300,\n\toffset = 0,\n\twrapper: HTMLElement | Window = window\n) {\n\tscrollTo(distance + offset, animationFunction, duration, wrapper);\n}\n","import { AnimationFunction } from '@opten/animation/animation-function';\nimport { getWindowScrollTop } from '@opten/dom/get-window-scroll-top';\n\nexport function scrollTo(\n\tdistance: number,\n\tanimationFunction: AnimationFunction = (t, b, c, d) => (c * t) / d + b,\n\tduration = 300,\n\twrapper: HTMLElement | Window = window\n) {\n\tlet start = getWindowScrollTop();\n\tlet timeStart: number;\n\tlet timeElapsed: number;\n\n\tif (wrapper instanceof HTMLElement) {\n\t\tstart = wrapper.scrollTop;\n\t}\n\n\trequestAnimationFrame.call(window, (time) => {\n\t\ttimeStart = time;\n\t\tloop(time);\n\t});\n\n\tfunction loop(time) {\n\t\ttimeElapsed = time - timeStart;\n\n\t\tif (wrapper instanceof Window) {\n\t\t\twrapper.scrollTo(\n\t\t\t\t0,\n\t\t\t\tanimationFunction(timeElapsed, start, distance, duration)\n\t\t\t);\n\n\t\t\tif (timeElapsed < duration) {\n\t\t\t\trequestAnimationFrame.call(window, loop);\n\t\t\t} else {\n\t\t\t\twrapper.scrollTo(0, start + distance);\n\t\t\t}\n\t\t} else {\n\t\t\twrapper.scrollTop = animationFunction(\n\t\t\t\ttimeElapsed,\n\t\t\t\tstart,\n\t\t\t\tdistance,\n\t\t\t\tduration\n\t\t\t);\n\n\t\t\tif (timeElapsed < duration) {\n\t\t\t\trequestAnimationFrame.call(window, loop);\n\t\t\t} else {\n\t\t\t\twrapper.scrollTop = start + distance;\n\t\t\t}\n\t\t}\n\t}\n}\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\t// eslint-disable-next-line @typescript-eslint/naming-convention\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","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor() {\n let el;\n let params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\n\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n $(el).attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n const handleFocus = e => {\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n const initSlides = () => {\n const params = swiper.params.a11y;\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n if (params.slideRole) {\n addElRole($(swiper.slides), params.slideRole);\n }\n\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n\n if (params.slideLabelMessage) {\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n });\n }\n };\n\n const init = () => {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n initSlides(); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.on('focus', handleFocus, true);\n };\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n } // Tab focus\n\n\n swiper.$el.off('focus', handleFocus, true);\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n if (!swiper.size) {\n swiper.autoplay.running = false;\n swiper.autoplay.paused = false;\n return;\n }\n\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n emit('autoplayPause');\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null,\n rotate: true\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rotate : 0}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.each(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows($(slideEl), progress, isHorizontal);\n });\n };\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, isHorizontal);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const createSlideShadows = ($slideEl, progress, params) => {\n let shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n };\n\n const recreateShadows = () => {\n // Set shadows\n const params = swiper.params.flipEffect;\n swiper.slides.each(slideEl => {\n const $slideEl = $(slideEl);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n\n createSlideShadows($slideEl, progress, params);\n });\n };\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n createSlideShadows($slideEl, progress, params);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchStart() {\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid(_ref) {\n let {\n swiper,\n extendParams\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation(_ref) {\n let {\n swiper\n } = _ref;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n if (!$el) return;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.scrollbar;\n const $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n }\n\n disableDraggable();\n }\n\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n init();\n updateSize();\n setTranslate();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n\n if (swiper.scrollbar.$el) {\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n emit('virtualUpdate');\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","export default function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows\n\n swiper.slides.each(slideEl => {\n const $slideEl = swiper.$(slideEl);\n $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove();\n }); // create new one\n\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformEl,\n allSlides\n } = _ref;\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/**\n * Swiper 8.3.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2022 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: July 26, 2022\n */\n\nexport { default as Swiper, default } from './core/core.js';\nexport { default as Virtual } from './modules/virtual/virtual.js';\nexport { default as Keyboard } from './modules/keyboard/keyboard.js';\nexport { default as Mousewheel } from './modules/mousewheel/mousewheel.js';\nexport { default as Navigation } from './modules/navigation/navigation.js';\nexport { default as Pagination } from './modules/pagination/pagination.js';\nexport { default as Scrollbar } from './modules/scrollbar/scrollbar.js';\nexport { default as Parallax } from './modules/parallax/parallax.js';\nexport { default as Zoom } from './modules/zoom/zoom.js';\nexport { default as Lazy } from './modules/lazy/lazy.js';\nexport { default as Controller } from './modules/controller/controller.js';\nexport { default as A11y } from './modules/a11y/a11y.js';\nexport { default as History } from './modules/history/history.js';\nexport { default as HashNavigation } from './modules/hash-navigation/hash-navigation.js';\nexport { default as Autoplay } from './modules/autoplay/autoplay.js';\nexport { default as Thumbs } from './modules/thumbs/thumbs.js';\nexport { default as FreeMode } from './modules/free-mode/free-mode.js';\nexport { default as Grid } from './modules/grid/grid.js';\nexport { default as Manipulation } from './modules/manipulation/manipulation.js';\nexport { default as EffectFade } from './modules/effect-fade/effect-fade.js';\nexport { default as EffectCube } from './modules/effect-cube/effect-cube.js';\nexport { default as EffectFlip } from './modules/effect-flip/effect-flip.js';\nexport { default as EffectCoverflow } from './modules/effect-coverflow/effect-coverflow.js';\nexport { default as EffectCreative } from './modules/effect-creative/effect-creative.js';\nexport { default as EffectCards } from './modules/effect-cards/effect-cards.js';","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import { CollapseComponent } from '@opten/collapse';\nimport { factory } from '@opten/compiler/factory';\nimport { scrollToOffset } from '@opten/scroll/scroll-to-offset';\nimport { ConsortiaComponent } from './components/consortia';\nimport { FilterComponent } from './components/filter';\nimport { InputComponent } from './components/input';\nimport { InteractiveSvgComponent } from './components/interactive-svg';\nimport { KeyvaluechainCollapseComponent } from './components/keyvalue-chain';\nimport { ModalComponent } from './components/modal';\nimport { Navigation } from './components/navigation';\nimport { IFramePlayerComponent } from './components/player';\nimport { ScrollToComponent } from './components/scroll-to';\nimport { SliderComponent } from './components/slider';\n\nconst initialize = factory([\n\tCollapseComponent,\n\tSliderComponent,\n\tInputComponent,\n\tFilterComponent,\n\tIFramePlayerComponent,\n\tModalComponent,\n\tNavigation,\n\tScrollToComponent,\n\tConsortiaComponent,\n\tInteractiveSvgComponent,\n\tKeyvaluechainCollapseComponent\n]);\n\ninitialize(document.body);\n\nif (window.location.hash) {\n\tconst elem = document.getElementById(window.location.hash.substring(1));\n\tif (elem) {\n\t\tscrollToOffset(elem.getBoundingClientRect().top);\n\t}\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"position-static\":\"position-static\",\"position-relative\":\"position-relative\",\"position-absolute\":\"position-absolute\",\"position-fixed\":\"position-fixed\",\"position-sticky\":\"position-sticky\",\"sticky-top\":\"sticky-top\",\"fade\":\"fade\",\"fade--show\":\"fade--show\",\"collapse\":\"collapse\",\"collapse--show\":\"collapse--show\",\"collapse-open\":\"collapse-open\",\"collapse-open-sm\":\"collapse-open-sm\",\"collapse-open-md\":\"collapse-open-md\",\"collapse-open-lg\":\"collapse-open-lg\",\"collapse-open-xl\":\"collapse-open-xl\",\"collapse-open-xxl\":\"collapse-open-xxl\",\"collapse--collapsing\":\"collapse--collapsing\",\"fade--fading\":\"fade--fading\",\"u-embed-responsive\":\"u-embed-responsive\",\"u-embed-responsive__item\":\"u-embed-responsive__item\",\"u-embed-responsive--ratio-1by1\":\"u-embed-responsive--ratio-1by1\",\"u-embed-responsive--ratio-2by1\":\"u-embed-responsive--ratio-2by1\",\"u-embed-responsive--ratio-4by3\":\"u-embed-responsive--ratio-4by3\",\"u-embed-responsive--ratio-16by9\":\"u-embed-responsive--ratio-16by9\",\"u-embed-responsive--ratio-21by9\":\"u-embed-responsive--ratio-21by9\",\"m--1\":\"m--1\",\"mt--1\":\"mt--1\",\"my--1\":\"my--1\",\"mr--1\":\"mr--1\",\"mx--1\":\"mx--1\",\"mb--1\":\"mb--1\",\"ml--1\":\"ml--1\",\"m-0\":\"m-0\",\"mt-0\":\"mt-0\",\"my-0\":\"my-0\",\"mr-0\":\"mr-0\",\"mx-0\":\"mx-0\",\"mb-0\":\"mb-0\",\"ml-0\":\"ml-0\",\"m-1\":\"m-1\",\"mt-1\":\"mt-1\",\"my-1\":\"my-1\",\"mr-1\":\"mr-1\",\"mx-1\":\"mx-1\",\"mb-1\":\"mb-1\",\"ml-1\":\"ml-1\",\"m-2\":\"m-2\",\"mt-2\":\"mt-2\",\"my-2\":\"my-2\",\"mr-2\":\"mr-2\",\"mx-2\":\"mx-2\",\"mb-2\":\"mb-2\",\"ml-2\":\"ml-2\",\"m-3\":\"m-3\",\"mt-3\":\"mt-3\",\"my-3\":\"my-3\",\"mr-3\":\"mr-3\",\"mx-3\":\"mx-3\",\"mb-3\":\"mb-3\",\"ml-3\":\"ml-3\",\"m-4\":\"m-4\",\"mt-4\":\"mt-4\",\"my-4\":\"my-4\",\"mr-4\":\"mr-4\",\"mx-4\":\"mx-4\",\"mb-4\":\"mb-4\",\"ml-4\":\"ml-4\",\"m-5\":\"m-5\",\"mt-5\":\"mt-5\",\"my-5\":\"my-5\",\"mr-5\":\"mr-5\",\"mx-5\":\"mx-5\",\"mb-5\":\"mb-5\",\"ml-5\":\"ml-5\",\"m-6\":\"m-6\",\"mt-6\":\"mt-6\",\"my-6\":\"my-6\",\"mr-6\":\"mr-6\",\"mx-6\":\"mx-6\",\"mb-6\":\"mb-6\",\"ml-6\":\"ml-6\",\"m-7\":\"m-7\",\"mt-7\":\"mt-7\",\"my-7\":\"my-7\",\"mr-7\":\"mr-7\",\"mx-7\":\"mx-7\",\"mb-7\":\"mb-7\",\"ml-7\":\"ml-7\",\"m-10\":\"m-10\",\"mt-10\":\"mt-10\",\"my-10\":\"my-10\",\"mr-10\":\"mr-10\",\"mx-10\":\"mx-10\",\"mb-10\":\"mb-10\",\"ml-10\":\"ml-10\",\"m-20\":\"m-20\",\"mt-20\":\"mt-20\",\"my-20\":\"my-20\",\"mr-20\":\"mr-20\",\"mx-20\":\"mx-20\",\"mb-20\":\"mb-20\",\"ml-20\":\"ml-20\",\"p-0\":\"p-0\",\"pt-0\":\"pt-0\",\"py-0\":\"py-0\",\"pr-0\":\"pr-0\",\"px-0\":\"px-0\",\"pb-0\":\"pb-0\",\"pl-0\":\"pl-0\",\"p-1\":\"p-1\",\"pt-1\":\"pt-1\",\"py-1\":\"py-1\",\"pr-1\":\"pr-1\",\"px-1\":\"px-1\",\"pb-1\":\"pb-1\",\"pl-1\":\"pl-1\",\"p-2\":\"p-2\",\"pt-2\":\"pt-2\",\"py-2\":\"py-2\",\"pr-2\":\"pr-2\",\"px-2\":\"px-2\",\"pb-2\":\"pb-2\",\"pl-2\":\"pl-2\",\"p-3\":\"p-3\",\"pt-3\":\"pt-3\",\"py-3\":\"py-3\",\"pr-3\":\"pr-3\",\"px-3\":\"px-3\",\"pb-3\":\"pb-3\",\"pl-3\":\"pl-3\",\"p-4\":\"p-4\",\"pt-4\":\"pt-4\",\"py-4\":\"py-4\",\"pr-4\":\"pr-4\",\"px-4\":\"px-4\",\"pb-4\":\"pb-4\",\"pl-4\":\"pl-4\",\"p-5\":\"p-5\",\"pt-5\":\"pt-5\",\"py-5\":\"py-5\",\"pr-5\":\"pr-5\",\"px-5\":\"px-5\",\"pb-5\":\"pb-5\",\"pl-5\":\"pl-5\",\"p-6\":\"p-6\",\"pt-6\":\"pt-6\",\"py-6\":\"py-6\",\"pr-6\":\"pr-6\",\"px-6\":\"px-6\",\"pb-6\":\"pb-6\",\"pl-6\":\"pl-6\",\"p-7\":\"p-7\",\"pt-7\":\"pt-7\",\"py-7\":\"py-7\",\"pr-7\":\"pr-7\",\"px-7\":\"px-7\",\"pb-7\":\"pb-7\",\"pl-7\":\"pl-7\",\"p-10\":\"p-10\",\"pt-10\":\"pt-10\",\"py-10\":\"py-10\",\"pr-10\":\"pr-10\",\"px-10\":\"px-10\",\"pb-10\":\"pb-10\",\"pl-10\":\"pl-10\",\"p-20\":\"p-20\",\"pt-20\":\"pt-20\",\"py-20\":\"py-20\",\"pr-20\":\"pr-20\",\"px-20\":\"px-20\",\"pb-20\":\"pb-20\",\"pl-20\":\"pl-20\",\"m-auto\":\"m-auto\",\"mt-auto\":\"mt-auto\",\"my-auto\":\"my-auto\",\"mr-auto\":\"mr-auto\",\"mx-auto\":\"mx-auto\",\"mb-auto\":\"mb-auto\",\"ml-auto\":\"ml-auto\",\"m-sm--1\":\"m-sm--1\",\"mt-sm--1\":\"mt-sm--1\",\"my-sm--1\":\"my-sm--1\",\"mr-sm--1\":\"mr-sm--1\",\"mx-sm--1\":\"mx-sm--1\",\"mb-sm--1\":\"mb-sm--1\",\"ml-sm--1\":\"ml-sm--1\",\"m-sm-0\":\"m-sm-0\",\"mt-sm-0\":\"mt-sm-0\",\"my-sm-0\":\"my-sm-0\",\"mr-sm-0\":\"mr-sm-0\",\"mx-sm-0\":\"mx-sm-0\",\"mb-sm-0\":\"mb-sm-0\",\"ml-sm-0\":\"ml-sm-0\",\"m-sm-1\":\"m-sm-1\",\"mt-sm-1\":\"mt-sm-1\",\"my-sm-1\":\"my-sm-1\",\"mr-sm-1\":\"mr-sm-1\",\"mx-sm-1\":\"mx-sm-1\",\"mb-sm-1\":\"mb-sm-1\",\"ml-sm-1\":\"ml-sm-1\",\"m-sm-2\":\"m-sm-2\",\"mt-sm-2\":\"mt-sm-2\",\"my-sm-2\":\"my-sm-2\",\"mr-sm-2\":\"mr-sm-2\",\"mx-sm-2\":\"mx-sm-2\",\"mb-sm-2\":\"mb-sm-2\",\"ml-sm-2\":\"ml-sm-2\",\"m-sm-3\":\"m-sm-3\",\"mt-sm-3\":\"mt-sm-3\",\"my-sm-3\":\"my-sm-3\",\"mr-sm-3\":\"mr-sm-3\",\"mx-sm-3\":\"mx-sm-3\",\"mb-sm-3\":\"mb-sm-3\",\"ml-sm-3\":\"ml-sm-3\",\"m-sm-4\":\"m-sm-4\",\"mt-sm-4\":\"mt-sm-4\",\"my-sm-4\":\"my-sm-4\",\"mr-sm-4\":\"mr-sm-4\",\"mx-sm-4\":\"mx-sm-4\",\"mb-sm-4\":\"mb-sm-4\",\"ml-sm-4\":\"ml-sm-4\",\"m-sm-5\":\"m-sm-5\",\"mt-sm-5\":\"mt-sm-5\",\"my-sm-5\":\"my-sm-5\",\"mr-sm-5\":\"mr-sm-5\",\"mx-sm-5\":\"mx-sm-5\",\"mb-sm-5\":\"mb-sm-5\",\"ml-sm-5\":\"ml-sm-5\",\"m-sm-6\":\"m-sm-6\",\"mt-sm-6\":\"mt-sm-6\",\"my-sm-6\":\"my-sm-6\",\"mr-sm-6\":\"mr-sm-6\",\"mx-sm-6\":\"mx-sm-6\",\"mb-sm-6\":\"mb-sm-6\",\"ml-sm-6\":\"ml-sm-6\",\"m-sm-7\":\"m-sm-7\",\"mt-sm-7\":\"mt-sm-7\",\"my-sm-7\":\"my-sm-7\",\"mr-sm-7\":\"mr-sm-7\",\"mx-sm-7\":\"mx-sm-7\",\"mb-sm-7\":\"mb-sm-7\",\"ml-sm-7\":\"ml-sm-7\",\"m-sm-10\":\"m-sm-10\",\"mt-sm-10\":\"mt-sm-10\",\"my-sm-10\":\"my-sm-10\",\"mr-sm-10\":\"mr-sm-10\",\"mx-sm-10\":\"mx-sm-10\",\"mb-sm-10\":\"mb-sm-10\",\"ml-sm-10\":\"ml-sm-10\",\"m-sm-20\":\"m-sm-20\",\"mt-sm-20\":\"mt-sm-20\",\"my-sm-20\":\"my-sm-20\",\"mr-sm-20\":\"mr-sm-20\",\"mx-sm-20\":\"mx-sm-20\",\"mb-sm-20\":\"mb-sm-20\",\"ml-sm-20\":\"ml-sm-20\",\"p-sm-0\":\"p-sm-0\",\"pt-sm-0\":\"pt-sm-0\",\"py-sm-0\":\"py-sm-0\",\"pr-sm-0\":\"pr-sm-0\",\"px-sm-0\":\"px-sm-0\",\"pb-sm-0\":\"pb-sm-0\",\"pl-sm-0\":\"pl-sm-0\",\"p-sm-1\":\"p-sm-1\",\"pt-sm-1\":\"pt-sm-1\",\"py-sm-1\":\"py-sm-1\",\"pr-sm-1\":\"pr-sm-1\",\"px-sm-1\":\"px-sm-1\",\"pb-sm-1\":\"pb-sm-1\",\"pl-sm-1\":\"pl-sm-1\",\"p-sm-2\":\"p-sm-2\",\"pt-sm-2\":\"pt-sm-2\",\"py-sm-2\":\"py-sm-2\",\"pr-sm-2\":\"pr-sm-2\",\"px-sm-2\":\"px-sm-2\",\"pb-sm-2\":\"pb-sm-2\",\"pl-sm-2\":\"pl-sm-2\",\"p-sm-3\":\"p-sm-3\",\"pt-sm-3\":\"pt-sm-3\",\"py-sm-3\":\"py-sm-3\",\"pr-sm-3\":\"pr-sm-3\",\"px-sm-3\":\"px-sm-3\",\"pb-sm-3\":\"pb-sm-3\",\"pl-sm-3\":\"pl-sm-3\",\"p-sm-4\":\"p-sm-4\",\"pt-sm-4\":\"pt-sm-4\",\"py-sm-4\":\"py-sm-4\",\"pr-sm-4\":\"pr-sm-4\",\"px-sm-4\":\"px-sm-4\",\"pb-sm-4\":\"pb-sm-4\",\"pl-sm-4\":\"pl-sm-4\",\"p-sm-5\":\"p-sm-5\",\"pt-sm-5\":\"pt-sm-5\",\"py-sm-5\":\"py-sm-5\",\"pr-sm-5\":\"pr-sm-5\",\"px-sm-5\":\"px-sm-5\",\"pb-sm-5\":\"pb-sm-5\",\"pl-sm-5\":\"pl-sm-5\",\"p-sm-6\":\"p-sm-6\",\"pt-sm-6\":\"pt-sm-6\",\"py-sm-6\":\"py-sm-6\",\"pr-sm-6\":\"pr-sm-6\",\"px-sm-6\":\"px-sm-6\",\"pb-sm-6\":\"pb-sm-6\",\"pl-sm-6\":\"pl-sm-6\",\"p-sm-7\":\"p-sm-7\",\"pt-sm-7\":\"pt-sm-7\",\"py-sm-7\":\"py-sm-7\",\"pr-sm-7\":\"pr-sm-7\",\"px-sm-7\":\"px-sm-7\",\"pb-sm-7\":\"pb-sm-7\",\"pl-sm-7\":\"pl-sm-7\",\"p-sm-10\":\"p-sm-10\",\"pt-sm-10\":\"pt-sm-10\",\"py-sm-10\":\"py-sm-10\",\"pr-sm-10\":\"pr-sm-10\",\"px-sm-10\":\"px-sm-10\",\"pb-sm-10\":\"pb-sm-10\",\"pl-sm-10\":\"pl-sm-10\",\"p-sm-20\":\"p-sm-20\",\"pt-sm-20\":\"pt-sm-20\",\"py-sm-20\":\"py-sm-20\",\"pr-sm-20\":\"pr-sm-20\",\"px-sm-20\":\"px-sm-20\",\"pb-sm-20\":\"pb-sm-20\",\"pl-sm-20\":\"pl-sm-20\",\"m-sm-auto\":\"m-sm-auto\",\"mt-sm-auto\":\"mt-sm-auto\",\"my-sm-auto\":\"my-sm-auto\",\"mr-sm-auto\":\"mr-sm-auto\",\"mx-sm-auto\":\"mx-sm-auto\",\"mb-sm-auto\":\"mb-sm-auto\",\"ml-sm-auto\":\"ml-sm-auto\",\"m-md--1\":\"m-md--1\",\"mt-md--1\":\"mt-md--1\",\"my-md--1\":\"my-md--1\",\"mr-md--1\":\"mr-md--1\",\"mx-md--1\":\"mx-md--1\",\"mb-md--1\":\"mb-md--1\",\"ml-md--1\":\"ml-md--1\",\"m-md-0\":\"m-md-0\",\"mt-md-0\":\"mt-md-0\",\"my-md-0\":\"my-md-0\",\"mr-md-0\":\"mr-md-0\",\"mx-md-0\":\"mx-md-0\",\"mb-md-0\":\"mb-md-0\",\"ml-md-0\":\"ml-md-0\",\"m-md-1\":\"m-md-1\",\"mt-md-1\":\"mt-md-1\",\"my-md-1\":\"my-md-1\",\"mr-md-1\":\"mr-md-1\",\"mx-md-1\":\"mx-md-1\",\"mb-md-1\":\"mb-md-1\",\"ml-md-1\":\"ml-md-1\",\"m-md-2\":\"m-md-2\",\"mt-md-2\":\"mt-md-2\",\"my-md-2\":\"my-md-2\",\"mr-md-2\":\"mr-md-2\",\"mx-md-2\":\"mx-md-2\",\"mb-md-2\":\"mb-md-2\",\"ml-md-2\":\"ml-md-2\",\"m-md-3\":\"m-md-3\",\"mt-md-3\":\"mt-md-3\",\"my-md-3\":\"my-md-3\",\"mr-md-3\":\"mr-md-3\",\"mx-md-3\":\"mx-md-3\",\"mb-md-3\":\"mb-md-3\",\"ml-md-3\":\"ml-md-3\",\"m-md-4\":\"m-md-4\",\"mt-md-4\":\"mt-md-4\",\"my-md-4\":\"my-md-4\",\"mr-md-4\":\"mr-md-4\",\"mx-md-4\":\"mx-md-4\",\"mb-md-4\":\"mb-md-4\",\"ml-md-4\":\"ml-md-4\",\"m-md-5\":\"m-md-5\",\"mt-md-5\":\"mt-md-5\",\"my-md-5\":\"my-md-5\",\"mr-md-5\":\"mr-md-5\",\"mx-md-5\":\"mx-md-5\",\"mb-md-5\":\"mb-md-5\",\"ml-md-5\":\"ml-md-5\",\"m-md-6\":\"m-md-6\",\"mt-md-6\":\"mt-md-6\",\"my-md-6\":\"my-md-6\",\"mr-md-6\":\"mr-md-6\",\"mx-md-6\":\"mx-md-6\",\"mb-md-6\":\"mb-md-6\",\"ml-md-6\":\"ml-md-6\",\"m-md-7\":\"m-md-7\",\"mt-md-7\":\"mt-md-7\",\"my-md-7\":\"my-md-7\",\"mr-md-7\":\"mr-md-7\",\"mx-md-7\":\"mx-md-7\",\"mb-md-7\":\"mb-md-7\",\"ml-md-7\":\"ml-md-7\",\"m-md-10\":\"m-md-10\",\"mt-md-10\":\"mt-md-10\",\"my-md-10\":\"my-md-10\",\"mr-md-10\":\"mr-md-10\",\"mx-md-10\":\"mx-md-10\",\"mb-md-10\":\"mb-md-10\",\"ml-md-10\":\"ml-md-10\",\"m-md-20\":\"m-md-20\",\"mt-md-20\":\"mt-md-20\",\"my-md-20\":\"my-md-20\",\"mr-md-20\":\"mr-md-20\",\"mx-md-20\":\"mx-md-20\",\"mb-md-20\":\"mb-md-20\",\"ml-md-20\":\"ml-md-20\",\"p-md-0\":\"p-md-0\",\"pt-md-0\":\"pt-md-0\",\"py-md-0\":\"py-md-0\",\"pr-md-0\":\"pr-md-0\",\"px-md-0\":\"px-md-0\",\"pb-md-0\":\"pb-md-0\",\"pl-md-0\":\"pl-md-0\",\"p-md-1\":\"p-md-1\",\"pt-md-1\":\"pt-md-1\",\"py-md-1\":\"py-md-1\",\"pr-md-1\":\"pr-md-1\",\"px-md-1\":\"px-md-1\",\"pb-md-1\":\"pb-md-1\",\"pl-md-1\":\"pl-md-1\",\"p-md-2\":\"p-md-2\",\"pt-md-2\":\"pt-md-2\",\"py-md-2\":\"py-md-2\",\"pr-md-2\":\"pr-md-2\",\"px-md-2\":\"px-md-2\",\"pb-md-2\":\"pb-md-2\",\"pl-md-2\":\"pl-md-2\",\"p-md-3\":\"p-md-3\",\"pt-md-3\":\"pt-md-3\",\"py-md-3\":\"py-md-3\",\"pr-md-3\":\"pr-md-3\",\"px-md-3\":\"px-md-3\",\"pb-md-3\":\"pb-md-3\",\"pl-md-3\":\"pl-md-3\",\"p-md-4\":\"p-md-4\",\"pt-md-4\":\"pt-md-4\",\"py-md-4\":\"py-md-4\",\"pr-md-4\":\"pr-md-4\",\"px-md-4\":\"px-md-4\",\"pb-md-4\":\"pb-md-4\",\"pl-md-4\":\"pl-md-4\",\"p-md-5\":\"p-md-5\",\"pt-md-5\":\"pt-md-5\",\"py-md-5\":\"py-md-5\",\"pr-md-5\":\"pr-md-5\",\"px-md-5\":\"px-md-5\",\"pb-md-5\":\"pb-md-5\",\"pl-md-5\":\"pl-md-5\",\"p-md-6\":\"p-md-6\",\"pt-md-6\":\"pt-md-6\",\"py-md-6\":\"py-md-6\",\"pr-md-6\":\"pr-md-6\",\"px-md-6\":\"px-md-6\",\"pb-md-6\":\"pb-md-6\",\"pl-md-6\":\"pl-md-6\",\"p-md-7\":\"p-md-7\",\"pt-md-7\":\"pt-md-7\",\"py-md-7\":\"py-md-7\",\"pr-md-7\":\"pr-md-7\",\"px-md-7\":\"px-md-7\",\"pb-md-7\":\"pb-md-7\",\"pl-md-7\":\"pl-md-7\",\"p-md-10\":\"p-md-10\",\"pt-md-10\":\"pt-md-10\",\"py-md-10\":\"py-md-10\",\"pr-md-10\":\"pr-md-10\",\"px-md-10\":\"px-md-10\",\"pb-md-10\":\"pb-md-10\",\"pl-md-10\":\"pl-md-10\",\"p-md-20\":\"p-md-20\",\"pt-md-20\":\"pt-md-20\",\"py-md-20\":\"py-md-20\",\"pr-md-20\":\"pr-md-20\",\"px-md-20\":\"px-md-20\",\"pb-md-20\":\"pb-md-20\",\"pl-md-20\":\"pl-md-20\",\"m-md-auto\":\"m-md-auto\",\"mt-md-auto\":\"mt-md-auto\",\"my-md-auto\":\"my-md-auto\",\"mr-md-auto\":\"mr-md-auto\",\"mx-md-auto\":\"mx-md-auto\",\"mb-md-auto\":\"mb-md-auto\",\"ml-md-auto\":\"ml-md-auto\",\"m-lg--1\":\"m-lg--1\",\"mt-lg--1\":\"mt-lg--1\",\"my-lg--1\":\"my-lg--1\",\"mr-lg--1\":\"mr-lg--1\",\"mx-lg--1\":\"mx-lg--1\",\"mb-lg--1\":\"mb-lg--1\",\"ml-lg--1\":\"ml-lg--1\",\"m-lg-0\":\"m-lg-0\",\"mt-lg-0\":\"mt-lg-0\",\"my-lg-0\":\"my-lg-0\",\"mr-lg-0\":\"mr-lg-0\",\"mx-lg-0\":\"mx-lg-0\",\"mb-lg-0\":\"mb-lg-0\",\"ml-lg-0\":\"ml-lg-0\",\"m-lg-1\":\"m-lg-1\",\"mt-lg-1\":\"mt-lg-1\",\"my-lg-1\":\"my-lg-1\",\"mr-lg-1\":\"mr-lg-1\",\"mx-lg-1\":\"mx-lg-1\",\"mb-lg-1\":\"mb-lg-1\",\"ml-lg-1\":\"ml-lg-1\",\"m-lg-2\":\"m-lg-2\",\"mt-lg-2\":\"mt-lg-2\",\"my-lg-2\":\"my-lg-2\",\"mr-lg-2\":\"mr-lg-2\",\"mx-lg-2\":\"mx-lg-2\",\"mb-lg-2\":\"mb-lg-2\",\"ml-lg-2\":\"ml-lg-2\",\"m-lg-3\":\"m-lg-3\",\"mt-lg-3\":\"mt-lg-3\",\"my-lg-3\":\"my-lg-3\",\"mr-lg-3\":\"mr-lg-3\",\"mx-lg-3\":\"mx-lg-3\",\"mb-lg-3\":\"mb-lg-3\",\"ml-lg-3\":\"ml-lg-3\",\"m-lg-4\":\"m-lg-4\",\"mt-lg-4\":\"mt-lg-4\",\"my-lg-4\":\"my-lg-4\",\"mr-lg-4\":\"mr-lg-4\",\"mx-lg-4\":\"mx-lg-4\",\"mb-lg-4\":\"mb-lg-4\",\"ml-lg-4\":\"ml-lg-4\",\"m-lg-5\":\"m-lg-5\",\"mt-lg-5\":\"mt-lg-5\",\"my-lg-5\":\"my-lg-5\",\"mr-lg-5\":\"mr-lg-5\",\"mx-lg-5\":\"mx-lg-5\",\"mb-lg-5\":\"mb-lg-5\",\"ml-lg-5\":\"ml-lg-5\",\"m-lg-6\":\"m-lg-6\",\"mt-lg-6\":\"mt-lg-6\",\"my-lg-6\":\"my-lg-6\",\"mr-lg-6\":\"mr-lg-6\",\"mx-lg-6\":\"mx-lg-6\",\"mb-lg-6\":\"mb-lg-6\",\"ml-lg-6\":\"ml-lg-6\",\"m-lg-7\":\"m-lg-7\",\"mt-lg-7\":\"mt-lg-7\",\"my-lg-7\":\"my-lg-7\",\"mr-lg-7\":\"mr-lg-7\",\"mx-lg-7\":\"mx-lg-7\",\"mb-lg-7\":\"mb-lg-7\",\"ml-lg-7\":\"ml-lg-7\",\"m-lg-10\":\"m-lg-10\",\"mt-lg-10\":\"mt-lg-10\",\"my-lg-10\":\"my-lg-10\",\"mr-lg-10\":\"mr-lg-10\",\"mx-lg-10\":\"mx-lg-10\",\"mb-lg-10\":\"mb-lg-10\",\"ml-lg-10\":\"ml-lg-10\",\"m-lg-20\":\"m-lg-20\",\"mt-lg-20\":\"mt-lg-20\",\"my-lg-20\":\"my-lg-20\",\"mr-lg-20\":\"mr-lg-20\",\"mx-lg-20\":\"mx-lg-20\",\"mb-lg-20\":\"mb-lg-20\",\"ml-lg-20\":\"ml-lg-20\",\"p-lg-0\":\"p-lg-0\",\"pt-lg-0\":\"pt-lg-0\",\"py-lg-0\":\"py-lg-0\",\"pr-lg-0\":\"pr-lg-0\",\"px-lg-0\":\"px-lg-0\",\"pb-lg-0\":\"pb-lg-0\",\"pl-lg-0\":\"pl-lg-0\",\"p-lg-1\":\"p-lg-1\",\"pt-lg-1\":\"pt-lg-1\",\"py-lg-1\":\"py-lg-1\",\"pr-lg-1\":\"pr-lg-1\",\"px-lg-1\":\"px-lg-1\",\"pb-lg-1\":\"pb-lg-1\",\"pl-lg-1\":\"pl-lg-1\",\"p-lg-2\":\"p-lg-2\",\"pt-lg-2\":\"pt-lg-2\",\"py-lg-2\":\"py-lg-2\",\"pr-lg-2\":\"pr-lg-2\",\"px-lg-2\":\"px-lg-2\",\"pb-lg-2\":\"pb-lg-2\",\"pl-lg-2\":\"pl-lg-2\",\"p-lg-3\":\"p-lg-3\",\"pt-lg-3\":\"pt-lg-3\",\"py-lg-3\":\"py-lg-3\",\"pr-lg-3\":\"pr-lg-3\",\"px-lg-3\":\"px-lg-3\",\"pb-lg-3\":\"pb-lg-3\",\"pl-lg-3\":\"pl-lg-3\",\"p-lg-4\":\"p-lg-4\",\"pt-lg-4\":\"pt-lg-4\",\"py-lg-4\":\"py-lg-4\",\"pr-lg-4\":\"pr-lg-4\",\"px-lg-4\":\"px-lg-4\",\"pb-lg-4\":\"pb-lg-4\",\"pl-lg-4\":\"pl-lg-4\",\"p-lg-5\":\"p-lg-5\",\"pt-lg-5\":\"pt-lg-5\",\"py-lg-5\":\"py-lg-5\",\"pr-lg-5\":\"pr-lg-5\",\"px-lg-5\":\"px-lg-5\",\"pb-lg-5\":\"pb-lg-5\",\"pl-lg-5\":\"pl-lg-5\",\"p-lg-6\":\"p-lg-6\",\"pt-lg-6\":\"pt-lg-6\",\"py-lg-6\":\"py-lg-6\",\"pr-lg-6\":\"pr-lg-6\",\"px-lg-6\":\"px-lg-6\",\"pb-lg-6\":\"pb-lg-6\",\"pl-lg-6\":\"pl-lg-6\",\"p-lg-7\":\"p-lg-7\",\"pt-lg-7\":\"pt-lg-7\",\"py-lg-7\":\"py-lg-7\",\"pr-lg-7\":\"pr-lg-7\",\"px-lg-7\":\"px-lg-7\",\"pb-lg-7\":\"pb-lg-7\",\"pl-lg-7\":\"pl-lg-7\",\"p-lg-10\":\"p-lg-10\",\"pt-lg-10\":\"pt-lg-10\",\"py-lg-10\":\"py-lg-10\",\"pr-lg-10\":\"pr-lg-10\",\"px-lg-10\":\"px-lg-10\",\"pb-lg-10\":\"pb-lg-10\",\"pl-lg-10\":\"pl-lg-10\",\"p-lg-20\":\"p-lg-20\",\"pt-lg-20\":\"pt-lg-20\",\"py-lg-20\":\"py-lg-20\",\"pr-lg-20\":\"pr-lg-20\",\"px-lg-20\":\"px-lg-20\",\"pb-lg-20\":\"pb-lg-20\",\"pl-lg-20\":\"pl-lg-20\",\"m-lg-auto\":\"m-lg-auto\",\"mt-lg-auto\":\"mt-lg-auto\",\"my-lg-auto\":\"my-lg-auto\",\"mr-lg-auto\":\"mr-lg-auto\",\"mx-lg-auto\":\"mx-lg-auto\",\"mb-lg-auto\":\"mb-lg-auto\",\"ml-lg-auto\":\"ml-lg-auto\",\"m-xl--1\":\"m-xl--1\",\"mt-xl--1\":\"mt-xl--1\",\"my-xl--1\":\"my-xl--1\",\"mr-xl--1\":\"mr-xl--1\",\"mx-xl--1\":\"mx-xl--1\",\"mb-xl--1\":\"mb-xl--1\",\"ml-xl--1\":\"ml-xl--1\",\"m-xl-0\":\"m-xl-0\",\"mt-xl-0\":\"mt-xl-0\",\"my-xl-0\":\"my-xl-0\",\"mr-xl-0\":\"mr-xl-0\",\"mx-xl-0\":\"mx-xl-0\",\"mb-xl-0\":\"mb-xl-0\",\"ml-xl-0\":\"ml-xl-0\",\"m-xl-1\":\"m-xl-1\",\"mt-xl-1\":\"mt-xl-1\",\"my-xl-1\":\"my-xl-1\",\"mr-xl-1\":\"mr-xl-1\",\"mx-xl-1\":\"mx-xl-1\",\"mb-xl-1\":\"mb-xl-1\",\"ml-xl-1\":\"ml-xl-1\",\"m-xl-2\":\"m-xl-2\",\"mt-xl-2\":\"mt-xl-2\",\"my-xl-2\":\"my-xl-2\",\"mr-xl-2\":\"mr-xl-2\",\"mx-xl-2\":\"mx-xl-2\",\"mb-xl-2\":\"mb-xl-2\",\"ml-xl-2\":\"ml-xl-2\",\"m-xl-3\":\"m-xl-3\",\"mt-xl-3\":\"mt-xl-3\",\"my-xl-3\":\"my-xl-3\",\"mr-xl-3\":\"mr-xl-3\",\"mx-xl-3\":\"mx-xl-3\",\"mb-xl-3\":\"mb-xl-3\",\"ml-xl-3\":\"ml-xl-3\",\"m-xl-4\":\"m-xl-4\",\"mt-xl-4\":\"mt-xl-4\",\"my-xl-4\":\"my-xl-4\",\"mr-xl-4\":\"mr-xl-4\",\"mx-xl-4\":\"mx-xl-4\",\"mb-xl-4\":\"mb-xl-4\",\"ml-xl-4\":\"ml-xl-4\",\"m-xl-5\":\"m-xl-5\",\"mt-xl-5\":\"mt-xl-5\",\"my-xl-5\":\"my-xl-5\",\"mr-xl-5\":\"mr-xl-5\",\"mx-xl-5\":\"mx-xl-5\",\"mb-xl-5\":\"mb-xl-5\",\"ml-xl-5\":\"ml-xl-5\",\"m-xl-6\":\"m-xl-6\",\"mt-xl-6\":\"mt-xl-6\",\"my-xl-6\":\"my-xl-6\",\"mr-xl-6\":\"mr-xl-6\",\"mx-xl-6\":\"mx-xl-6\",\"mb-xl-6\":\"mb-xl-6\",\"ml-xl-6\":\"ml-xl-6\",\"m-xl-7\":\"m-xl-7\",\"mt-xl-7\":\"mt-xl-7\",\"my-xl-7\":\"my-xl-7\",\"mr-xl-7\":\"mr-xl-7\",\"mx-xl-7\":\"mx-xl-7\",\"mb-xl-7\":\"mb-xl-7\",\"ml-xl-7\":\"ml-xl-7\",\"m-xl-10\":\"m-xl-10\",\"mt-xl-10\":\"mt-xl-10\",\"my-xl-10\":\"my-xl-10\",\"mr-xl-10\":\"mr-xl-10\",\"mx-xl-10\":\"mx-xl-10\",\"mb-xl-10\":\"mb-xl-10\",\"ml-xl-10\":\"ml-xl-10\",\"m-xl-20\":\"m-xl-20\",\"mt-xl-20\":\"mt-xl-20\",\"my-xl-20\":\"my-xl-20\",\"mr-xl-20\":\"mr-xl-20\",\"mx-xl-20\":\"mx-xl-20\",\"mb-xl-20\":\"mb-xl-20\",\"ml-xl-20\":\"ml-xl-20\",\"p-xl-0\":\"p-xl-0\",\"pt-xl-0\":\"pt-xl-0\",\"py-xl-0\":\"py-xl-0\",\"pr-xl-0\":\"pr-xl-0\",\"px-xl-0\":\"px-xl-0\",\"pb-xl-0\":\"pb-xl-0\",\"pl-xl-0\":\"pl-xl-0\",\"p-xl-1\":\"p-xl-1\",\"pt-xl-1\":\"pt-xl-1\",\"py-xl-1\":\"py-xl-1\",\"pr-xl-1\":\"pr-xl-1\",\"px-xl-1\":\"px-xl-1\",\"pb-xl-1\":\"pb-xl-1\",\"pl-xl-1\":\"pl-xl-1\",\"p-xl-2\":\"p-xl-2\",\"pt-xl-2\":\"pt-xl-2\",\"py-xl-2\":\"py-xl-2\",\"pr-xl-2\":\"pr-xl-2\",\"px-xl-2\":\"px-xl-2\",\"pb-xl-2\":\"pb-xl-2\",\"pl-xl-2\":\"pl-xl-2\",\"p-xl-3\":\"p-xl-3\",\"pt-xl-3\":\"pt-xl-3\",\"py-xl-3\":\"py-xl-3\",\"pr-xl-3\":\"pr-xl-3\",\"px-xl-3\":\"px-xl-3\",\"pb-xl-3\":\"pb-xl-3\",\"pl-xl-3\":\"pl-xl-3\",\"p-xl-4\":\"p-xl-4\",\"pt-xl-4\":\"pt-xl-4\",\"py-xl-4\":\"py-xl-4\",\"pr-xl-4\":\"pr-xl-4\",\"px-xl-4\":\"px-xl-4\",\"pb-xl-4\":\"pb-xl-4\",\"pl-xl-4\":\"pl-xl-4\",\"p-xl-5\":\"p-xl-5\",\"pt-xl-5\":\"pt-xl-5\",\"py-xl-5\":\"py-xl-5\",\"pr-xl-5\":\"pr-xl-5\",\"px-xl-5\":\"px-xl-5\",\"pb-xl-5\":\"pb-xl-5\",\"pl-xl-5\":\"pl-xl-5\",\"p-xl-6\":\"p-xl-6\",\"pt-xl-6\":\"pt-xl-6\",\"py-xl-6\":\"py-xl-6\",\"pr-xl-6\":\"pr-xl-6\",\"px-xl-6\":\"px-xl-6\",\"pb-xl-6\":\"pb-xl-6\",\"pl-xl-6\":\"pl-xl-6\",\"p-xl-7\":\"p-xl-7\",\"pt-xl-7\":\"pt-xl-7\",\"py-xl-7\":\"py-xl-7\",\"pr-xl-7\":\"pr-xl-7\",\"px-xl-7\":\"px-xl-7\",\"pb-xl-7\":\"pb-xl-7\",\"pl-xl-7\":\"pl-xl-7\",\"p-xl-10\":\"p-xl-10\",\"pt-xl-10\":\"pt-xl-10\",\"py-xl-10\":\"py-xl-10\",\"pr-xl-10\":\"pr-xl-10\",\"px-xl-10\":\"px-xl-10\",\"pb-xl-10\":\"pb-xl-10\",\"pl-xl-10\":\"pl-xl-10\",\"p-xl-20\":\"p-xl-20\",\"pt-xl-20\":\"pt-xl-20\",\"py-xl-20\":\"py-xl-20\",\"pr-xl-20\":\"pr-xl-20\",\"px-xl-20\":\"px-xl-20\",\"pb-xl-20\":\"pb-xl-20\",\"pl-xl-20\":\"pl-xl-20\",\"m-xl-auto\":\"m-xl-auto\",\"mt-xl-auto\":\"mt-xl-auto\",\"my-xl-auto\":\"my-xl-auto\",\"mr-xl-auto\":\"mr-xl-auto\",\"mx-xl-auto\":\"mx-xl-auto\",\"mb-xl-auto\":\"mb-xl-auto\",\"ml-xl-auto\":\"ml-xl-auto\",\"m-xxl--1\":\"m-xxl--1\",\"mt-xxl--1\":\"mt-xxl--1\",\"my-xxl--1\":\"my-xxl--1\",\"mr-xxl--1\":\"mr-xxl--1\",\"mx-xxl--1\":\"mx-xxl--1\",\"mb-xxl--1\":\"mb-xxl--1\",\"ml-xxl--1\":\"ml-xxl--1\",\"m-xxl-0\":\"m-xxl-0\",\"mt-xxl-0\":\"mt-xxl-0\",\"my-xxl-0\":\"my-xxl-0\",\"mr-xxl-0\":\"mr-xxl-0\",\"mx-xxl-0\":\"mx-xxl-0\",\"mb-xxl-0\":\"mb-xxl-0\",\"ml-xxl-0\":\"ml-xxl-0\",\"m-xxl-1\":\"m-xxl-1\",\"mt-xxl-1\":\"mt-xxl-1\",\"my-xxl-1\":\"my-xxl-1\",\"mr-xxl-1\":\"mr-xxl-1\",\"mx-xxl-1\":\"mx-xxl-1\",\"mb-xxl-1\":\"mb-xxl-1\",\"ml-xxl-1\":\"ml-xxl-1\",\"m-xxl-2\":\"m-xxl-2\",\"mt-xxl-2\":\"mt-xxl-2\",\"my-xxl-2\":\"my-xxl-2\",\"mr-xxl-2\":\"mr-xxl-2\",\"mx-xxl-2\":\"mx-xxl-2\",\"mb-xxl-2\":\"mb-xxl-2\",\"ml-xxl-2\":\"ml-xxl-2\",\"m-xxl-3\":\"m-xxl-3\",\"mt-xxl-3\":\"mt-xxl-3\",\"my-xxl-3\":\"my-xxl-3\",\"mr-xxl-3\":\"mr-xxl-3\",\"mx-xxl-3\":\"mx-xxl-3\",\"mb-xxl-3\":\"mb-xxl-3\",\"ml-xxl-3\":\"ml-xxl-3\",\"m-xxl-4\":\"m-xxl-4\",\"mt-xxl-4\":\"mt-xxl-4\",\"my-xxl-4\":\"my-xxl-4\",\"mr-xxl-4\":\"mr-xxl-4\",\"mx-xxl-4\":\"mx-xxl-4\",\"mb-xxl-4\":\"mb-xxl-4\",\"ml-xxl-4\":\"ml-xxl-4\",\"m-xxl-5\":\"m-xxl-5\",\"mt-xxl-5\":\"mt-xxl-5\",\"my-xxl-5\":\"my-xxl-5\",\"mr-xxl-5\":\"mr-xxl-5\",\"mx-xxl-5\":\"mx-xxl-5\",\"mb-xxl-5\":\"mb-xxl-5\",\"ml-xxl-5\":\"ml-xxl-5\",\"m-xxl-6\":\"m-xxl-6\",\"mt-xxl-6\":\"mt-xxl-6\",\"my-xxl-6\":\"my-xxl-6\",\"mr-xxl-6\":\"mr-xxl-6\",\"mx-xxl-6\":\"mx-xxl-6\",\"mb-xxl-6\":\"mb-xxl-6\",\"ml-xxl-6\":\"ml-xxl-6\",\"m-xxl-7\":\"m-xxl-7\",\"mt-xxl-7\":\"mt-xxl-7\",\"my-xxl-7\":\"my-xxl-7\",\"mr-xxl-7\":\"mr-xxl-7\",\"mx-xxl-7\":\"mx-xxl-7\",\"mb-xxl-7\":\"mb-xxl-7\",\"ml-xxl-7\":\"ml-xxl-7\",\"m-xxl-10\":\"m-xxl-10\",\"mt-xxl-10\":\"mt-xxl-10\",\"my-xxl-10\":\"my-xxl-10\",\"mr-xxl-10\":\"mr-xxl-10\",\"mx-xxl-10\":\"mx-xxl-10\",\"mb-xxl-10\":\"mb-xxl-10\",\"ml-xxl-10\":\"ml-xxl-10\",\"m-xxl-20\":\"m-xxl-20\",\"mt-xxl-20\":\"mt-xxl-20\",\"my-xxl-20\":\"my-xxl-20\",\"mr-xxl-20\":\"mr-xxl-20\",\"mx-xxl-20\":\"mx-xxl-20\",\"mb-xxl-20\":\"mb-xxl-20\",\"ml-xxl-20\":\"ml-xxl-20\",\"p-xxl-0\":\"p-xxl-0\",\"pt-xxl-0\":\"pt-xxl-0\",\"py-xxl-0\":\"py-xxl-0\",\"pr-xxl-0\":\"pr-xxl-0\",\"px-xxl-0\":\"px-xxl-0\",\"pb-xxl-0\":\"pb-xxl-0\",\"pl-xxl-0\":\"pl-xxl-0\",\"p-xxl-1\":\"p-xxl-1\",\"pt-xxl-1\":\"pt-xxl-1\",\"py-xxl-1\":\"py-xxl-1\",\"pr-xxl-1\":\"pr-xxl-1\",\"px-xxl-1\":\"px-xxl-1\",\"pb-xxl-1\":\"pb-xxl-1\",\"pl-xxl-1\":\"pl-xxl-1\",\"p-xxl-2\":\"p-xxl-2\",\"pt-xxl-2\":\"pt-xxl-2\",\"py-xxl-2\":\"py-xxl-2\",\"pr-xxl-2\":\"pr-xxl-2\",\"px-xxl-2\":\"px-xxl-2\",\"pb-xxl-2\":\"pb-xxl-2\",\"pl-xxl-2\":\"pl-xxl-2\",\"p-xxl-3\":\"p-xxl-3\",\"pt-xxl-3\":\"pt-xxl-3\",\"py-xxl-3\":\"py-xxl-3\",\"pr-xxl-3\":\"pr-xxl-3\",\"px-xxl-3\":\"px-xxl-3\",\"pb-xxl-3\":\"pb-xxl-3\",\"pl-xxl-3\":\"pl-xxl-3\",\"p-xxl-4\":\"p-xxl-4\",\"pt-xxl-4\":\"pt-xxl-4\",\"py-xxl-4\":\"py-xxl-4\",\"pr-xxl-4\":\"pr-xxl-4\",\"px-xxl-4\":\"px-xxl-4\",\"pb-xxl-4\":\"pb-xxl-4\",\"pl-xxl-4\":\"pl-xxl-4\",\"p-xxl-5\":\"p-xxl-5\",\"pt-xxl-5\":\"pt-xxl-5\",\"py-xxl-5\":\"py-xxl-5\",\"pr-xxl-5\":\"pr-xxl-5\",\"px-xxl-5\":\"px-xxl-5\",\"pb-xxl-5\":\"pb-xxl-5\",\"pl-xxl-5\":\"pl-xxl-5\",\"p-xxl-6\":\"p-xxl-6\",\"pt-xxl-6\":\"pt-xxl-6\",\"py-xxl-6\":\"py-xxl-6\",\"pr-xxl-6\":\"pr-xxl-6\",\"px-xxl-6\":\"px-xxl-6\",\"pb-xxl-6\":\"pb-xxl-6\",\"pl-xxl-6\":\"pl-xxl-6\",\"p-xxl-7\":\"p-xxl-7\",\"pt-xxl-7\":\"pt-xxl-7\",\"py-xxl-7\":\"py-xxl-7\",\"pr-xxl-7\":\"pr-xxl-7\",\"px-xxl-7\":\"px-xxl-7\",\"pb-xxl-7\":\"pb-xxl-7\",\"pl-xxl-7\":\"pl-xxl-7\",\"p-xxl-10\":\"p-xxl-10\",\"pt-xxl-10\":\"pt-xxl-10\",\"py-xxl-10\":\"py-xxl-10\",\"pr-xxl-10\":\"pr-xxl-10\",\"px-xxl-10\":\"px-xxl-10\",\"pb-xxl-10\":\"pb-xxl-10\",\"pl-xxl-10\":\"pl-xxl-10\",\"p-xxl-20\":\"p-xxl-20\",\"pt-xxl-20\":\"pt-xxl-20\",\"py-xxl-20\":\"py-xxl-20\",\"pr-xxl-20\":\"pr-xxl-20\",\"px-xxl-20\":\"px-xxl-20\",\"pb-xxl-20\":\"pb-xxl-20\",\"pl-xxl-20\":\"pl-xxl-20\",\"m-xxl-auto\":\"m-xxl-auto\",\"mt-xxl-auto\":\"mt-xxl-auto\",\"my-xxl-auto\":\"my-xxl-auto\",\"mr-xxl-auto\":\"mr-xxl-auto\",\"mx-xxl-auto\":\"mx-xxl-auto\",\"mb-xxl-auto\":\"mb-xxl-auto\",\"ml-xxl-auto\":\"ml-xxl-auto\",\"u-md-max-height\":\"u-md-max-height\",\"u-max-width-lg-45\":\"u-max-width-lg-45\",\"u-embed-responsive--ratio-sm-1by1\":\"u-embed-responsive--ratio-sm-1by1\",\"u-embed-responsive--ratio-md-1by1\":\"u-embed-responsive--ratio-md-1by1\",\"u-embed-responsive--ratio-lg-1by1\":\"u-embed-responsive--ratio-lg-1by1\",\"u-embed-responsive--ratio-xl-1by1\":\"u-embed-responsive--ratio-xl-1by1\",\"u-embed-responsive--ratio-xxl-1by1\":\"u-embed-responsive--ratio-xxl-1by1\",\"u-embed-responsive--ratio-sm-4by3\":\"u-embed-responsive--ratio-sm-4by3\",\"u-embed-responsive--ratio-md-4by3\":\"u-embed-responsive--ratio-md-4by3\",\"u-embed-responsive--ratio-lg-4by3\":\"u-embed-responsive--ratio-lg-4by3\",\"u-embed-responsive--ratio-xl-4by3\":\"u-embed-responsive--ratio-xl-4by3\",\"u-embed-responsive--ratio-xxl-4by3\":\"u-embed-responsive--ratio-xxl-4by3\",\"u-embed-responsive--ratio-3by4\":\"u-embed-responsive--ratio-3by4\",\"u-embed-responsive--ratio-sm-3by4\":\"u-embed-responsive--ratio-sm-3by4\",\"u-embed-responsive--ratio-md-3by4\":\"u-embed-responsive--ratio-md-3by4\",\"u-embed-responsive--ratio-lg-3by4\":\"u-embed-responsive--ratio-lg-3by4\",\"u-embed-responsive--ratio-xl-3by4\":\"u-embed-responsive--ratio-xl-3by4\",\"u-embed-responsive--ratio-xxl-3by4\":\"u-embed-responsive--ratio-xxl-3by4\",\"u-embed-responsive--ratio-sm-16by9\":\"u-embed-responsive--ratio-sm-16by9\",\"u-embed-responsive--ratio-md-16by9\":\"u-embed-responsive--ratio-md-16by9\",\"u-embed-responsive--ratio-lg-16by9\":\"u-embed-responsive--ratio-lg-16by9\",\"u-embed-responsive--ratio-xl-16by9\":\"u-embed-responsive--ratio-xl-16by9\",\"u-embed-responsive--ratio-xxl-16by9\":\"u-embed-responsive--ratio-xxl-16by9\",\"text-justify\":\"text-justify\",\"text-left\":\"text-left\",\"text-right\":\"text-right\",\"text-center\":\"text-center\",\"text-sm-justify\":\"text-sm-justify\",\"text-sm-left\":\"text-sm-left\",\"text-sm-right\":\"text-sm-right\",\"text-sm-center\":\"text-sm-center\",\"text-md-justify\":\"text-md-justify\",\"text-md-left\":\"text-md-left\",\"text-md-right\":\"text-md-right\",\"text-md-center\":\"text-md-center\",\"text-lg-justify\":\"text-lg-justify\",\"text-lg-left\":\"text-lg-left\",\"text-lg-right\":\"text-lg-right\",\"text-lg-center\":\"text-lg-center\",\"text-xl-justify\":\"text-xl-justify\",\"text-xl-left\":\"text-xl-left\",\"text-xl-right\":\"text-xl-right\",\"text-xl-center\":\"text-xl-center\",\"text-xxl-justify\":\"text-xxl-justify\",\"text-xxl-left\":\"text-xxl-left\",\"text-xxl-right\":\"text-xxl-right\",\"text-xxl-center\":\"text-xxl-center\",\"u-text-italic\":\"u-text-italic\",\"u-font-weight-bold\":\"u-font-weight-bold\",\"u-align-left\":\"u-align-left\",\"u-typo-small\":\"u-typo-small\",\"u-typo-base\":\"u-typo-base\",\"u-text-wrap\":\"u-text-wrap\",\"theme\":\"theme\",\"theme--base\":\"theme--base\",\"theme--gray-light\":\"theme--gray-light\",\"theme--brown\":\"theme--brown\",\"theme--brown-light\":\"theme--brown-light\",\"u-spacer-small\":\"u-spacer-small\",\"u-spacer-t-small\":\"u-spacer-t-small\",\"u-spacer-b-small\":\"u-spacer-b-small\",\"u-spacer-medium\":\"u-spacer-medium\",\"u-spacer-t-medium\":\"u-spacer-t-medium\",\"u-spacer-b-medium\":\"u-spacer-b-medium\",\"u-spacer-large\":\"u-spacer-large\",\"u-spacer-t-large\":\"u-spacer-t-large\",\"u-spacer-b-large\":\"u-spacer-b-large\",\"flex-row\":\"flex-row\",\"flex-column\":\"flex-column\",\"flex-row-reverse\":\"flex-row-reverse\",\"flex-column-reverse\":\"flex-column-reverse\",\"flex-wrap\":\"flex-wrap\",\"flex-nowrap\":\"flex-nowrap\",\"flex-wrap-reverse\":\"flex-wrap-reverse\",\"justify-content-start\":\"justify-content-start\",\"justify-content-end\":\"justify-content-end\",\"justify-content-center\":\"justify-content-center\",\"justify-content-between\":\"justify-content-between\",\"justify-content-around\":\"justify-content-around\",\"align-items-start\":\"align-items-start\",\"align-items-end\":\"align-items-end\",\"align-items-center\":\"align-items-center\",\"align-items-baseline\":\"align-items-baseline\",\"align-items-stretch\":\"align-items-stretch\",\"align-content-start\":\"align-content-start\",\"align-content-end\":\"align-content-end\",\"align-content-center\":\"align-content-center\",\"align-content-between\":\"align-content-between\",\"align-content-around\":\"align-content-around\",\"align-content-stretch\":\"align-content-stretch\",\"align-self-auto\":\"align-self-auto\",\"align-self-start\":\"align-self-start\",\"align-self-end\":\"align-self-end\",\"align-self-center\":\"align-self-center\",\"align-self-baseline\":\"align-self-baseline\",\"align-self-stretch\":\"align-self-stretch\",\"flex-grow-shrink-on\":\"flex-grow-shrink-on\",\"flex-grow-shrink-off\":\"flex-grow-shrink-off\",\"flex-sm-row\":\"flex-sm-row\",\"flex-sm-column\":\"flex-sm-column\",\"flex-sm-row-reverse\":\"flex-sm-row-reverse\",\"flex-sm-column-reverse\":\"flex-sm-column-reverse\",\"flex-sm-wrap\":\"flex-sm-wrap\",\"flex-sm-nowrap\":\"flex-sm-nowrap\",\"flex-sm-wrap-reverse\":\"flex-sm-wrap-reverse\",\"justify-content-sm-start\":\"justify-content-sm-start\",\"justify-content-sm-end\":\"justify-content-sm-end\",\"justify-content-sm-center\":\"justify-content-sm-center\",\"justify-content-sm-between\":\"justify-content-sm-between\",\"justify-content-sm-around\":\"justify-content-sm-around\",\"align-items-sm-start\":\"align-items-sm-start\",\"align-items-sm-end\":\"align-items-sm-end\",\"align-items-sm-center\":\"align-items-sm-center\",\"align-items-sm-baseline\":\"align-items-sm-baseline\",\"align-items-sm-stretch\":\"align-items-sm-stretch\",\"align-content-sm-start\":\"align-content-sm-start\",\"align-content-sm-end\":\"align-content-sm-end\",\"align-content-sm-center\":\"align-content-sm-center\",\"align-content-sm-between\":\"align-content-sm-between\",\"align-content-sm-around\":\"align-content-sm-around\",\"align-content-sm-stretch\":\"align-content-sm-stretch\",\"align-self-sm-auto\":\"align-self-sm-auto\",\"align-self-sm-start\":\"align-self-sm-start\",\"align-self-sm-end\":\"align-self-sm-end\",\"align-self-sm-center\":\"align-self-sm-center\",\"align-self-sm-baseline\":\"align-self-sm-baseline\",\"align-self-sm-stretch\":\"align-self-sm-stretch\",\"flex-grow-shrink-sm-on\":\"flex-grow-shrink-sm-on\",\"flex-grow-shrink-sm-off\":\"flex-grow-shrink-sm-off\",\"flex-md-row\":\"flex-md-row\",\"flex-md-column\":\"flex-md-column\",\"flex-md-row-reverse\":\"flex-md-row-reverse\",\"flex-md-column-reverse\":\"flex-md-column-reverse\",\"flex-md-wrap\":\"flex-md-wrap\",\"flex-md-nowrap\":\"flex-md-nowrap\",\"flex-md-wrap-reverse\":\"flex-md-wrap-reverse\",\"justify-content-md-start\":\"justify-content-md-start\",\"justify-content-md-end\":\"justify-content-md-end\",\"justify-content-md-center\":\"justify-content-md-center\",\"justify-content-md-between\":\"justify-content-md-between\",\"justify-content-md-around\":\"justify-content-md-around\",\"align-items-md-start\":\"align-items-md-start\",\"align-items-md-end\":\"align-items-md-end\",\"align-items-md-center\":\"align-items-md-center\",\"align-items-md-baseline\":\"align-items-md-baseline\",\"align-items-md-stretch\":\"align-items-md-stretch\",\"align-content-md-start\":\"align-content-md-start\",\"align-content-md-end\":\"align-content-md-end\",\"align-content-md-center\":\"align-content-md-center\",\"align-content-md-between\":\"align-content-md-between\",\"align-content-md-around\":\"align-content-md-around\",\"align-content-md-stretch\":\"align-content-md-stretch\",\"align-self-md-auto\":\"align-self-md-auto\",\"align-self-md-start\":\"align-self-md-start\",\"align-self-md-end\":\"align-self-md-end\",\"align-self-md-center\":\"align-self-md-center\",\"align-self-md-baseline\":\"align-self-md-baseline\",\"align-self-md-stretch\":\"align-self-md-stretch\",\"flex-grow-shrink-md-on\":\"flex-grow-shrink-md-on\",\"flex-grow-shrink-md-off\":\"flex-grow-shrink-md-off\",\"flex-lg-row\":\"flex-lg-row\",\"flex-lg-column\":\"flex-lg-column\",\"flex-lg-row-reverse\":\"flex-lg-row-reverse\",\"flex-lg-column-reverse\":\"flex-lg-column-reverse\",\"flex-lg-wrap\":\"flex-lg-wrap\",\"flex-lg-nowrap\":\"flex-lg-nowrap\",\"flex-lg-wrap-reverse\":\"flex-lg-wrap-reverse\",\"justify-content-lg-start\":\"justify-content-lg-start\",\"justify-content-lg-end\":\"justify-content-lg-end\",\"justify-content-lg-center\":\"justify-content-lg-center\",\"justify-content-lg-between\":\"justify-content-lg-between\",\"justify-content-lg-around\":\"justify-content-lg-around\",\"align-items-lg-start\":\"align-items-lg-start\",\"align-items-lg-end\":\"align-items-lg-end\",\"align-items-lg-center\":\"align-items-lg-center\",\"align-items-lg-baseline\":\"align-items-lg-baseline\",\"align-items-lg-stretch\":\"align-items-lg-stretch\",\"align-content-lg-start\":\"align-content-lg-start\",\"align-content-lg-end\":\"align-content-lg-end\",\"align-content-lg-center\":\"align-content-lg-center\",\"align-content-lg-between\":\"align-content-lg-between\",\"align-content-lg-around\":\"align-content-lg-around\",\"align-content-lg-stretch\":\"align-content-lg-stretch\",\"align-self-lg-auto\":\"align-self-lg-auto\",\"align-self-lg-start\":\"align-self-lg-start\",\"align-self-lg-end\":\"align-self-lg-end\",\"align-self-lg-center\":\"align-self-lg-center\",\"align-self-lg-baseline\":\"align-self-lg-baseline\",\"align-self-lg-stretch\":\"align-self-lg-stretch\",\"flex-grow-shrink-lg-on\":\"flex-grow-shrink-lg-on\",\"flex-grow-shrink-lg-off\":\"flex-grow-shrink-lg-off\",\"flex-xl-row\":\"flex-xl-row\",\"flex-xl-column\":\"flex-xl-column\",\"flex-xl-row-reverse\":\"flex-xl-row-reverse\",\"flex-xl-column-reverse\":\"flex-xl-column-reverse\",\"flex-xl-wrap\":\"flex-xl-wrap\",\"flex-xl-nowrap\":\"flex-xl-nowrap\",\"flex-xl-wrap-reverse\":\"flex-xl-wrap-reverse\",\"justify-content-xl-start\":\"justify-content-xl-start\",\"justify-content-xl-end\":\"justify-content-xl-end\",\"justify-content-xl-center\":\"justify-content-xl-center\",\"justify-content-xl-between\":\"justify-content-xl-between\",\"justify-content-xl-around\":\"justify-content-xl-around\",\"align-items-xl-start\":\"align-items-xl-start\",\"align-items-xl-end\":\"align-items-xl-end\",\"align-items-xl-center\":\"align-items-xl-center\",\"align-items-xl-baseline\":\"align-items-xl-baseline\",\"align-items-xl-stretch\":\"align-items-xl-stretch\",\"align-content-xl-start\":\"align-content-xl-start\",\"align-content-xl-end\":\"align-content-xl-end\",\"align-content-xl-center\":\"align-content-xl-center\",\"align-content-xl-between\":\"align-content-xl-between\",\"align-content-xl-around\":\"align-content-xl-around\",\"align-content-xl-stretch\":\"align-content-xl-stretch\",\"align-self-xl-auto\":\"align-self-xl-auto\",\"align-self-xl-start\":\"align-self-xl-start\",\"align-self-xl-end\":\"align-self-xl-end\",\"align-self-xl-center\":\"align-self-xl-center\",\"align-self-xl-baseline\":\"align-self-xl-baseline\",\"align-self-xl-stretch\":\"align-self-xl-stretch\",\"flex-grow-shrink-xl-on\":\"flex-grow-shrink-xl-on\",\"flex-grow-shrink-xl-off\":\"flex-grow-shrink-xl-off\",\"flex-xxl-row\":\"flex-xxl-row\",\"flex-xxl-column\":\"flex-xxl-column\",\"flex-xxl-row-reverse\":\"flex-xxl-row-reverse\",\"flex-xxl-column-reverse\":\"flex-xxl-column-reverse\",\"flex-xxl-wrap\":\"flex-xxl-wrap\",\"flex-xxl-nowrap\":\"flex-xxl-nowrap\",\"flex-xxl-wrap-reverse\":\"flex-xxl-wrap-reverse\",\"justify-content-xxl-start\":\"justify-content-xxl-start\",\"justify-content-xxl-end\":\"justify-content-xxl-end\",\"justify-content-xxl-center\":\"justify-content-xxl-center\",\"justify-content-xxl-between\":\"justify-content-xxl-between\",\"justify-content-xxl-around\":\"justify-content-xxl-around\",\"align-items-xxl-start\":\"align-items-xxl-start\",\"align-items-xxl-end\":\"align-items-xxl-end\",\"align-items-xxl-center\":\"align-items-xxl-center\",\"align-items-xxl-baseline\":\"align-items-xxl-baseline\",\"align-items-xxl-stretch\":\"align-items-xxl-stretch\",\"align-content-xxl-start\":\"align-content-xxl-start\",\"align-content-xxl-end\":\"align-content-xxl-end\",\"align-content-xxl-center\":\"align-content-xxl-center\",\"align-content-xxl-between\":\"align-content-xxl-between\",\"align-content-xxl-around\":\"align-content-xxl-around\",\"align-content-xxl-stretch\":\"align-content-xxl-stretch\",\"align-self-xxl-auto\":\"align-self-xxl-auto\",\"align-self-xxl-start\":\"align-self-xxl-start\",\"align-self-xxl-end\":\"align-self-xxl-end\",\"align-self-xxl-center\":\"align-self-xxl-center\",\"align-self-xxl-baseline\":\"align-self-xxl-baseline\",\"align-self-xxl-stretch\":\"align-self-xxl-stretch\",\"flex-grow-shrink-xxl-on\":\"flex-grow-shrink-xxl-on\",\"flex-grow-shrink-xxl-off\":\"flex-grow-shrink-xxl-off\",\"d-none\":\"d-none\",\"d-inline\":\"d-inline\",\"d-inline-block\":\"d-inline-block\",\"d-block\":\"d-block\",\"d-table\":\"d-table\",\"d-table-row\":\"d-table-row\",\"d-table-cell\":\"d-table-cell\",\"d-flex\":\"d-flex\",\"d-inline-flex\":\"d-inline-flex\",\"d-sm-none\":\"d-sm-none\",\"d-sm-inline\":\"d-sm-inline\",\"d-sm-inline-block\":\"d-sm-inline-block\",\"d-sm-block\":\"d-sm-block\",\"d-sm-table\":\"d-sm-table\",\"d-sm-table-row\":\"d-sm-table-row\",\"d-sm-table-cell\":\"d-sm-table-cell\",\"d-sm-flex\":\"d-sm-flex\",\"d-sm-inline-flex\":\"d-sm-inline-flex\",\"d-md-none\":\"d-md-none\",\"d-md-inline\":\"d-md-inline\",\"d-md-inline-block\":\"d-md-inline-block\",\"d-md-block\":\"d-md-block\",\"d-md-table\":\"d-md-table\",\"d-md-table-row\":\"d-md-table-row\",\"d-md-table-cell\":\"d-md-table-cell\",\"d-md-flex\":\"d-md-flex\",\"d-md-inline-flex\":\"d-md-inline-flex\",\"d-lg-none\":\"d-lg-none\",\"d-lg-inline\":\"d-lg-inline\",\"d-lg-inline-block\":\"d-lg-inline-block\",\"d-lg-block\":\"d-lg-block\",\"d-lg-table\":\"d-lg-table\",\"d-lg-table-row\":\"d-lg-table-row\",\"d-lg-table-cell\":\"d-lg-table-cell\",\"d-lg-flex\":\"d-lg-flex\",\"d-lg-inline-flex\":\"d-lg-inline-flex\",\"d-xl-none\":\"d-xl-none\",\"d-xl-inline\":\"d-xl-inline\",\"d-xl-inline-block\":\"d-xl-inline-block\",\"d-xl-block\":\"d-xl-block\",\"d-xl-table\":\"d-xl-table\",\"d-xl-table-row\":\"d-xl-table-row\",\"d-xl-table-cell\":\"d-xl-table-cell\",\"d-xl-flex\":\"d-xl-flex\",\"d-xl-inline-flex\":\"d-xl-inline-flex\",\"d-xxl-none\":\"d-xxl-none\",\"d-xxl-inline\":\"d-xxl-inline\",\"d-xxl-inline-block\":\"d-xxl-inline-block\",\"d-xxl-block\":\"d-xxl-block\",\"d-xxl-table\":\"d-xxl-table\",\"d-xxl-table-row\":\"d-xxl-table-row\",\"d-xxl-table-cell\":\"d-xxl-table-cell\",\"d-xxl-flex\":\"d-xxl-flex\",\"d-xxl-inline-flex\":\"d-xxl-inline-flex\",\"img-fluid\":\"img-fluid\",\"img-fluid--vertical\":\"img-fluid--vertical\",\"img-fluid--max-width\":\"img-fluid--max-width\",\"is-lazy\":\"is-lazy\",\"--lazy\":\"---lazy\",\"lazyload\":\"lazyload\",\"lazyloaded\":\"lazyloaded\",\"container\":\"container\",\"container-fluid\":\"container-fluid\",\"row\":\"row\",\"no-gutters\":\"no-gutters\",\"col\":\"col\",\"col-xxl\":\"col-xxl\",\"col-xxl-auto\":\"col-xxl-auto\",\"col-xxl-12\":\"col-xxl-12\",\"col-xxl-11\":\"col-xxl-11\",\"col-xxl-10\":\"col-xxl-10\",\"col-xxl-9\":\"col-xxl-9\",\"col-xxl-8\":\"col-xxl-8\",\"col-xxl-7\":\"col-xxl-7\",\"col-xxl-6\":\"col-xxl-6\",\"col-xxl-5\":\"col-xxl-5\",\"col-xxl-4\":\"col-xxl-4\",\"col-xxl-3\":\"col-xxl-3\",\"col-xxl-2\":\"col-xxl-2\",\"col-xxl-1\":\"col-xxl-1\",\"col-xl\":\"col-xl\",\"col-xl-auto\":\"col-xl-auto\",\"col-xl-12\":\"col-xl-12\",\"col-xl-11\":\"col-xl-11\",\"col-xl-10\":\"col-xl-10\",\"col-xl-9\":\"col-xl-9\",\"col-xl-8\":\"col-xl-8\",\"col-xl-7\":\"col-xl-7\",\"col-xl-6\":\"col-xl-6\",\"col-xl-5\":\"col-xl-5\",\"col-xl-4\":\"col-xl-4\",\"col-xl-3\":\"col-xl-3\",\"col-xl-2\":\"col-xl-2\",\"col-xl-1\":\"col-xl-1\",\"col-lg\":\"col-lg\",\"col-lg-auto\":\"col-lg-auto\",\"col-lg-12\":\"col-lg-12\",\"col-lg-11\":\"col-lg-11\",\"col-lg-10\":\"col-lg-10\",\"col-lg-9\":\"col-lg-9\",\"col-lg-8\":\"col-lg-8\",\"col-lg-7\":\"col-lg-7\",\"col-lg-6\":\"col-lg-6\",\"col-lg-5\":\"col-lg-5\",\"col-lg-4\":\"col-lg-4\",\"col-lg-3\":\"col-lg-3\",\"col-lg-2\":\"col-lg-2\",\"col-lg-1\":\"col-lg-1\",\"col-md\":\"col-md\",\"col-md-auto\":\"col-md-auto\",\"col-md-12\":\"col-md-12\",\"col-md-11\":\"col-md-11\",\"col-md-10\":\"col-md-10\",\"col-md-9\":\"col-md-9\",\"col-md-8\":\"col-md-8\",\"col-md-7\":\"col-md-7\",\"col-md-6\":\"col-md-6\",\"col-md-5\":\"col-md-5\",\"col-md-4\":\"col-md-4\",\"col-md-3\":\"col-md-3\",\"col-md-2\":\"col-md-2\",\"col-md-1\":\"col-md-1\",\"col-sm\":\"col-sm\",\"col-sm-auto\":\"col-sm-auto\",\"col-sm-12\":\"col-sm-12\",\"col-sm-11\":\"col-sm-11\",\"col-sm-10\":\"col-sm-10\",\"col-sm-9\":\"col-sm-9\",\"col-sm-8\":\"col-sm-8\",\"col-sm-7\":\"col-sm-7\",\"col-sm-6\":\"col-sm-6\",\"col-sm-5\":\"col-sm-5\",\"col-sm-4\":\"col-sm-4\",\"col-sm-3\":\"col-sm-3\",\"col-sm-2\":\"col-sm-2\",\"col-sm-1\":\"col-sm-1\",\"col-auto\":\"col-auto\",\"col-12\":\"col-12\",\"col-11\":\"col-11\",\"col-10\":\"col-10\",\"col-9\":\"col-9\",\"col-8\":\"col-8\",\"col-7\":\"col-7\",\"col-6\":\"col-6\",\"col-5\":\"col-5\",\"col-4\":\"col-4\",\"col-3\":\"col-3\",\"col-2\":\"col-2\",\"col-1\":\"col-1\",\"order-first\":\"order-first\",\"order-last\":\"order-last\",\"order-0\":\"order-0\",\"order-1\":\"order-1\",\"order-2\":\"order-2\",\"order-3\":\"order-3\",\"order-4\":\"order-4\",\"order-5\":\"order-5\",\"order-6\":\"order-6\",\"order-7\":\"order-7\",\"order-8\":\"order-8\",\"order-9\":\"order-9\",\"order-10\":\"order-10\",\"order-11\":\"order-11\",\"order-12\":\"order-12\",\"offset-1\":\"offset-1\",\"offset-2\":\"offset-2\",\"offset-3\":\"offset-3\",\"offset-4\":\"offset-4\",\"offset-5\":\"offset-5\",\"offset-6\":\"offset-6\",\"offset-7\":\"offset-7\",\"offset-8\":\"offset-8\",\"offset-9\":\"offset-9\",\"offset-10\":\"offset-10\",\"offset-11\":\"offset-11\",\"order-sm-first\":\"order-sm-first\",\"order-sm-last\":\"order-sm-last\",\"order-sm-0\":\"order-sm-0\",\"order-sm-1\":\"order-sm-1\",\"order-sm-2\":\"order-sm-2\",\"order-sm-3\":\"order-sm-3\",\"order-sm-4\":\"order-sm-4\",\"order-sm-5\":\"order-sm-5\",\"order-sm-6\":\"order-sm-6\",\"order-sm-7\":\"order-sm-7\",\"order-sm-8\":\"order-sm-8\",\"order-sm-9\":\"order-sm-9\",\"order-sm-10\":\"order-sm-10\",\"order-sm-11\":\"order-sm-11\",\"order-sm-12\":\"order-sm-12\",\"offset-sm-0\":\"offset-sm-0\",\"offset-sm-1\":\"offset-sm-1\",\"offset-sm-2\":\"offset-sm-2\",\"offset-sm-3\":\"offset-sm-3\",\"offset-sm-4\":\"offset-sm-4\",\"offset-sm-5\":\"offset-sm-5\",\"offset-sm-6\":\"offset-sm-6\",\"offset-sm-7\":\"offset-sm-7\",\"offset-sm-8\":\"offset-sm-8\",\"offset-sm-9\":\"offset-sm-9\",\"offset-sm-10\":\"offset-sm-10\",\"offset-sm-11\":\"offset-sm-11\",\"order-md-first\":\"order-md-first\",\"order-md-last\":\"order-md-last\",\"order-md-0\":\"order-md-0\",\"order-md-1\":\"order-md-1\",\"order-md-2\":\"order-md-2\",\"order-md-3\":\"order-md-3\",\"order-md-4\":\"order-md-4\",\"order-md-5\":\"order-md-5\",\"order-md-6\":\"order-md-6\",\"order-md-7\":\"order-md-7\",\"order-md-8\":\"order-md-8\",\"order-md-9\":\"order-md-9\",\"order-md-10\":\"order-md-10\",\"order-md-11\":\"order-md-11\",\"order-md-12\":\"order-md-12\",\"offset-md-0\":\"offset-md-0\",\"offset-md-1\":\"offset-md-1\",\"offset-md-2\":\"offset-md-2\",\"offset-md-3\":\"offset-md-3\",\"offset-md-4\":\"offset-md-4\",\"offset-md-5\":\"offset-md-5\",\"offset-md-6\":\"offset-md-6\",\"offset-md-7\":\"offset-md-7\",\"offset-md-8\":\"offset-md-8\",\"offset-md-9\":\"offset-md-9\",\"offset-md-10\":\"offset-md-10\",\"offset-md-11\":\"offset-md-11\",\"order-lg-first\":\"order-lg-first\",\"order-lg-last\":\"order-lg-last\",\"order-lg-0\":\"order-lg-0\",\"order-lg-1\":\"order-lg-1\",\"order-lg-2\":\"order-lg-2\",\"order-lg-3\":\"order-lg-3\",\"order-lg-4\":\"order-lg-4\",\"order-lg-5\":\"order-lg-5\",\"order-lg-6\":\"order-lg-6\",\"order-lg-7\":\"order-lg-7\",\"order-lg-8\":\"order-lg-8\",\"order-lg-9\":\"order-lg-9\",\"order-lg-10\":\"order-lg-10\",\"order-lg-11\":\"order-lg-11\",\"order-lg-12\":\"order-lg-12\",\"offset-lg-0\":\"offset-lg-0\",\"offset-lg-1\":\"offset-lg-1\",\"offset-lg-2\":\"offset-lg-2\",\"offset-lg-3\":\"offset-lg-3\",\"offset-lg-4\":\"offset-lg-4\",\"offset-lg-5\":\"offset-lg-5\",\"offset-lg-6\":\"offset-lg-6\",\"offset-lg-7\":\"offset-lg-7\",\"offset-lg-8\":\"offset-lg-8\",\"offset-lg-9\":\"offset-lg-9\",\"offset-lg-10\":\"offset-lg-10\",\"offset-lg-11\":\"offset-lg-11\",\"order-xl-first\":\"order-xl-first\",\"order-xl-last\":\"order-xl-last\",\"order-xl-0\":\"order-xl-0\",\"order-xl-1\":\"order-xl-1\",\"order-xl-2\":\"order-xl-2\",\"order-xl-3\":\"order-xl-3\",\"order-xl-4\":\"order-xl-4\",\"order-xl-5\":\"order-xl-5\",\"order-xl-6\":\"order-xl-6\",\"order-xl-7\":\"order-xl-7\",\"order-xl-8\":\"order-xl-8\",\"order-xl-9\":\"order-xl-9\",\"order-xl-10\":\"order-xl-10\",\"order-xl-11\":\"order-xl-11\",\"order-xl-12\":\"order-xl-12\",\"offset-xl-0\":\"offset-xl-0\",\"offset-xl-1\":\"offset-xl-1\",\"offset-xl-2\":\"offset-xl-2\",\"offset-xl-3\":\"offset-xl-3\",\"offset-xl-4\":\"offset-xl-4\",\"offset-xl-5\":\"offset-xl-5\",\"offset-xl-6\":\"offset-xl-6\",\"offset-xl-7\":\"offset-xl-7\",\"offset-xl-8\":\"offset-xl-8\",\"offset-xl-9\":\"offset-xl-9\",\"offset-xl-10\":\"offset-xl-10\",\"offset-xl-11\":\"offset-xl-11\",\"order-xxl-first\":\"order-xxl-first\",\"order-xxl-last\":\"order-xxl-last\",\"order-xxl-0\":\"order-xxl-0\",\"order-xxl-1\":\"order-xxl-1\",\"order-xxl-2\":\"order-xxl-2\",\"order-xxl-3\":\"order-xxl-3\",\"order-xxl-4\":\"order-xxl-4\",\"order-xxl-5\":\"order-xxl-5\",\"order-xxl-6\":\"order-xxl-6\",\"order-xxl-7\":\"order-xxl-7\",\"order-xxl-8\":\"order-xxl-8\",\"order-xxl-9\":\"order-xxl-9\",\"order-xxl-10\":\"order-xxl-10\",\"order-xxl-11\":\"order-xxl-11\",\"order-xxl-12\":\"order-xxl-12\",\"offset-xxl-0\":\"offset-xxl-0\",\"offset-xxl-1\":\"offset-xxl-1\",\"offset-xxl-2\":\"offset-xxl-2\",\"offset-xxl-3\":\"offset-xxl-3\",\"offset-xxl-4\":\"offset-xxl-4\",\"offset-xxl-5\":\"offset-xxl-5\",\"offset-xxl-6\":\"offset-xxl-6\",\"offset-xxl-7\":\"offset-xxl-7\",\"offset-xxl-8\":\"offset-xxl-8\",\"offset-xxl-9\":\"offset-xxl-9\",\"offset-xxl-10\":\"offset-xxl-10\",\"offset-xxl-11\":\"offset-xxl-11\",\"icon-arrow_down\":\"icon-arrow_down\",\"icon-close\":\"icon-close\",\"icon-documents\":\"icon-documents\",\"icon-launch\":\"icon-launch\",\"icon-send\":\"icon-send\",\"icon-search\":\"icon-search\",\"icon-chevron-right\":\"icon-chevron-right\",\"icon-chevron-left\":\"icon-chevron-left\",\"icon-chevron-down\":\"icon-chevron-down\",\"icon-chevron-up\":\"icon-chevron-up\",\"icon-remove\":\"icon-remove\",\"icon-add\":\"icon-add\",\"icon-linkedin\":\"icon-linkedin\",\"swiper\":\"swiper\",\"swiper-vertical\":\"swiper-vertical\",\"swiper-wrapper\":\"swiper-wrapper\",\"swiper-android\":\"swiper-android\",\"swiper-slide\":\"swiper-slide\",\"swiper-pointer-events\":\"swiper-pointer-events\",\"swiper-slide-invisible-blank\":\"swiper-slide-invisible-blank\",\"swiper-autoheight\":\"swiper-autoheight\",\"swiper-backface-hidden\":\"swiper-backface-hidden\",\"swiper-3d\":\"swiper-3d\",\"swiper-css-mode\":\"swiper-css-mode\",\"swiper-slide-shadow\":\"swiper-slide-shadow\",\"swiper-slide-shadow-left\":\"swiper-slide-shadow-left\",\"swiper-slide-shadow-right\":\"swiper-slide-shadow-right\",\"swiper-slide-shadow-top\":\"swiper-slide-shadow-top\",\"swiper-slide-shadow-bottom\":\"swiper-slide-shadow-bottom\",\"swiper-cube-shadow\":\"swiper-cube-shadow\",\"swiper-horizontal\":\"swiper-horizontal\",\"swiper-centered\":\"swiper-centered\",\"swiper-button-prev\":\"swiper-button-prev\",\"swiper-button-next\":\"swiper-button-next\",\"swiper-button-disabled\":\"swiper-button-disabled\",\"pagination-small\":\"pagination-small\",\"swiper-pagination\":\"swiper-pagination\",\"swiper-pagination-bullet\":\"swiper-pagination-bullet\",\"swiper-pagination-bullet-active\":\"swiper-pagination-bullet-active\",\"c-section\":\"c-section\",\"c-section-wrap\":\"c-section-wrap\",\"c-cookie-consent\":\"c-cookie-consent\",\"is-open\":\"is-open\",\"CybotCookiebotDialogPoweredbyCybot\":\"CybotCookiebotDialogPoweredbyCybot\",\"CybotCookiebotDialogPoweredByText\":\"CybotCookiebotDialogPoweredByText\",\"CookiebotWidget\":\"CookiebotWidget\",\"CookiebotWidget-body\":\"CookiebotWidget-body\",\"CookiebotWidget-main-logo\":\"CookiebotWidget-main-logo\",\"cookie-notice\":\"cookie-notice\",\"CybotCookiebotDialogFooter\":\"CybotCookiebotDialogFooter\",\"CybotCookiebotDialogBodyButtonAccept\":\"CybotCookiebotDialogBodyButtonAccept\",\"CybotCookiebotDialogBodyLevelButtonAccept\":\"CybotCookiebotDialogBodyLevelButtonAccept\",\"CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll\":\"CybotCookiebotDialogBodyLevelButtonLevelOptinAllowAll\",\"CookiebotWidget-buttons\":\"CookiebotWidget-buttons\",\"CookiebotWidget-btn-change\":\"CookiebotWidget-btn-change\",\"CybotCookiebotDialogBodyButton\":\"CybotCookiebotDialogBodyButton\",\"CybotCookiebotDialogBodyLevelButtonCustomize\":\"CybotCookiebotDialogBodyLevelButtonCustomize\",\"CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection\":\"CybotCookiebotDialogBodyLevelButtonLevelOptinAllowallSelection\",\"CybotCookiebotDialog\":\"CybotCookiebotDialog\",\"CybotEdge\":\"CybotEdge\",\"CybotCookiebotDialogBodyEdgeMoreDetails\":\"CybotCookiebotDialogBodyEdgeMoreDetails\",\"CybotCookiebotDialogBodyLevelButtonSlider\":\"CybotCookiebotDialogBodyLevelButtonSlider\",\"CybotCookiebotDialogNav\":\"CybotCookiebotDialogNav\",\"CybotCookiebotDialogNavItemLink\":\"CybotCookiebotDialogNavItemLink\",\"CybotCookiebotDialogActive\":\"CybotCookiebotDialogActive\",\"CookieCard\":\"CookieCard\",\"CybotCookiebotDialogDetailBodyContentCookieContainerButton\":\"CybotCookiebotDialogDetailBodyContentCookieContainerButton\",\"CybotCookiebotDialogDetailBodyContentIABv2Tab\":\"CybotCookiebotDialogDetailBodyContentIABv2Tab\",\"CybotCookiebotDialogDetailBodyContentCookieContainerTypes\":\"CybotCookiebotDialogDetailBodyContentCookieContainerTypes\",\"CybotCookiebotDialogDetailBodyContentCookieProvider\":\"CybotCookiebotDialogDetailBodyContentCookieProvider\",\"CybotCookiebotDialogDetailBodyContentCookieInfoCount\":\"CybotCookiebotDialogDetailBodyContentCookieInfoCount\",\"CybotCookiebotDialogBodyContentText\":\"CybotCookiebotDialogBodyContentText\",\"CybotCookiebotDialogBodyLevelButtonIABHeaderViewPartnersLink\":\"CybotCookiebotDialogBodyLevelButtonIABHeaderViewPartnersLink\",\"CybotCookiebotDialogDetailBulkConsentList\":\"CybotCookiebotDialogDetailBulkConsentList\",\"CybotCookiebotDialogDetailFooter\":\"CybotCookiebotDialogDetailFooter\",\"CybotCookiebotDialogBodyLevelButtonIABDescription\":\"CybotCookiebotDialogBodyLevelButtonIABDescription\",\"CybotCookiebotDialogDetailBodyContentCookieLink\":\"CybotCookiebotDialogDetailBodyContentCookieLink\",\"CybotCookiebotDialogDetailBodyContentTextAbout\":\"CybotCookiebotDialogDetailBodyContentTextAbout\",\"CookiebotWidget-btn-withdraw\":\"CookiebotWidget-btn-withdraw\",\"CookiebotWidget-consents-list\":\"CookiebotWidget-consents-list\",\"CookiebotWidget-approved\":\"CookiebotWidget-approved\",\"CookiebotWidget-consent-details\":\"CookiebotWidget-consent-details\",\"c-header\":\"c-header\",\"c-header-logo\":\"c-header-logo\",\"c-header-cultures\":\"c-header-cultures\",\"c-header-toggle\":\"c-header-toggle\",\"c-header-toggle-inner\":\"c-header-toggle-inner\",\"is-active\":\"is-active\",\"c-header-toggle-inner-bar\":\"c-header-toggle-inner-bar\",\"modal-is-open\":\"modal-is-open\",\"header-is-open\":\"header-is-open\",\"c-header-collapse\":\"c-header-collapse\",\"c-header-collapse-content\":\"c-header-collapse-content\",\"c-header-top\":\"c-header-top\",\"c-header-top-form\":\"c-header-top-form\",\"c-header-nav\":\"c-header-nav\",\"c-header-nav-item\":\"c-header-nav-item\",\"c-header-nav-sub\":\"c-header-nav-sub\",\"c-header__form__submit\":\"c-header__form__submit\",\"c-footer\":\"c-footer\",\"c-text\":\"c-text\",\"c-formfield\":\"c-formfield\",\"c-footer__additional-logos\":\"c-footer__additional-logos\",\"c-footer__additional-logos__image\":\"c-footer__additional-logos__image\",\"c-modal\":\"c-modal\",\"c-modal--small\":\"c-modal--small\",\"c-modal__inner\":\"c-modal__inner\",\"c-modal__header\":\"c-modal__header\",\"icon\":\"icon\",\"c-modal__content\":\"c-modal__content\",\"c-list\":\"c-list\",\"c-list__item\":\"c-list__item\",\"is-disabled\":\"is-disabled\",\"c-list--inline\":\"c-list--inline\",\"c-list--seperator\":\"c-list--seperator\",\"c-highlight-list\":\"c-highlight-list\",\"c-breadcrumb\":\"c-breadcrumb\",\"c-layout\":\"c-layout\",\"c-layout-item\":\"c-layout-item\",\"c-layout-item--fixed\":\"c-layout-item--fixed\",\"c-lead\":\"c-lead\",\"c-lead--narrow\":\"c-lead--narrow\",\"c-text-media\":\"c-text-media\",\"c-text-media--right\":\"c-text-media--right\",\"c-social-medias\":\"c-social-medias\",\"c-social-medias__item\":\"c-social-medias__item\",\"c-formfield--outline\":\"c-formfield--outline\",\"c-formfield__label\":\"c-formfield__label\",\"c-formfield__inputfield\":\"c-formfield__inputfield\",\"c-formfield__prefix\":\"c-formfield__prefix\",\"has-value\":\"has-value\",\"c-formfield--outline--dark\":\"c-formfield--outline--dark\",\"c-formfield--inline\":\"c-formfield--inline\",\"umbraco-forms-field-wrapper\":\"umbraco-forms-field-wrapper\",\"is-static\":\"is-static\",\"c-formfield__list\":\"c-formfield__list\",\"c-formfield__text\":\"c-formfield__text\",\"c-formfield__border\":\"c-formfield__border\",\"c-formfield__suffix\":\"c-formfield__suffix\",\"c-formfield__border-wrapper\":\"c-formfield__border-wrapper\",\"c-formfield__suffix--inline\":\"c-formfield__suffix--inline\",\"c-formfield__check\":\"c-formfield__check\",\"c-formfield__radio\":\"c-formfield__radio\",\"c-formfield__toggle\":\"c-formfield__toggle\",\"field-validation-error\":\"field-validation-error\",\"validation-summary-errors\":\"validation-summary-errors\",\"c-filter\":\"c-filter\",\"c-filter-submit\":\"c-filter-submit\",\"c-filter-result-item\":\"c-filter-result-item\",\"c-filter-result-item-title\":\"c-filter-result-item-title\",\"c-filter__header\":\"c-filter__header\",\"c-filter__content\":\"c-filter__content\",\"c-button\":\"c-button\",\"--active\":\"---active\",\"c-button--small\":\"c-button--small\",\"c-button--cookie-notice\":\"c-button--cookie-notice\",\"c-button--outline\":\"c-button--outline\",\"c-link\":\"c-link\",\"c-link-underline\":\"c-link-underline\",\"c-tile\":\"c-tile\",\"c-tile--no-border\":\"c-tile--no-border\",\"c-tile--icon\":\"c-tile--icon\",\"c-tile-media\":\"c-tile-media\",\"c-tile--inline\":\"c-tile--inline\",\"c-tile--shade\":\"c-tile--shade\",\"c-tile-wrapper\":\"c-tile-wrapper\",\"c-tile-content\":\"c-tile-content\",\"c-tile-title\":\"c-tile-title\",\"c-tile-subtitle\":\"c-tile-subtitle\",\"c-tile-link\":\"c-tile-link\",\"c-tile--download\":\"c-tile--download\",\"c-tile-media-wrapper\":\"c-tile-media-wrapper\",\"c-tile-container\":\"c-tile-container\",\"c-tile--no-shadow\":\"c-tile--no-shadow\",\"c-player\":\"c-player\",\"c-player__video\":\"c-player__video\",\"is-playing\":\"is-playing\",\"c-player__overlay\":\"c-player__overlay\",\"c-player__icon\":\"c-player__icon\",\"autoplay\":\"autoplay\",\"c-switch\":\"c-switch\",\"c-headline\":\"c-headline\",\"c-headline__media\":\"c-headline__media\",\"c-headline__content\":\"c-headline__content\",\"c-headline__content--no-media\":\"c-headline__content--no-media\",\"c-accordion\":\"c-accordion\",\"c-accordion__header\":\"c-accordion__header\",\"c-accordion__header--light\":\"c-accordion__header--light\",\"c-accordion__icon\":\"c-accordion__icon\",\"c-accordion__title\":\"c-accordion__title\",\"c-accordion__content\":\"c-accordion__content\",\"c-accordion__content__no-padding\":\"c-accordion__content__no-padding\",\"c-accordion--inverted\":\"c-accordion--inverted\",\"c-accordion--timeline\":\"c-accordion--timeline\",\"c-accordion--no-border\":\"c-accordion--no-border\",\"c-interactive-svg\":\"c-interactive-svg\",\"has-link\":\"has-link\",\"mixitup-pager-list\":\"mixitup-pager-list\",\"mixitup-pager\":\"mixitup-pager\",\"mixitup-pager-active\":\"mixitup-pager-active\",\"mixitup-pager-truncation-marker\":\"mixitup-pager-truncation-marker\",\"mixitup-pager-prev\":\"mixitup-pager-prev\",\"mixitup-pager-next\":\"mixitup-pager-next\",\"mixitup-pager-disabled\":\"mixitup-pager-disabled\",\"h1\":\"h1\",\"h2\":\"h2\",\"h3\":\"h3\",\"u-font-family-second\":\"u-font-family-second\",\"c-consortia\":\"c-consortia\",\"c-consortia__background-image\":\"c-consortia__background-image\",\"c-consortia__box\":\"c-consortia__box\",\"c-consortia__logo\":\"c-consortia__logo\",\"c-consortia__centered-content\":\"c-consortia__centered-content\",\"is-visible\":\"is-visible\",\"c-consortia__circle-container\":\"c-consortia__circle-container\",\"c-timeline\":\"c-timeline\",\"c-timeline-year\":\"c-timeline-year\",\"c-timeline-year__separator\":\"c-timeline-year__separator\",\"c-timeline-years\":\"c-timeline-years\",\"c-timeline-years__border\":\"c-timeline-years__border\",\"c-timeline__wrapper\":\"c-timeline__wrapper\",\"c-timeline__element\":\"c-timeline__element\",\"c-keyvaluechain\":\"c-keyvaluechain\",\"c-keyvaluechain__element\":\"c-keyvaluechain__element\",\"c-keyvaluechain__element__image\":\"c-keyvaluechain__element__image\",\"c-keyvaluechain__element__border\":\"c-keyvaluechain__element__border\",\"c-keyvaluechain__element__border--first\":\"c-keyvaluechain__element__border--first\",\"c-keyvaluechain__element__border--second\":\"c-keyvaluechain__element__border--second\",\"c-keyvaluechain__element__border--third\":\"c-keyvaluechain__element__border--third\",\"c-keyvaluechain__element__border--fourth\":\"c-keyvaluechain__element__border--fourth\",\"c-keyvaluechain__element__title__wrapper\":\"c-keyvaluechain__element__title__wrapper\",\"c-keyvaluechain__element__title--underline\":\"c-keyvaluechain__element__title--underline\",\"c-keyvaluechain__element__title\":\"c-keyvaluechain__element__title\",\"c-keyvaluechain__element--last\":\"c-keyvaluechain__element--last\",\"c-keyvaluechain__element--first\":\"c-keyvaluechain__element--first\",\"c-keyvaluechain__category\":\"c-keyvaluechain__category\",\"c-keyvaluechain__category__wrapper\":\"c-keyvaluechain__category__wrapper\",\"c-sub-chain\":\"c-sub-chain\",\"c-sub-chain__container\":\"c-sub-chain__container\",\"c-sub-chain__container__wrapper\":\"c-sub-chain__container__wrapper\",\"c-module-shadow\":\"c-module-shadow\",\"c-module-shadow--half-height\":\"c-module-shadow--half-height\",\"c-module-shadow--reverse\":\"c-module-shadow--reverse\",\"c-icon-gallery__element\":\"c-icon-gallery__element\",\"c-slider__original-image-size\":\"c-slider__original-image-size\",\"c-information-tiles\":\"c-information-tiles\",\"c-information-tiles__title\":\"c-information-tiles__title\",\"title-right\":\"title-right\",\"c-information-tiles__wrapper\":\"c-information-tiles__wrapper\",\"c-information-tiles__background\":\"c-information-tiles__background\",\"c-information-tiles__background__wrapper\":\"c-information-tiles__background__wrapper\",\"c-information-tiles__background--filter\":\"c-information-tiles__background--filter\",\"c-information-tiles__tiles\":\"c-information-tiles__tiles\",\"c-information-tiles__link-tile\":\"c-information-tiles__link-tile\",\"c-information-tiles__tile\":\"c-information-tiles__tile\",\"c-information-tiles__tile-inner\":\"c-information-tiles__tile-inner\",\"c-information-tiles__tile-front\":\"c-information-tiles__tile-front\",\"c-information-tiles__tile-back\":\"c-information-tiles__tile-back\",\"color-white\":\"color-white\",\"color-golden\":\"color-golden\",\"color-black\":\"color-black\",\"color-cyan\":\"color-cyan\",\"c-information-tiles__tile-image\":\"c-information-tiles__tile-image\",\"image-top\":\"image-top\",\"image-right\":\"image-right\",\"c-information-tiles__link-title\":\"c-information-tiles__link-title\",\"c-information-tiles__link-text\":\"c-information-tiles__link-text\",\"c-information-tiles__title--white\":\"c-information-tiles__title--white\",\"c-timebar\":\"c-timebar\",\"c-timebar__element\":\"c-timebar__element\",\"c-timebar__element__image__year\":\"c-timebar__element__image__year\",\"c-timebar__element--left\":\"c-timebar__element--left\",\"c-timebar__element__time\":\"c-timebar__element__time\",\"c-timebar__element__content\":\"c-timebar__element__content\",\"c-timebar__content\":\"c-timebar__content\",\"c-timebar__element__icon\":\"c-timebar__element__icon\",\"c-timebar__element__icon--image\":\"c-timebar__element__icon--image\",\"c-timebar__element__icon--small\":\"c-timebar__element__icon--small\",\"c-timebar__element__content__inner\":\"c-timebar__element__content__inner\",\"c-timebar__element__content__keyword\":\"c-timebar__element__content__keyword\",\"c-timebar__element__content__title\":\"c-timebar__element__content__title\"};"],"names":["ConsortiaComponent","Component","className","element","consortia","Array","from","getElementsByClassName","map","o","titleElement","textElement","mainTitleElement","forEach","consortium","addEventListener","consortiumData","innerHTML","dataset","text","title","style","display","contents","content","addClass","removeClass","index","FilterHelper","options","filterGroups","tags","defaults","form","hasClass","filterFormSelector","substring","querySelector","emptyState","modals","filters","querySelectorAll","filterControlSelector","search","tagContainer","tagTemplate","e","closeModal","tag","removeFilterItem","value","toggleEmptyState","onReset","preventDefault","onSubmit","filter","type","self","getAttribute","connected","push","filterSame","name","filterAll","checked","target","find","every","length","all","some","data","FormData","addFilterItem","toggleClass","temp","document","createElement","cloneNode","setAttribute","appendChild","outerHTML","replace","firstChild","firstElementChild","defaultValue","onRemoveFilter","show","modal","FilterComponent","targetSelector","sortSelector","pageListSelector","pageLimit","pageList","sortControls","mixer","activeFilter","getFilterGroupSelectors","setFilterGroupSelectors","parseFilterGroups","selectors","control","controls","scope","toggleLogic","enable","multifilter","parseOn","callbacks","onParseFilterGroups","command","updateTags","onMixStart","state","futureState","totalShow","onMixEnd","onMixClick","originalEvent","closest","setTimeout","parseInt","toString","mergeDeep","classNames","elementPager","pagination","limit","maintainActivePage","hidePageListIfSinglePage","generatePageStats","templates","pagerPrev","pagerNext","initPager","mixitup","sort","input","params","URL","location","searchParams","events","key","filterLink","tagName","t","changeEvent","Event","bubbles","cancelable","dispatchEvent","Object","keys","pagerControls","dataPage","paginate","sources","source","shift","isObject","item","isArray","InputComponent","hasValueClass","isActiveClass","formField","labels","setValueClass","placeholder","updateInputHeight","toLowerCase","label","htmlFor","id","height","scrollHeight","InteractiveSvgComponent","svg","items","svgItem","open","click","KeyvaluechainCollapseComponent","isMobile","window","innerWidth","init","console","log","reset","hasAttribute","collapse","Collapse","dataTargetSelector","destroy","ModalComponent","triggers","trigger","stopPropagation","Navigation","Init","Element","HandleResize","toggler","IsMobile","RenderMobileSubnav","TopElement","subnav","undefined","getComputedStyle","documentElement","getPropertyValue","stringIFramePlayer","IFramePlayerComponent","player","IFramePlayer","iFrameElement","getElementsByTagName","src","indexOf","play","ScrollToComponent","navbar","getSelectorElementFromElement","offsetString","offset","clientHeight","isNaN","parentNode","scrollToElement","Swiper","use","Keyboard","Autoplay","Pagination","SliderComponent","delay","swiper","autoplay","speed","touchReleaseOnEdges","navigation","prevEl","nextEl","el","clickable","keyboard","enabled","onlyInViewport","linearTween","timeElapsed","start","distance","duration","CollapseComponent","stringCollapse","activeClass","activeParentClass","animateProp","collapsingClass","componentClass","showClass","showClassDesktop","desktopWidth","transitionDuration","isHideable","closeSiblings","useShowClassDesktop","dataParentSelector","dataToggleSelector","hrefSelector","isTransitioning","eventNamespaceFn","eventNamespaceFactory","handleClick","event","currentTarget","getInstance","toggle","parentElement","outerWidth","isOpen","hide","parent","selector","actives","active","anyTransitioning","collapseInstance","_handleShow","_handleClose","toggles","_addAriaAndCollapsedClass","collapseElement","addTransitionEndListener","offsetWidth","create","error","reflector","Reflector","resolver","Resolver","compiler","Compiler","factory","components","rootElement","observables","Map","componentType","component","resolve","safeRootElement","body","node","compile","observe","set","Error","size","MutationObserver","mutations","componentInitializer","mutation","addedNodes","isHTMLElement","asHTMLElement","comps","c","childList","subtree","componentCache","constructor","has","get","queries","propName","query","targetNode","descendants","nodes","cache","reduce","acc","val","concat","f","first","isType","onInit","makeDecorator","createComponent","makeMetadataFactory","typeOrFunc","parentCtor","getParentCtor","ownAnnotations","_ownAnnotations","parentAnnotations","annotations","propMetadata","parentPropMetadata","ownPropMetadata","_ownPropMetadata","decorators","hasOwnProperty","ANNOTATIONS","PROP_METADATA","ctor","parentProto","getPrototypeOf","prototype","QUERY_METADATA_IDENTIFIERS","typeMetadata","metadata","findLast","metadataName","propertyMetadata","_mergeWithPropertyMetadata","a","i","_merge","mergedQueries","res","propertyName","_getQueryMetadata","q","read","arr","condition","props","parentClass","chainFn","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","args","call","annotationInstance","typeDecorator","cls","defineProperty","values","makePropDecorator","PropDecoratorFactory","apply","decoratorInstance","PropDecorator","metaName","meta","unshift","isTypeOf","obj","Type","Function","v","getClass","trim","changeClass","add","classRegexCache","classRegex","RegExp","attribute","fallbackHref","getSelectorFromElement","getElementById","substr","test","getWindowScrollTop","pageYOffset","scrollTop","HTMLElement","nodeType","nodeName","regex","removeClassFactory","removeClassOnCollection","elements","dispatchCustomEvent","eventName","CustomEvent","namespace","stringPlayer","IFramePlayerOptions","_options","startPlayerClass","_boundClick","_handleClick","bind","_buttonElement","_iFrameElement","_init","removeEventListener","iframePlayer","animation","wrapper","top","offsetTop","getBoundingClientRect","scrollToOffset","animationFunction","scrollTo","b","d","timeStart","requestAnimationFrame","time","loop","Window","transitionEndEventName","getTransitionEndEventName","callback","fallbackDuration","remove","called","listener","transitions","WebkitTransition","transition","makeReactive","proto","__proto__","Dom7","arrayFlat","arrayFilter","arrayUnique","uniqueArray","toCamelCase","string","match","group","toUpperCase","qsa","context","$","getWindow","getDocument","html","toCreate","tempParent","childNodes","fn","classes","split","classList","contains","attr","attrs","arguments","attrName","removeAttr","removeAttribute","prop","dom7ElementDataStorage","dataKey","removeData","attributes","parseFloat","multiple","selectedOptions","j","selected","transform","on","eventType","capture","handleLiveEvent","eventData","dom7EventData","is","parents","k","handleEvent","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","once","dom","onceHandler","eventArgs","evt","detail","dataIndex","transitionEnd","fireCallBack","animationEnd","width","css","includeMargins","styles","innerHeight","outerHeight","offsetHeight","box","clientTop","clientLeft","scrollY","scrollLeft","scrollX","left","each","result","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","appendTo","prepend","insertBefore","prependTo","before","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","foundElements","found","children","removeChild","detach","els","toAdd","empty","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","Math","max","min","scrollWidth","startTime","render","Date","getTime","progress","easeProgress","cos","PI","done","initialProps","initialParams","animating","que","easingProgress","stop","frameId","cancelAnimationFrame","dom7AnimateInstance","complete","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","extend","ssrDocument","activeElement","createEvent","initEvent","createElementNS","importNode","hash","host","hostname","href","origin","pathname","protocol","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","Image","screen","clearTimeout","matchMedia","win","getBreakpoint","breakpoints","base","containerEl","breakpoint","currentHeight","points","point","minRatio","clientWidth","setBreakpoint","isGridEnabled","grid","rows","activeIndex","initialized","loopedSlides","$el","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","directionChanged","direction","needsReLoop","slidesPerView","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","emit","loopDestroy","loopCreate","updateSlides","slideTo","checkOverflow","wasLocked","isLocked","slidesOffsetBefore","lastSlideIndex","slides","lastSlideRightEdge","slidesGrid","slidesSizesGrid","snapGrid","isEnd","prepareClasses","entries","prefix","resultClasses","addClasses","rtl","device","support","suffixes","touch","freeMode","autoHeight","android","ios","cssMode","centeredSlides","watchSlidesProgress","join","removeClasses","prototypes","eventsEmitter","update","translate","slide","grabCursor","images","extendedDefaults","_len","_key","slice","swipers","newParams","__swiper__","getSupport","getDevice","browser","getBrowser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","mod","extendParams","moduleExtendParams","swiperParams","passedParams","onAny","isHorizontal","isVertical","realIndex","isBeginning","previousTranslate","velocity","touchEvents","desktop","touchEventsTouch","move","end","cancel","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","isScrolling","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","now","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","touches","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","setGrabCursor","unsetGrabCursor","minTranslate","maxTranslate","current","translateTo","updateActiveIndex","updateSlidesClasses","_emitClasses","slideEl","destroyed","slideClass","updates","getSlideClasses","view","exact","swiperSize","spv","slideSize","swiperSlideSize","breakLoop","slideInView","updateSize","updateProgress","setTranslate","translateValue","rtlTranslate","newTranslate","translated","updateAutoHeight","watchOverflow","newDirection","needUpdate","currentDirection","dir","mounted","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","$wrapperEl","createElements","wrapperEl","wrongRTL","mount","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","deleteProps","newDefaults","module","m","installModule","prototypeGroup","protoMethod","Resize","Observer","touchEventsTarget","updateOnWindowResize","resizeObserver","nested","preventInteractionOnTransition","url","edgeSwipeDetection","edgeSwipeThreshold","setWrapperSize","virtualTranslate","effect","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","touchRatio","touchAngle","shortSwipes","longSwipes","longSwipesRatio","longSwipesMs","followFinger","threshold","touchMoveStopPropagation","touchStartPreventDefault","touchStartForcePreventDefault","uniqueNavElements","resistance","resistanceRatio","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopedSlidesLimit","loopFillGroupWithBlank","loopPreventsSlide","rewind","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","maxBackfaceHiddenSlides","slideBlankClass","slideDuplicateActiveClass","slideDuplicateClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","method","__emitterProxy","offAny","_len2","_key2","eventsArray","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","onTouchStart","onTouchMove","onTouchEnd","passiveListener","passive","onClick","onScroll","onResize","stopImmediatePropagation","running","paused","run","newProgress","translatesDiff","touchEndTime","timeDiff","pathTree","path","composedPath","updateClickedSlide","nextTick","swipeDirection","currentPos","stopIndex","groupSize","increment","rewindFirstIndex","rewindLastIndex","virtual","ratio","abs","isNavButtonTarget","targetTouch","targetTouches","changedTouches","pageX","pageY","preventedByNestedSwiper","diffX","diffY","sqrt","atan2","loopFix","getTranslate","setTransition","disableParentSwiper","closestElement","__closestFrom","assignedSlot","getRootNode","$targetEl","which","button","swipingClassHasValue","isTargetShadow","iOSEdgeSwipeDetection","iOSEdgeSwipeThreshold","shouldPreventDefault","isContentEditable","moving","cursor","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","onload","onerror","currentSrc","$selector","blankSlidesNum","blankNode","ceil","prependSlides","appendSlides","floor","newIndex","snapTranslate","slideChanged","moduleParamName","moduleParams","auto","_ref","observers","attach","ObserverFunc","WebkitMutationObserver","observer","observerUpdate","characterData","observeParents","containerParents","observeSlideChildren","disconnect","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","newHeight","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","unobserve","orientationChangeHandler","slideToLoop","slideNext","slidePrev","slideReset","slideToClosest","runCallbacks","internal","perGroup","slidesPerViewDynamic","_clientLeft","normalize","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","snapIndex","prevIndex","lastIndex","initial","indexAsNumber","isValidNumber","isFinite","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","isH","isVirtual","scrollSnapType","_immediateVirtual","_swiperImmediateVirtual","smoothScroll","animateCSSModeScroll","targetPosition","side","onSlideToWrapperTransitionEnd","slideToIndex","clickedIndex","clickedSlide","currentSnap","nextSnap","byController","transitionEmit","step","getSwiperTranslate","axis","x","y","z","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","wasBeginning","wasEnd","Number","getDirectionLabel","property","getDirectionPropertyValue","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","setCSSProperty","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","_","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","activeSlide","nextSlide","prevSlide","emitSlidesClasses","swiperSlideOffset","offsetLeft","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","$nextEl","$prevEl","classesToSelector","bulletClass","updateNavigation","hasPagination","bullets","hasClickablePagination","updatePagination","bulletEl","$bulletEl","renderBullet","bulletActiveClass","initNavEl","wrapperId","handleFocus","includes","isActive","$slideEl","ariaLabelMessage","$containerEl","timeout","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","_s","Controller","controller","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","array","i1","i3","interpolate","x2","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","EffectCards","cardsEffect","slideShadows","transformEl","rotate","tX","tY","tZ","scale","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","scaleString","$shadowEl","createShadow","opacity","zIndex","effectTarget","$transitionElements","effectVirtualTransitionEnd","effectInit","perspective","overwriteParams","EffectCoverflow","coverflowEffect","stretch","depth","modifier","swiperWidth","swiperHeight","center","centerOffset","offsetMultiplier","rotateY","rotateX","translateZ","translateY","translateX","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","opacityString","shadow","shadowOpacity","allSlides","EffectCube","cubeEffect","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","recreateShadows","wrapperRotate","$cubeShadowEl","slideAngle","tx","ty","tz","shadowAngle","sin","scale1","scale2","zFactor","isSafari","isWebView","setProperty","getEffectParams","EffectFade","fadeEffect","crossFade","slideOpacity","EffectFlip","flipEffect","limitRotation","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","sticky","minimumVelocity","position","lastMoveEvent","pop","velocityEvent","momentumDuration","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","HashNavigation","hashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","History","root","keepQuery","paths","slugify","getPathValues","urlOverride","pathArray","part","total","setHistory","currentState","scrollToSlide","slideHistory","setHistoryPopState","pageUpDown","handle","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Lazy","lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","load","slideExist","amount","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","Manipulation","appendSlide","prependSlide","addSlide","removeSlide","removeAllSlides","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","slidesIndexes","indexToRemove","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","autoplayDisableOnInteraction","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","getEl","toggleEl","disabled","onPrevClick","onNextClick","createElementIfNotDefined","targetEl","isHidden","pfx","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","paginationHTML","numberOfBullets","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","$dragEl","newSize","newPos","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","nextIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","Virtual","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","to","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","slidesAfter","slidesBefore","onRendered","getSlides","slidesToRender","prependIndexes","appendIndexes","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","y2","onGestureStart","gestures","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","zoomIn","overflow","touchAction","touchX","touchY","offsetX","offsetY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","out","checkProps","shadowClass","$shadowContainer","Methods","methodName","writable","overwriteParamsResult","requireUpdateOnVirtual","effectParams","eventTriggered","$transitionEndTarget","triggerEvents","calcBrowser","ua","deviceCached","calcDevice","_temp","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","overrides","calcSupport","DocumentTouch","checkPassiveListener","supportsPassive","opts","checkGestures","object","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","noExtend","nextSource","keysArray","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","varName","varValue","startPosition","cssModeFrameID","isOutOfBound","currentPosition","initialize","elem"],"sourceRoot":""}