{"version":3,"file":"Scripts/main.js","mappings":"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","sources":["webpack://opten.einsgruppe/./app/components/cookiebot/index.ts","webpack://opten.einsgruppe/./app/components/iframe.ts","webpack://opten.einsgruppe/./app/components/navigation.ts","webpack://opten.einsgruppe/./app/components/slider.ts","webpack://opten.einsgruppe/./app/main.ts","webpack://opten.einsgruppe/./node_modules/@opten/collapse/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/collapse/initializer/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/factory/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/metadata/component.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/reflector/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/resolver/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/util/decorators.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/util/factories.ts","webpack://opten.einsgruppe/./node_modules/@opten/compiler/util/type.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/add-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/as-html-element/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/change-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/class-regex/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/get-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/get-selector-element-from-element/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/get-selector-from-element/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/has-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/is-html-element/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/remove-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/dom/toggle-class/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/events/dispatch-custom-event/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/events/event-namespace-factory/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/photoswipe-gallery/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/slider/arrows-responsive-behavior/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/slider/dots-responsive-behavior/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/slider/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/slider/slides-to-scroll-responsive-behavior/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/transition/add-transition-end-listener/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/transition/get-transition-end-event-name/index.ts","webpack://opten.einsgruppe/./node_modules/@opten/slider/lory/defaults.js","webpack://opten.einsgruppe/./node_modules/@opten/slider/lory/index.js","webpack://opten.einsgruppe/./node_modules/@opten/slider/lory/utils/detect-prefixes.js","webpack://opten.einsgruppe/./node_modules/@opten/slider/lory/utils/detect-supportsPassive.js","webpack://opten.einsgruppe/./node_modules/@opten/slider/lory/utils/dispatch-event.js","webpack://opten.einsgruppe/./node_modules/dom7/dom7.esm.js","webpack://opten.einsgruppe/./node_modules/ssr-window/ssr-window.esm.js","webpack://opten.einsgruppe/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://opten.einsgruppe/./node_modules/swiper/core/breakpoints/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://opten.einsgruppe/./node_modules/swiper/core/check-overflow/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/classes/addClasses.js","webpack://opten.einsgruppe/./node_modules/swiper/core/classes/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/classes/removeClasses.js","webpack://opten.einsgruppe/./node_modules/swiper/core/core.js","webpack://opten.einsgruppe/./node_modules/swiper/core/defaults.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events-emitter.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onClick.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onResize.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onScroll.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onTouchEnd.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onTouchMove.js","webpack://opten.einsgruppe/./node_modules/swiper/core/events/onTouchStart.js","webpack://opten.einsgruppe/./node_modules/swiper/core/grab-cursor/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://opten.einsgruppe/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://opten.einsgruppe/./node_modules/swiper/core/images/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/images/loadImage.js","webpack://opten.einsgruppe/./node_modules/swiper/core/images/preloadImages.js","webpack://opten.einsgruppe/./node_modules/swiper/core/loop/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/loop/loopCreate.js","webpack://opten.einsgruppe/./node_modules/swiper/core/loop/loopDestroy.js","webpack://opten.einsgruppe/./node_modules/swiper/core/loop/loopFix.js","webpack://opten.einsgruppe/./node_modules/swiper/core/moduleExtendParams.js","webpack://opten.einsgruppe/./node_modules/swiper/core/modules/observer/observer.js","webpack://opten.einsgruppe/./node_modules/swiper/core/modules/resize/resize.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideNext.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slidePrev.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideReset.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideTo.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideToClosest.js","webpack://opten.einsgruppe/./node_modules/swiper/core/slide/slideToLoop.js","webpack://opten.einsgruppe/./node_modules/swiper/core/transition/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/transition/setTransition.js","webpack://opten.einsgruppe/./node_modules/swiper/core/transition/transitionEmit.js","webpack://opten.einsgruppe/./node_modules/swiper/core/transition/transitionEnd.js","webpack://opten.einsgruppe/./node_modules/swiper/core/transition/transitionStart.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/getTranslate.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/maxTranslate.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/minTranslate.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/setTranslate.js","webpack://opten.einsgruppe/./node_modules/swiper/core/translate/translateTo.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/index.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateProgress.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateSize.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateSlides.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://opten.einsgruppe/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/a11y/a11y.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/controller/controller.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/grid/grid.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/history/history.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/lazy/lazy.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/manipulation.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/navigation/navigation.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/pagination/pagination.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/parallax/parallax.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/virtual/virtual.js","webpack://opten.einsgruppe/./node_modules/swiper/modules/zoom/zoom.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/classes-to-selector.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/create-shadow.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/dom.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/effect-init.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/effect-target.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/get-browser.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/get-device.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/get-support.js","webpack://opten.einsgruppe/./node_modules/swiper/shared/utils.js","webpack://opten.einsgruppe/./node_modules/swiper/swiper.esm.js","webpack://opten.einsgruppe/./app/main.scss?ddbf","webpack://opten.einsgruppe/webpack/bootstrap","webpack://opten.einsgruppe/webpack/runtime/define property getters","webpack://opten.einsgruppe/webpack/runtime/hasOwnProperty shorthand","webpack://opten.einsgruppe/webpack/runtime/make namespace object","webpack://opten.einsgruppe/webpack/before-startup","webpack://opten.einsgruppe/webpack/startup","webpack://opten.einsgruppe/webpack/after-startup"],"sourcesContent":["import { Component } from '@opten/compiler/metadata/component';\r\n\r\ndeclare const Cookiebot: any;\r\n@Component({ className: 'js-cookiebot-renew' })\r\nexport class CookiebotRenewComponent {\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.element.addEventListener('click', e => {\r\n\t\t\te.preventDefault();\r\n\t\t\tCookiebot.renew();\r\n\t\t});\r\n\t}\r\n}\r\n","import { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-video-overlay' })\r\nexport class IframeComponent {\r\n\tprivate id: string;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.id = element.getAttribute('data-target') ?? element.id;\r\n\r\n\t\tthis.onOverlayClick();\r\n\t\tconst otherElement = document.querySelector(`.js-video-iframe[data-target=\"${this.id}\"] .js-iframe-close`);\r\n\t\tthis.onCloseClick(otherElement);\r\n\t}\r\n\r\n\tonOverlayClick() {\r\n\t\tthis.element.addEventListener('click', () => {\r\n\t\t\tvar clientHeight = this.element.clientHeight;\r\n\t\t\tthis.element.classList.add('hidden');\r\n\t\t\tconst otherElement = document.querySelector(`.js-video-iframe[data-target=\"${this.id}\"]`);\r\n\t\t\totherElement?.classList.remove('hidden');\r\n\t\t\totherElement?.setAttribute('style', `height:${clientHeight}px;`);\r\n\t\t\tconst src = otherElement?.getAttribute('data-src');\r\n\t\t\totherElement?.querySelector('.js-iframe')?.setAttribute('src', src);\r\n\t\t\tconst prev = document.getElementsByClassName('c-slider__arrow--prev');\r\n\t\t\tconst next = document.getElementsByClassName('c-slider__arrow--next');\r\n\t\t\tprev[0]?.classList.add('hidden');\r\n\t\t\tnext[0]?.classList.add('hidden');\r\n\t\t});\r\n\t}\r\n\r\n\tonCloseClick(otherElement: HTMLElement) {\r\n\t\totherElement.addEventListener('click', () => {\r\n\t\t\tconst parent = document.querySelector(`.js-video-iframe[data-target=\"${this.id}\"]`);\r\n\t\t\tparent?.classList.add('hidden');\r\n\t\t\tparent?.querySelector('.js-iframe')?.setAttribute('src', '');\r\n\t\t\tthis.element.classList.remove('hidden');\r\n\t\t\tconst prev = document.getElementsByClassName('c-slider__arrow--prev');\r\n\t\t\tconst next = document.getElementsByClassName('c-slider__arrow--next');\r\n\t\t\tprev[0]?.classList.remove('hidden');\r\n\t\t\tnext[0]?.classList.remove('hidden');\r\n\t\t});\r\n\t}\r\n}","import { hasClass } from '@opten/dom/has-class';\r\nimport { removeClass } from '@opten/dom/remove-class';\r\nimport { toggleClass } from '@opten/dom/toggle-class';\r\nimport { addClass } from '@opten/dom/add-class';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\n\r\n@Component({ className: 'js-nav' })\r\nexport class Navigation {\r\n\tprivate navToggler: Element;\r\n\tprivate mobileNavbar: Element;\r\n\r\n constructor() {\r\n\t\tthis.navToggler = (document.getElementsByClassName('js-nav-toggler')[0]);\r\n\t\tthis.mobileNavbar = (document.getElementById('navbar__mobile'));\r\n\t\tthis.navToggler.addEventListener('click', () => {\r\n\t\t\ttoggleClass(this.mobileNavbar, 'is-active');\r\n\t\t\ttoggleClass(this.navToggler, 'is-active');\r\n\t\t});\r\n }\r\n\r\n private activateMenuClick() {\r\n \r\n // toggleClass(this.mainNavigationLinkElement.parentElement, 'expanded');\r\n\r\n // if (hasClass(this.mainNavigationLinkElement.parentElement, 'expanded')) {\r\n // addClass(this.navigationContainerElement, '-invert');\r\n // } else { \r\n // removeClass(this.navigationContainerElement, '-invert');\r\n // }\r\n\r\n // this.mainNavigationElements\r\n // .filter(mainNavigationElement => mainNavigationElement !== this.mainNavigationLinkElement.parentElement)\r\n // .forEach(mainNavigationElement => removeClass(mainNavigationElement, 'expanded'));\r\n }\r\n}","import { Component } from '@opten/compiler/metadata/component';\r\nimport Swiper, { Navigation } from 'swiper';\r\nimport { Slider, SliderOptions } from '@opten/slider';\r\nimport { SliderDotsBehavior } from '@opten/slider/dots-behavior';\r\nimport { SliderDotsResponsiveBehavior } from '@opten/slider/dots-responsive-behavior';\r\nimport { SliderArrowsResponsiveBehavior } from '@opten/slider/arrows-responsive-behavior';\r\n\r\nimport { SliderFadeBehavior } from '@opten/slider/fade-behavior';\r\nimport { SliderAutoPlayBehavior } from '@opten/slider/autoplay-behavior';\r\nimport { SliderSlidesToScrollResponsiveBehavior } from '@opten/slider/slides-to-scroll-responsive-behavior';\r\n\r\nimport { hasClass } from '@opten/dom/has-class';\r\n\r\nSwiper.use([Navigation]);\r\n\r\n@Component({ className: 'js-slider' })\r\nexport class SliderComponent {\r\n\tprivate slider: Slider;\r\n\tprivate swiper: Swiper;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tthis.swiper = new Swiper(element, {\r\n\t\t\tloop: true,\r\n\t\t\tslidesPerView: 1,\r\n\t\t\tnavigation: {\r\n\t\t\t\tnextEl: '.swiper-button-next',\r\n\t\t\t\tprevEl: '.swiper-button-prev'\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// const behaviors = [new SliderDotsBehavior()];\r\n\t\t// const options = {\r\n\t\t// infinite: false,\r\n\t\t// rewind: true,\r\n\t\t// \trewindSpeed: 0,\r\n\t\t// } as SliderOptions;\r\n\r\n\t\t// if (hasClass(element, 'js-slider--fade')) {\r\n\t\t// behaviors.push(new SliderFadeBehavior());\r\n\t\t// options.ease = 'linear'\r\n\t\t// }\r\n\t\t// if (hasClass(element, 'js-slider--autoplay')) {\r\n\t\t// behaviors.push(new SliderAutoPlayBehavior(5400));\r\n\t\t// }\r\n\r\n\t\t// this.slider = new Slider(element, options, behaviors);\r\n\t}\r\n}\r\n\r\n@Component({ className: 'js-slider-responsive' })\r\nexport class SliderResponsiveComponent {\r\n\tprivate slider: Slider;\r\n\r\n\tconstructor(private element: HTMLElement) {\r\n\t\tconst breakpoints = {\r\n\t\t\t768: 2,\r\n\t\t\t1024: 3,\r\n\t\t\t1514: 4\r\n\t\t};\r\n\t\tconst behaviors = [\r\n\t\t\tnew SliderSlidesToScrollResponsiveBehavior(breakpoints),\r\n\t\t\tnew SliderDotsResponsiveBehavior(),\r\n\t\t\tnew SliderArrowsResponsiveBehavior()\r\n\t\t];\r\n\t\tthis.slider = new Slider(element, {}, behaviors);\r\n\t}\r\n}\r\n","import './main.scss';\r\nimport { factory } from '@opten/compiler/factory';\r\nimport { Component } from '@opten/compiler/metadata/component';\r\nimport { CollapseComponent } from '@opten/collapse';\r\nimport { PhotoswipeGallery } from '@opten/photoswipe-gallery';\r\nimport { SliderComponent } from './components/slider';\r\nimport { Navigation } from './components/navigation';\r\nimport { CookiebotRenewComponent } from './components/cookiebot';\r\nimport { IframeComponent } from './components/iframe';\r\n\r\n@Component({ className: 'js-photoswipe-gallery-element', observe: true })\r\nclass PhotoswipeGalleryComponent {\r\n\tconstructor(element: HTMLElement) {\r\n\t\tnew PhotoswipeGallery(element);\r\n\t}\r\n}\r\n\r\nfactory([\r\n\tCollapseComponent,\r\n\tPhotoswipeGalleryComponent,\r\n\tSliderComponent,\r\n\tNavigation,\r\n\tCookiebotRenewComponent,\r\n\tIframeComponent\r\n])(document.body);\r\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","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';\nimport { hasClass } from '@opten/dom/has-class';\n\nexport class IPhotoswipeGalleryOptions {\n\tgalleryId?: string;\n\ttype?: string;\n\tsize?: string;\n\tcaption?: string;\n\tvideoHtml?: string;\n}\n\ndeclare var PhotoSwipe: any;\ndeclare var PhotoSwipeUI_Default: any;\n\nexport class PhotoswipeGallery {\n\tprivate _galleryId: string;\n\tprivate _element: HTMLElement;\n\n\tprivate _options: IPhotoswipeGalleryOptions = {\n\t\tgalleryId: 'data-gallery-id',\n\t\ttype: 'data-type',\n\t\tsize: 'data-size',\n\t\tcaption: 'data-caption',\n\t\tvideoHtml:\n\t\t\t'
\\\n\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\\\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\t
\\\n\t\t\t\t\t
',\n\t};\n\n\tconstructor(element: HTMLElement, options?: IPhotoswipeGalleryOptions) {\n\t\tthis._element = element;\n\t\tthis._options = { ...this._options, ...options };\n\t\tthis._galleryId = this._element.getAttribute(this._options.galleryId);\n\t\tif (this._galleryId && this._galleryId.length > 0) {\n\t\t\tthis._element.addEventListener('click', (event) =>\n\t\t\t\tthis._handleInitGallery(event)\n\t\t\t);\n\t\t}\n\t}\n\tprivate _handleInitGallery(event: MouseEvent): void {\n\t\tevent.preventDefault ? event.preventDefault() : (event.returnValue = false);\n\t\tconst galleryItems = document.querySelectorAll(\n\t\t\t'[data-gallery-id=\"' + this._galleryId + '\"]'\n\t\t);\n\t\tif (galleryItems && galleryItems.length > 0) {\n\t\t\tconst items = [];\n\t\t\tlet pwspIndex = 0;\n\t\t\tgalleryItems.forEach((galleryItem, i) => {\n\t\t\t\tconst slide = galleryItem as HTMLElement;\n\t\t\t\tconst typeSlide = slide.getAttribute(this._options.type);\n\t\t\t\tif (slide === this._element) {\n\t\t\t\t\tpwspIndex = i;\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\ttypeSlide != null &&\n\t\t\t\t\ttypeof typeSlide !== 'undefined' &&\n\t\t\t\t\ttypeSlide !== 'image'\n\t\t\t\t) {\n\t\t\t\t\tswitch (typeSlide) {\n\t\t\t\t\t\tcase 'video':\n\t\t\t\t\t\t\tlet videoHtml = this._options.videoHtml;\n\t\t\t\t\t\t\tvideoHtml = videoHtml.replace(\n\t\t\t\t\t\t\t\t'{slideHref}',\n\t\t\t\t\t\t\t\tslide.getAttribute('href')\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\titems.push({\n\t\t\t\t\t\t\t\thtml: videoHtml,\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst size = slide.getAttribute(this._options.size).split('x');\n\n\t\t\t\t\tconst img = slide.getElementsByTagName('img')[0];\n\t\t\t\t\tlet imgSrc = img.getAttribute('srcset');\n\n\t\t\t\t\tif (typeof imgSrc !== undefined && imgSrc !== null) {\n\t\t\t\t\t\timgSrc = img.currentSrc || img.getAttribute('src');\n\t\t\t\t\t} else {\n\t\t\t\t\t\timgSrc = img.getAttribute('src');\n\t\t\t\t\t}\n\n\t\t\t\t\titems.push({\n\t\t\t\t\t\tsrc: slide.getAttribute('href'),\n\t\t\t\t\t\tw: parseInt(size[0], 10),\n\t\t\t\t\t\th: parseInt(size[1], 10),\n\t\t\t\t\t\ttitle: slide.getAttribute(this._options.caption),\n\t\t\t\t\t\tmsrc: imgSrc,\n\t\t\t\t\t\tel: slide,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst pswpoptions: any = {\n\t\t\t\thistory: false,\n\t\t\t\tindex: pwspIndex,\n\t\t\t\tgetThumbBoundsFn: () => {\n\t\t\t\t\tconst pageYScroll =\n\t\t\t\t\t\twindow.pageYOffset || document.documentElement.scrollTop;\n\t\t\t\t\tlet rect = { left: 0, top: 0, width: 0 };\n\t\t\t\t\tif (\n\t\t\t\t\t\titems[pwspIndex].el &&\n\t\t\t\t\t\titems[pwspIndex].el.getElementsByTagName('img').length > 0\n\t\t\t\t\t) {\n\t\t\t\t\t\trect = items[pwspIndex].el\n\t\t\t\t\t\t\t.getElementsByTagName('img')[0]\n\t\t\t\t\t\t\t.getBoundingClientRect();\n\t\t\t\t\t} else if (galleryItems[pwspIndex]) {\n\t\t\t\t\t\trect = galleryItems[pwspIndex].getBoundingClientRect();\n\t\t\t\t\t}\n\t\t\t\t\treturn { x: rect.left, y: rect.top + pageYScroll, w: rect.width };\n\t\t\t\t},\n\t\t\t};\n\t\t\tconst gallery = new PhotoSwipe(\n\t\t\t\tthis.getPSWPElement(),\n\t\t\t\tPhotoSwipeUI_Default,\n\t\t\t\titems,\n\t\t\t\tpswpoptions\n\t\t\t);\n\t\t\tgallery.init();\n\t\t\tgallery.listen('close', () => {\n\t\t\t\tconst videoSlides = document.querySelectorAll('.pwsp__item');\n\t\t\t\tif (videoSlides) {\n\t\t\t\t\tvideoSlides.forEach((videoSlide) => {\n\t\t\t\t\t\tif (hasClass(videoSlide, 'video')) {\n\t\t\t\t\t\t\tvideoSlide.setAttribute('src', '');\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\tprivate getPSWPElement(): Element {\n\t\tlet pswpElement =\n\t\t\tdocument.getElementsByClassName('pswp').length > 0\n\t\t\t\t? document.getElementsByClassName('pswp')[0]\n\t\t\t\t: null;\n\t\tif (pswpElement == null) {\n\t\t\tpswpElement = document.createElement('div');\n\t\t\taddClass(pswpElement, 'pswp');\n\t\t\tpswpElement.setAttribute('tabindex', '-1');\n\t\t\tpswpElement.setAttribute('role', 'dialog');\n\t\t\tpswpElement.setAttribute('aria-hidden', 'true');\n\t\t\tpswpElement.innerHTML =\n\t\t\t\t'
\\\n\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t
\\\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\t
\\\n\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t \\\n\t\t\t\t\t\t\t\t\t\t \\\n\t\t\t\t\t\t\t\t\t\t \\\n\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t \\\n\t\t\t\t\t\t\t\t\t \\\n\t\t\t\t\t\t\t\t\t
\\\n\t\t\t\t\t\t\t\t\t\t
\\\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\tdocument.body.appendChild(pswpElement);\n\t\t\tpswpElement = document.getElementsByClassName('pswp')[0];\n\t\t}\n\n\t\treturn pswpElement;\n\t}\n}\n\nexport function photoswipeGallery(\n\telement: HTMLElement,\n\toptions?: IPhotoswipeGalleryOptions\n): PhotoswipeGallery {\n\treturn new PhotoswipeGallery(element, options);\n}\n","import { Slider, SliderBehaviour } from '..';\nimport { addClass } from '@opten/dom/add-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\nexport class SliderArrowsResponsiveBehavior implements SliderBehaviour {\n\tprivate _slidingWindowCount: number;\n\tinitialize(slider: Slider): void {\n\t\tif (slider.next && slider.prev) {\n\t\t\tif (\n\t\t\t\tslider.options.infinite === false &&\n\t\t\t\tslider.options.rewind === false\n\t\t\t) {\n\t\t\t\tslider.element.addEventListener('after.lory.init', (e) => {\n\t\t\t\t\tthis._slidingWindowCount = this.getSlidingWindowCount(slider);\n\t\t\t\t\tthis.reconfigureArrows(slider);\n\t\t\t\t});\n\t\t\t\tslider.element.addEventListener('after.lory.slide', (e: any) => {\n\t\t\t\t\tthis.reconfigureArrows(slider, e.detail.currentSlide);\n\t\t\t\t});\n\t\t\t\tslider.element.addEventListener('on.lory.resize', (e: any) => {\n\t\t\t\t\tthis._slidingWindowCount = this.getSlidingWindowCount(slider);\n\t\t\t\t\tthis.reconfigureArrows(slider, slider.instance.returnIndex());\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate reconfigureArrows(slider: Slider, currentSlide = 0) {\n\t\tif (this._slidingWindowCount > 1) {\n\t\t\tremoveClass(slider.prev, 'is-both-arrows-disabled');\n\t\t\tremoveClass(slider.next, 'is-both-arrows-disabled');\n\t\t\tif (\n\t\t\t\tcurrentSlide + 1 + this.getSlidesToShow(slider) >\n\t\t\t\tslider.slides.length\n\t\t\t) {\n\t\t\t\taddClass(slider.next, 'disabled');\n\t\t\t} else {\n\t\t\t\tremoveClass(slider.next, 'disabled');\n\t\t\t}\n\t\t} else {\n\t\t\taddClass(slider.prev, 'is-both-arrows-disabled');\n\t\t\taddClass(slider.next, 'disabled');\n\t\t\taddClass(slider.next, 'is-both-arrows-disabled');\n\t\t}\n\t}\n\n\tprivate getSlidesToShow(slider: Slider) {\n\t\tconst frameWidth = slider.frame.offsetWidth;\n\t\tlet slidesToShow = 1;\n\t\tif (slider.slides && slider.slides.length > 1) {\n\t\t\tconst firstSlideWith = slider.slides[0].offsetWidth;\n\t\t\tslidesToShow = Math.round(frameWidth / firstSlideWith);\n\t\t}\n\t\treturn slidesToShow;\n\t}\n\n\tprivate getSlidingWindowCount(slider: Slider) {\n\t\tif (slider.slides && slider.slides.length > 1) {\n\t\t\tconst slidesToShow = this.getSlidesToShow(slider);\n\t\t\tconst countSlides = slider.slides.length;\n\t\t\tconst slidesToScroll = slider.options.slidesToScroll;\n\t\t\tlet pagerQty = 0;\n\t\t\tlet lastSlideVisible = 0;\n\t\t\tlet counter = 0;\n\t\t\tif (slider.options.infinite) {\n\t\t\t\tif (countSlides <= slidesToShow) {\n\t\t\t\t\t++pagerQty;\n\t\t\t\t} else {\n\t\t\t\t\twhile (lastSlideVisible <= countSlides) {\n\t\t\t\t\t\t++pagerQty;\n\t\t\t\t\t\tlastSlideVisible = counter + slidesToShow;\n\t\t\t\t\t\tcounter +=\n\t\t\t\t\t\t\tslidesToScroll <= slidesToShow ? slidesToScroll : slidesToShow;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpagerQty = 2 + Math.ceil((countSlides - slidesToShow) / slidesToScroll);\n\t\t\t}\n\n\t\t\treturn countSlides > slidesToShow ? pagerQty - 1 : 0;\n\t\t}\n\t}\n}\n","import { Slider, SliderBehaviour } from '..';\nimport { addClass } from '@opten/dom/add-class';\nimport { removeClass } from '@opten/dom/remove-class';\n\nexport class SliderDotsResponsiveBehavior implements SliderBehaviour {\n\tinitialize(slider: Slider) {\n\t\tconst dots = slider.element.querySelector('.js-dots');\n\t\tif (dots) {\n\t\t\tslider.element.addEventListener('before.lory.init', () => {\n\t\t\t\tthis.reinitDots(slider, dots);\n\t\t\t});\n\n\t\t\tslider.element.addEventListener('after.lory.init', () => {\n\t\t\t\tfor (let i = 0, len = dots.childNodes.length; i < len; i++) {\n\t\t\t\t\tdots.childNodes[i].addEventListener('click', (e) => {\n\t\t\t\t\t\tthis.handleDotClick(e, slider, dots);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tslider.element.addEventListener('after.lory.slide', (e: any) => {\n\t\t\t\tthis.updateDots(e.detail.currentSlide, slider, dots);\n\t\t\t});\n\n\t\t\tslider.element.addEventListener('on.lory.resize', () => {\n\t\t\t\tthis.reinitDots(slider, dots);\n\t\t\t\tfor (let i = 0, len = dots.childNodes.length; i < len; i++) {\n\t\t\t\t\tdots.childNodes[i].addEventListener('click', (e) => {\n\t\t\t\t\t\tthis.handleDotClick(e, slider, dots);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.updateDots(slider.instance.returnIndex(), slider, dots);\n\t\t\t});\n\t\t}\n\t}\n\n\tprivate updateDots(currentSlideIndex: any, slider: Slider, dots: Element) {\n\t\tfor (let i = 0, len = slider.slides.length; i < len; i++) {\n\t\t\tremoveClass(dots.children[i], 'active');\n\t\t}\n\t\taddClass(\n\t\t\tdots.children[\n\t\t\t\tMath.ceil(currentSlideIndex / slider.options.slidesToScroll)\n\t\t\t],\n\t\t\t'active'\n\t\t);\n\t}\n\n\tprivate handleDotClick(e: Event, slider: Slider, dots: Element) {\n\t\tlet slideToIndex = Array.prototype.indexOf.call(dots.childNodes, e.target);\n\t\tslideToIndex = slideToIndex + 1;\n\t\tslideToIndex = slideToIndex * slider.options.slidesToScroll;\n\t\tslideToIndex = slideToIndex - this.getSlidesToShow(slider);\n\t\tslider.instance.slideTo(slideToIndex);\n\t}\n\n\tprivate reinitDots(slider: Slider, dots: Element) {\n\t\tdots.innerHTML = '';\n\t\tconst dotsCount = this.getDotCount(slider);\n\t\tfor (let i = 0, len = dotsCount; i < len; i++) {\n\t\t\tconst li = document.createElement('li');\n\t\t\tdots.appendChild(li);\n\t\t}\n\t\taddClass(dots.firstElementChild, 'active');\n\n\t\treturn dots;\n\t}\n\tprivate getSlidesToShow(slider: Slider) {\n\t\tconst frameWidth = slider.frame.offsetWidth;\n\t\tlet slidesToShow = 1;\n\t\tif (slider.slides && slider.slides.length > 1) {\n\t\t\tconst firstSlideWith = slider.slides[0].offsetWidth;\n\t\t\tslidesToShow = Math.round(frameWidth / firstSlideWith);\n\t\t}\n\t\treturn slidesToShow;\n\t}\n\n\tprivate getDotCount(slider: Slider) {\n\t\tif (slider.slides && slider.slides.length > 1) {\n\t\t\tconst slidesToShow = this.getSlidesToShow(slider);\n\t\t\tconst countSlides = slider.slides.length;\n\t\t\tconst slidesToScroll = slider.options.slidesToScroll;\n\t\t\tlet pagerQty = 0;\n\t\t\tlet lastSlideVisible = 0;\n\t\t\tlet counter = 0;\n\t\t\tif (slider.options.infinite) {\n\t\t\t\tif (countSlides <= slidesToShow) {\n\t\t\t\t\t++pagerQty;\n\t\t\t\t} else {\n\t\t\t\t\twhile (lastSlideVisible <= countSlides) {\n\t\t\t\t\t\t++pagerQty;\n\t\t\t\t\t\tlastSlideVisible = counter + slidesToShow;\n\t\t\t\t\t\tcounter +=\n\t\t\t\t\t\t\tslidesToScroll <= slidesToShow ? slidesToScroll : slidesToShow;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpagerQty = 2 + Math.ceil((countSlides - slidesToShow) / slidesToScroll);\n\t\t\t}\n\n\t\t\treturn countSlides > slidesToShow ? pagerQty - 1 : 0;\n\t\t}\n\t}\n}\n","import { lory } from './lory/index.js';\n\nexport interface SliderOptions {\n\tclassNameFrame?: string;\n\tclassNameNextCtrl?: string;\n\tclassNamePrevCtrl?: string;\n\tclassNameSlideContainer?: string;\n\tease?: string;\n\tenableMouseEvents?: boolean;\n\tinfinite?: boolean | number;\n\tinitialIndex?: number;\n\trewind?: boolean;\n\trewindOnResize?: boolean;\n\trewindSpeed?: number;\n\tslideSpeed?: number;\n\tslidesToScroll?: number;\n\tsnapBackSpeed?: number;\n} /*These are the slider options available in lory slider, which are used to initialize the lory slider */\n\nexport interface SliderBehaviour {\n\tinitialize(slider: Slider): void;\n}\n\nexport class Slider {\n\tslides: HTMLElement[];\n\tframe: HTMLElement;\n\tnext: HTMLElement;\n\tprev: HTMLElement;\n\tslidesWrapper: HTMLElement;\n\tinstance: any;\n\n\toptions: SliderOptions = {\n\t\tclassNameFrame: 'js-frame',\n\t\tclassNameNextCtrl: 'js-next',\n\t\tclassNamePrevCtrl: 'js-prev',\n\t\tclassNameSlideContainer: 'js-slides',\n\t\tease: 'ease',\n\t\tenableMouseEvents: true,\n\t\tinfinite: false,\n\t\tinitialIndex: 0,\n\t\trewind: false,\n\t\trewindSpeed: 600,\n\t\tslideSpeed: 300,\n\t\tslidesToScroll: 1,\n\t\tsnapBackSpeed: 200,\n\t\trewindOnResize: false,\n\t}; /*options are public, because they are also used in some behavoirs*/\n\n\tconstructor(\n\t\tpublic element: HTMLElement,\n\t\toptions: SliderOptions = {},\n\t\tbehavoirs: SliderBehaviour[] = []\n\t) {\n\t\tthis.options = { ...this.options, ...options };\n\n\t\tthis.frame = this.element.querySelector('.' + this.options.classNameFrame);\n\t\tthis.prev = this.element.querySelector(\n\t\t\t'.' + this.options.classNamePrevCtrl\n\t\t);\n\t\tthis.next = this.element.querySelector(\n\t\t\t'.' + this.options.classNameNextCtrl\n\t\t);\n\t\tthis.slidesWrapper = this.element.querySelector(\n\t\t\t'.' + this.options.classNameSlideContainer\n\t\t);\n\t\tthis.slides = Array.from(this.element.querySelectorAll('.js-slide'));\n\n\t\tbehavoirs.forEach((behavior) => behavior.initialize(this));\n\t\tthis.reinitInstance();\n\t}\n\n\tpublic reinitInstance() {\n\t\tif (this.instance) {\n\t\t\tthis.instance.destroy();\n\t\t}\n\t\tthis.instance = lory(this.element, this.options);\n\t}\n}\n","import { Slider, SliderBehaviour } from '..';\n\nexport class SliderSlidesToScrollResponsiveBehavior implements SliderBehaviour {\n\tprivate _breakpoints: Record;\n\n\tconstructor(private breakpoints: Record) {\n\t\tthis._breakpoints = breakpoints;\n\t}\n\n\tinitialize(slider: Slider): void {\n\t\tslider.element.addEventListener('before.lory.init', (e) => {\n\t\t\tthis.reconfigureSlidesToScroll(slider);\n\t\t});\n\t\tslider.element.addEventListener('on.lory.resize', (e: any) => {\n\t\t\tthis.reconfigureSlidesToScroll(slider);\n\t\t});\n\t}\n\n\tprivate reconfigureSlidesToScroll(slider: Slider) {\n\t\tif (\n\t\t\tthis._breakpoints != null &&\n\t\t\tObject.keys(this._breakpoints).length > 0\n\t\t) {\n\t\t\tconst currentWindowWidth = window.innerWidth;\n\t\t\tlet newSlidesToScroll = 1;\n\t\t\tconst _breakpointsKeys = Object.keys(this._breakpoints)\n\t\t\t\t.map((s) => +s)\n\t\t\t\t.sort((a, b) => a - b);\n\t\t\t_breakpointsKeys.forEach((e: number) => {\n\t\t\t\tif (e <= currentWindowWidth) {\n\t\t\t\t\tnewSlidesToScroll = this._breakpoints[e];\n\t\t\t\t}\n\t\t\t});\n\t\t\tslider.options.slidesToScroll = newSlidesToScroll;\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","export default {\n\t/**\n\t * slides scrolled at once\n\t * @slidesToScroll {Number}\n\t */\n\tslidesToScroll: 1,\n\n\t/**\n\t * time in milliseconds for the animation of a valid slide attempt\n\t * @slideSpeed {Number}\n\t */\n\tslideSpeed: 300,\n\n\t/**\n\t * time in milliseconds for the animation of the rewind after the last slide\n\t * @rewindSpeed {Number}\n\t */\n\trewindSpeed: 600,\n\n\t/**\n\t * time for the snapBack of the slider if the slide attempt was not valid\n\t * @snapBackSpeed {Number}\n\t */\n\tsnapBackSpeed: 200,\n\n\t/**\n\t * Basic easing functions: https://developer.mozilla.org/de/docs/Web/CSS/transition-timing-function\n\t * cubic bezier easing functions: http://easings.net/de\n\t * @ease {String}\n\t */\n\tease: 'ease',\n\n\t/**\n\t * if slider reached the last slide, with next click the slider goes back to the startindex.\n\t * use infinite or rewind, not both\n\t * @rewind {Boolean}\n\t */\n\trewind: false,\n\n\t/**\n\t * number of visible slides or false\n\t * use infinite or rewind, not both\n\t * @infinite {number}\n\t */\n\tinfinite: false,\n\n\t/**\n\t * the slide index to show when the slider is initialized.\n\t * @initialIndex {number}\n\t */\n\tinitialIndex: 0,\n\n\t/**\n\t * class name for slider frame\n\t * @classNameFrame {string}\n\t */\n\tclassNameFrame: 'js_frame',\n\n\t/**\n\t * class name for slides container\n\t * @classNameSlideContainer {string}\n\t */\n\tclassNameSlideContainer: 'js_slides',\n\n\t/**\n\t * class name for slider prev control\n\t * @classNamePrevCtrl {string}\n\t */\n\tclassNamePrevCtrl: 'js_prev',\n\n\t/**\n\t * class name for slider next control\n\t * @classNameNextCtrl {string}\n\t */\n\tclassNameNextCtrl: 'js_next',\n\n\t/**\n\t * class name for current active slide\n\t * if emptyString then no class is set\n\t * @classNameActiveSlide {string}\n\t */\n\tclassNameActiveSlide: 'active',\n\n\t/**\n\t * enables mouse events for swiping on desktop devices\n\t * @enableMouseEvents {boolean}\n\t */\n\tenableMouseEvents: false,\n\n\t/**\n\t * window instance\n\t * @window {object}\n\t */\n\twindow: typeof window !== 'undefined' ? window : null,\n\n\t/**\n\t * If false, slides lory to the first slide on window resize.\n\t * @rewindOnResize {boolean}\n\t */\n\trewindOnResize: true,\n};\n","/* globals jQuery */\n\nimport detectPrefixes from './utils/detect-prefixes.js';\nimport supportsPassive from './utils/detect-supportsPassive';\nimport dispatchEvent from './utils/dispatch-event.js';\nimport defaults from './defaults.js';\n\nconst slice = Array.prototype.slice;\n\nexport function lory(slider, opts) {\n\tlet position;\n\tlet slidesWidth;\n\tlet frameWidth;\n\tlet slides;\n\n\t/**\n\t * slider DOM elements\n\t */\n\tlet frame;\n\tlet slideContainer;\n\tlet prevCtrl;\n\tlet nextCtrl;\n\tlet prefixes;\n\tlet transitionEndCallback;\n\n\tlet index = 0;\n\tlet options = {};\n\tlet touchEventParams = supportsPassive() ? { passive: true } : false;\n\n\t/**\n\t * if object is jQuery convert to native DOM element\n\t */\n\tif (typeof jQuery !== 'undefined' && slider instanceof jQuery) {\n\t\tslider = slider[0];\n\t}\n\n\t/**\n\t * private\n\t * set active class to element which is the current slide\n\t */\n\tfunction setActiveElement(slides, currentIndex) {\n\t\tconst { classNameActiveSlide } = options;\n\n\t\tslides.forEach((element, index) => {\n\t\t\tif (element.classList.contains(classNameActiveSlide)) {\n\t\t\t\telement.classList.remove(classNameActiveSlide);\n\t\t\t}\n\t\t});\n\n\t\tslides[currentIndex].classList.add(classNameActiveSlide);\n\t}\n\n\t/**\n\t * private\n\t * setupInfinite: function to setup if infinite is set\n\t *\n\t * @param {array} slideArray\n\t * @return {array} array of updated slideContainer elements\n\t */\n\tfunction setupInfinite(slideArray) {\n\t\tconst { infinite } = options;\n\n\t\tconst front = slideArray.slice(0, infinite);\n\t\tconst back = slideArray.slice(\n\t\t\tslideArray.length - infinite,\n\t\t\tslideArray.length\n\t\t);\n\n\t\tfront.forEach(function (element) {\n\t\t\tconst cloned = element.cloneNode(true);\n\n\t\t\tslideContainer.appendChild(cloned);\n\t\t});\n\n\t\tback.reverse().forEach(function (element) {\n\t\t\tconst cloned = element.cloneNode(true);\n\n\t\t\tslideContainer.insertBefore(cloned, slideContainer.firstChild);\n\t\t});\n\n\t\tslideContainer.addEventListener(prefixes.transitionEnd, onTransitionEnd);\n\n\t\treturn slice.call(slideContainer.children);\n\t}\n\n\t/**\n\t * [dispatchSliderEvent description]\n\t * @return {[type]} [description]\n\t */\n\tfunction dispatchSliderEvent(phase, type, detail) {\n\t\tdispatchEvent(slider, `${phase}.lory.${type}`, detail);\n\t}\n\n\t/**\n\t * translates to a given position in a given time in milliseconds\n\t *\n\t * @to {number} number in pixels where to translate to\n\t * @duration {number} time in milliseconds for the transistion\n\t * @ease {string} easing css property\n\t */\n\tfunction translate(to, duration, ease) {\n\t\tconst style = slideContainer && slideContainer.style;\n\n\t\tif (style) {\n\t\t\tstyle[prefixes.transition + 'TimingFunction'] = ease;\n\t\t\tstyle[prefixes.transition + 'Duration'] = duration + 'ms';\n\t\t\tstyle[prefixes.transform] = 'translateX(' + to + 'px)';\n\t\t}\n\t}\n\n\t/**\n\t * returns an element's width\n\t */\n\tfunction elementWidth(element) {\n\t\treturn element.getBoundingClientRect().width || element.offsetWidth;\n\t}\n\n\t/**\n\t * slidefunction called by prev, next & touchend\n\t *\n\t * determine nextIndex and slide to next postion\n\t * under restrictions of the defined options\n\t *\n\t * @direction {boolean}\n\t */\n\tfunction slide(nextIndex, direction) {\n\t\tconst {\n\t\t\tslideSpeed,\n\t\t\tslidesToScroll,\n\t\t\tinfinite,\n\t\t\trewind,\n\t\t\trewindPrev,\n\t\t\trewindSpeed,\n\t\t\tease,\n\t\t\tclassNameActiveSlide,\n\t\t\tclassNameDisabledNextCtrl = 'disabled',\n\t\t\tclassNameDisabledPrevCtrl = 'disabled',\n\t\t} = options;\n\n\t\tlet duration = slideSpeed;\n\n\t\tconst nextSlide = direction ? index + 1 : index - 1;\n\t\tconst maxOffset = Math.round(slidesWidth - frameWidth);\n\n\t\tdispatchSliderEvent('before', 'slide', {\n\t\t\tindex,\n\t\t\tnextSlide,\n\t\t});\n\n\t\t/**\n\t\t * Reset control classes\n\t\t */\n\t\tif (prevCtrl) {\n\t\t\tprevCtrl.classList.remove(classNameDisabledPrevCtrl);\n\t\t}\n\t\tif (nextCtrl) {\n\t\t\tnextCtrl.classList.remove(classNameDisabledNextCtrl);\n\t\t}\n\n\t\tif (typeof nextIndex !== 'number') {\n\t\t\tif (direction) {\n\t\t\t\tif (infinite && index + infinite * 2 !== slides.length) {\n\t\t\t\t\tnextIndex = index + (infinite - (index % infinite));\n\t\t\t\t} else {\n\t\t\t\t\tnextIndex = index + slidesToScroll;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (infinite && index % infinite !== 0) {\n\t\t\t\t\tnextIndex = index - (index % infinite);\n\t\t\t\t} else {\n\t\t\t\t\tnextIndex = index - slidesToScroll;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tnextIndex = Math.min(Math.max(nextIndex, 0), slides.length - 1);\n\n\t\tif (infinite && direction === undefined) {\n\t\t\tnextIndex += infinite;\n\t\t}\n\n\t\tif (rewindPrev && Math.abs(position.x) === 0 && direction === false) {\n\t\t\tnextIndex = slides.length - 1;\n\t\t\tduration = rewindSpeed;\n\t\t}\n\n\t\tlet nextOffset = Math.min(\n\t\t\tMath.max(slides[nextIndex].offsetLeft * -1, maxOffset * -1),\n\t\t\t0\n\t\t);\n\n\t\tif (rewind && Math.abs(position.x) === maxOffset && direction) {\n\t\t\tnextOffset = 0;\n\t\t\tnextIndex = 0;\n\t\t\tduration = rewindSpeed;\n\t\t}\n\n\t\t/**\n\t\t * translate to the nextOffset by a defined duration and ease function\n\t\t */\n\t\ttranslate(nextOffset, duration, ease);\n\n\t\t/**\n\t\t * update the position with the next position\n\t\t */\n\t\tposition.x = nextOffset;\n\n\t\t/**\n\t\t * update the index with the nextIndex only if\n\t\t * the offset of the nextIndex is in the range of the maxOffset\n\t\t */\n\t\tif (slides[nextIndex].offsetLeft <= maxOffset) {\n\t\t\tindex = nextIndex;\n\t\t}\n\t\t// HACK: OPTEN FIX\n\t\telse if (!infinite) {\n\t\t\tindex = slides.length - options.slidesToScroll;\n\t\t}\n\n\t\tif (\n\t\t\tinfinite &&\n\t\t\t(nextIndex === slides.length - infinite ||\n\t\t\t\tnextIndex === slides.length - (slides.length % infinite) ||\n\t\t\t\tnextIndex === 0)\n\t\t) {\n\t\t\tif (direction) {\n\t\t\t\tindex = infinite;\n\t\t\t}\n\n\t\t\tif (!direction) {\n\t\t\t\tindex = slides.length - infinite * 2;\n\t\t\t}\n\n\t\t\tposition.x = slides[index].offsetLeft * -1;\n\n\t\t\ttransitionEndCallback = function () {\n\t\t\t\ttranslate(slides[index].offsetLeft * -1, 0, undefined);\n\t\t\t};\n\t\t}\n\n\t\tif (classNameActiveSlide) {\n\t\t\tsetActiveElement(slice.call(slides), index);\n\t\t}\n\n\t\t/**\n\t\t * update classes for next and prev arrows\n\t\t * based on user settings\n\t\t */\n\t\tif (prevCtrl && !infinite && !rewindPrev && nextIndex === 0) {\n\t\t\tprevCtrl.classList.add(classNameDisabledPrevCtrl);\n\t\t}\n\n\t\tif (nextCtrl && !infinite && !rewind && nextIndex + 1 === slides.length) {\n\t\t\tnextCtrl.classList.add(classNameDisabledNextCtrl);\n\t\t}\n\n\t\tdispatchSliderEvent('after', 'slide', {\n\t\t\tcurrentSlide: index,\n\t\t});\n\t}\n\n\t/**\n\t * public\n\t * setup function\n\t */\n\tfunction setup() {\n\t\tdispatchSliderEvent('before', 'init');\n\n\t\tprefixes = detectPrefixes();\n\t\toptions = { ...defaults, ...opts };\n\n\t\tconst {\n\t\t\tclassNameFrame,\n\t\t\tclassNameSlideContainer,\n\t\t\tclassNamePrevCtrl,\n\t\t\tclassNameNextCtrl,\n\t\t\tclassNameDisabledNextCtrl = 'disabled',\n\t\t\tclassNameDisabledPrevCtrl = 'disabled',\n\t\t\tenableMouseEvents,\n\t\t\tclassNameActiveSlide,\n\t\t\tinitialIndex,\n\t\t} = options;\n\n\t\tindex = initialIndex;\n\t\tframe = slider.getElementsByClassName(classNameFrame)[0];\n\t\tslideContainer = frame.getElementsByClassName(classNameSlideContainer)[0];\n\t\tprevCtrl = slider.getElementsByClassName(classNamePrevCtrl)[0];\n\t\tnextCtrl = slider.getElementsByClassName(classNameNextCtrl)[0];\n\n\t\tposition = {\n\t\t\tx: slideContainer.offsetLeft,\n\t\t\ty: slideContainer.offsetTop,\n\t\t};\n\n\t\tif (options.infinite) {\n\t\t\tslides = setupInfinite(slice.call(slideContainer.children));\n\t\t} else {\n\t\t\tslides = slice.call(slideContainer.children);\n\n\t\t\tif (prevCtrl && !options.rewindPrev) {\n\t\t\t\tprevCtrl.classList.add(classNameDisabledPrevCtrl);\n\t\t\t}\n\n\t\t\tif (nextCtrl && slides.length === 1 && !options.rewind) {\n\t\t\t\tnextCtrl.classList.add(classNameDisabledNextCtrl);\n\t\t\t}\n\t\t}\n\n\t\treset();\n\n\t\tif (classNameActiveSlide) {\n\t\t\tsetActiveElement(slides, index);\n\t\t}\n\n\t\tif (prevCtrl && nextCtrl) {\n\t\t\tprevCtrl.addEventListener('click', prev);\n\t\t\tnextCtrl.addEventListener('click', next);\n\t\t}\n\n\t\tframe.addEventListener('touchstart', onTouchstart, touchEventParams);\n\n\t\tif (enableMouseEvents) {\n\t\t\tframe.addEventListener('mousedown', onTouchstart);\n\t\t\tframe.addEventListener('click', onClick);\n\t\t}\n\n\t\toptions.window.addEventListener('resize', onResize);\n\n\t\tdispatchSliderEvent('after', 'init');\n\t}\n\n\t/**\n\t * public\n\t * reset function: called on resize\n\t */\n\tfunction reset() {\n\t\tvar {\n\t\t\tinfinite,\n\t\t\tease,\n\t\t\trewindSpeed,\n\t\t\trewindOnResize,\n\t\t\tclassNameActiveSlide,\n\t\t\tinitialIndex,\n\t\t} = options;\n\n\t\tslidesWidth = elementWidth(slideContainer);\n\t\tframeWidth = elementWidth(frame);\n\n\t\tif (frameWidth === slidesWidth) {\n\t\t\tslidesWidth = slides.reduce(function (previousValue, slide) {\n\t\t\t\treturn previousValue + elementWidth(slide);\n\t\t\t}, 0);\n\t\t}\n\n\t\tif (rewindOnResize) {\n\t\t\tindex = initialIndex;\n\t\t} else {\n\t\t\tease = null;\n\t\t\trewindSpeed = 0;\n\t\t}\n\n\t\tif (infinite) {\n\t\t\ttranslate(slides[index + infinite].offsetLeft * -1, 0, null);\n\n\t\t\tindex = index + infinite;\n\t\t\tposition.x = slides[index].offsetLeft * -1;\n\t\t} else {\n\t\t\ttranslate(slides[index].offsetLeft * -1, rewindSpeed, ease);\n\t\t\tposition.x = slides[index].offsetLeft * -1;\n\t\t}\n\n\t\tif (classNameActiveSlide) {\n\t\t\tsetActiveElement(slice.call(slides), index);\n\t\t}\n\t}\n\n\t/**\n\t * public\n\t * slideTo: called on clickhandler\n\t */\n\tfunction slideTo(index) {\n\t\tslide(index);\n\t}\n\n\t/**\n\t * public\n\t * returnIndex function: called on clickhandler\n\t */\n\tfunction returnIndex() {\n\t\treturn index - options.infinite || 0;\n\t}\n\n\t/**\n\t * public\n\t * prev function: called on clickhandler\n\t */\n\tfunction prev() {\n\t\tslide(false, false);\n\t}\n\n\t/**\n\t * public\n\t * next function: called on clickhandler\n\t */\n\tfunction next() {\n\t\tslide(false, true);\n\t}\n\n\t/**\n\t * public\n\t * destroy function: called to gracefully destroy the lory instance\n\t */\n\tfunction destroy() {\n\t\tdispatchSliderEvent('before', 'destroy');\n\n\t\t// remove event listeners\n\t\tframe.removeEventListener(prefixes.transitionEnd, onTransitionEnd);\n\t\tframe.removeEventListener('touchstart', onTouchstart, touchEventParams);\n\t\tframe.removeEventListener('touchmove', onTouchmove, touchEventParams);\n\t\tframe.removeEventListener('touchend', onTouchend);\n\t\tframe.removeEventListener('mousemove', onTouchmove);\n\t\tframe.removeEventListener('mousedown', onTouchstart);\n\t\tframe.removeEventListener('mouseup', onTouchend);\n\t\tframe.removeEventListener('mouseleave', onTouchend);\n\t\tframe.removeEventListener('click', onClick);\n\n\t\toptions.window.removeEventListener('resize', onResize);\n\n\t\tif (prevCtrl) {\n\t\t\tprevCtrl.removeEventListener('click', prev);\n\t\t}\n\n\t\tif (nextCtrl) {\n\t\t\tnextCtrl.removeEventListener('click', next);\n\t\t}\n\n\t\t// remove cloned slides if infinite is set\n\t\tif (options.infinite) {\n\t\t\tArray.apply(null, Array(options.infinite)).forEach(function () {\n\t\t\t\tslideContainer.removeChild(slideContainer.firstChild);\n\t\t\t\tslideContainer.removeChild(slideContainer.lastChild);\n\t\t\t});\n\t\t}\n\n\t\tdispatchSliderEvent('after', 'destroy');\n\t}\n\n\t// event handling\n\n\tlet touchOffset;\n\tlet delta;\n\tlet isScrolling;\n\n\tfunction onTransitionEnd() {\n\t\tif (transitionEndCallback) {\n\t\t\ttransitionEndCallback();\n\n\t\t\ttransitionEndCallback = undefined;\n\t\t}\n\t}\n\n\tfunction onTouchstart(event) {\n\t\tconst { enableMouseEvents } = options;\n\t\tconst touches = event.touches ? event.touches[0] : event;\n\n\t\tif (enableMouseEvents) {\n\t\t\tframe.addEventListener('mousemove', onTouchmove);\n\t\t\tframe.addEventListener('mouseup', onTouchend);\n\t\t\tframe.addEventListener('mouseleave', onTouchend);\n\t\t}\n\n\t\tframe.addEventListener('touchmove', onTouchmove, touchEventParams);\n\t\tframe.addEventListener('touchend', onTouchend);\n\n\t\tconst { pageX, pageY } = touches;\n\n\t\ttouchOffset = {\n\t\t\tx: pageX,\n\t\t\ty: pageY,\n\t\t\ttime: Date.now(),\n\t\t};\n\n\t\tisScrolling = undefined;\n\n\t\tdelta = {};\n\n\t\tdispatchSliderEvent('on', 'touchstart', {\n\t\t\tevent,\n\t\t});\n\t}\n\n\tfunction onTouchmove(event) {\n\t\tconst touches = event.touches ? event.touches[0] : event;\n\t\tconst { pageX, pageY } = touches;\n\n\t\tdelta = {\n\t\t\tx: pageX - touchOffset.x,\n\t\t\ty: pageY - touchOffset.y,\n\t\t};\n\n\t\tif (typeof isScrolling === 'undefined') {\n\t\t\tisScrolling = !!(isScrolling || Math.abs(delta.x) < Math.abs(delta.y));\n\t\t}\n\n\t\tif (!isScrolling && touchOffset) {\n\t\t\ttranslate(position.x + delta.x, 0, null);\n\t\t}\n\n\t\t// may be\n\t\tdispatchSliderEvent('on', 'touchmove', {\n\t\t\tevent,\n\t\t});\n\t}\n\n\tfunction onTouchend(event) {\n\t\t/**\n\t\t * time between touchstart and touchend in milliseconds\n\t\t * @duration {number}\n\t\t */\n\t\tconst duration = touchOffset ? Date.now() - touchOffset.time : undefined;\n\n\t\t/**\n\t\t * is valid if:\n\t\t *\n\t\t * -> swipe attempt time is over 300 ms\n\t\t * and\n\t\t * -> swipe distance is greater than 25px\n\t\t * or\n\t\t * -> swipe distance is more then a third of the swipe area\n\t\t *\n\t\t * @isValidSlide {Boolean}\n\t\t */\n\t\tconst isValid =\n\t\t\t(Number(duration) < 300 && Math.abs(delta.x) > 25) ||\n\t\t\tMath.abs(delta.x) > frameWidth / 3;\n\n\t\t/**\n\t\t * is out of bounds if:\n\t\t *\n\t\t * -> index is 0 and delta x is greater than 0\n\t\t * or\n\t\t * -> index is the last slide and delta is smaller than 0\n\t\t *\n\t\t * @isOutOfBounds {Boolean}\n\t\t */\n\t\tconst isOutOfBounds =\n\t\t\t(!index && delta.x > 0) || (index === slides.length - 1 && delta.x < 0);\n\n\t\tconst direction = delta.x < 0;\n\n\t\tif (!isScrolling) {\n\t\t\tif (isValid && !isOutOfBounds) {\n\t\t\t\tslide(false, direction);\n\t\t\t} else {\n\t\t\t\ttranslate(position.x, options.snapBackSpeed);\n\t\t\t}\n\t\t}\n\n\t\ttouchOffset = undefined;\n\n\t\t/**\n\t\t * remove eventlisteners after swipe attempt\n\t\t */\n\t\tframe.removeEventListener('touchmove', onTouchmove);\n\t\tframe.removeEventListener('touchend', onTouchend);\n\t\tframe.removeEventListener('mousemove', onTouchmove);\n\t\tframe.removeEventListener('mouseup', onTouchend);\n\t\tframe.removeEventListener('mouseleave', onTouchend);\n\n\t\tdispatchSliderEvent('on', 'touchend', {\n\t\t\tevent,\n\t\t});\n\t}\n\n\tfunction onClick(event) {\n\t\tif (delta.x) {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n\n\tfunction onResize(event) {\n\t\tif (frameWidth !== elementWidth(frame)) {\n\t\t\treset();\n\n\t\t\tdispatchSliderEvent('on', 'resize', {\n\t\t\t\tevent,\n\t\t\t});\n\t\t}\n\t}\n\n\t// trigger initial setup\n\tsetup();\n\n\t// expose public api\n\treturn {\n\t\tsetup,\n\t\treset,\n\t\tslideTo,\n\t\treturnIndex,\n\t\tprev,\n\t\tnext,\n\t\tdestroy,\n\t};\n}\n","/**\n * Detecting prefixes for saving time and bytes\n */\nexport default function detectPrefixes() {\n\tlet transform;\n\tlet transition;\n\tlet transitionEnd;\n\n\t(function () {\n\t\tlet el = document.createElement('_');\n\t\tlet style = el.style;\n\n\t\tlet prop;\n\n\t\tif (style[(prop = 'webkitTransition')] === '') {\n\t\t\ttransitionEnd = 'webkitTransitionEnd';\n\t\t\ttransition = prop;\n\t\t}\n\n\t\tif (style[(prop = 'transition')] === '') {\n\t\t\ttransitionEnd = 'transitionend';\n\t\t\ttransition = prop;\n\t\t}\n\n\t\tif (style[(prop = 'webkitTransform')] === '') {\n\t\t\ttransform = prop;\n\t\t}\n\n\t\tif (style[(prop = 'msTransform')] === '') {\n\t\t\ttransform = prop;\n\t\t}\n\n\t\tif (style[(prop = 'transform')] === '') {\n\t\t\ttransform = prop;\n\t\t}\n\n\t\tdocument.body.insertBefore(el, null);\n\t\tstyle[transform] = 'translateX(0)';\n\t\tdocument.body.removeChild(el);\n\t})();\n\n\treturn {\n\t\ttransform,\n\t\ttransition,\n\t\ttransitionEnd,\n\t};\n}\n","export default function detectSupportsPassive() {\n\tlet supportsPassive = false;\n\n\ttry {\n\t\tlet opts = Object.defineProperty({}, 'passive', {\n\t\t\tget() {\n\t\t\t\tsupportsPassive = true;\n\t\t\t},\n\t\t});\n\n\t\twindow.addEventListener('testPassive', null, opts);\n\t\twindow.removeEventListener('testPassive', null, opts);\n\t} catch (e) {}\n\n\treturn supportsPassive;\n}\n","/**\n * dispatch custom events\n *\n * @param {element} el slideshow element\n * @param {string} type custom event name\n * @param {object} detail custom detail information\n */\nexport default function dispatchEvent(target, type, detail) {\n\tlet event = new CustomEvent(type, {\n\t\tbubbles: true,\n\t\tcancelable: true,\n\t\tdetail: detail,\n\t});\n\n\ttarget.dispatchEvent(event);\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 }\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 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 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) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\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 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 swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n };\n\n function 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 if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\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 }); // 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('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 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 = 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 + slidesPerView; 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 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 }\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 }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\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 init();\n update();\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 Object.assign(swiper.navigation, {\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 }\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 init();\n render();\n update();\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.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 Object.assign(swiper.pagination, {\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 }\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 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) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.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 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 disableDraggable();\n }\n\n on('init', () => {\n init();\n updateSize();\n setTranslate();\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 Object.assign(swiper.scrollbar, {\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;\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 } // Activate thumbs\n\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\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.1.5\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: May 16, 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';","// extracted by mini-css-extract-plugin\nexport default {\"pswp__button--close\":\"pswp__button--close\",\"pswp__button--fs\":\"pswp__button--fs\",\"pswp__button--zoom\":\"pswp__button--zoom\",\"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-8\":\"m-8\",\"mt-8\":\"mt-8\",\"my-8\":\"my-8\",\"mr-8\":\"mr-8\",\"mx-8\":\"mx-8\",\"mb-8\":\"mb-8\",\"ml-8\":\"ml-8\",\"m-9\":\"m-9\",\"mt-9\":\"mt-9\",\"my-9\":\"my-9\",\"mr-9\":\"mr-9\",\"mx-9\":\"mx-9\",\"mb-9\":\"mb-9\",\"ml-9\":\"ml-9\",\"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-11\":\"m-11\",\"mt-11\":\"mt-11\",\"my-11\":\"my-11\",\"mr-11\":\"mr-11\",\"mx-11\":\"mx-11\",\"mb-11\":\"mb-11\",\"ml-11\":\"ml-11\",\"m-12\":\"m-12\",\"mt-12\":\"mt-12\",\"my-12\":\"my-12\",\"mr-12\":\"mr-12\",\"mx-12\":\"mx-12\",\"mb-12\":\"mb-12\",\"ml-12\":\"ml-12\",\"m-13\":\"m-13\",\"mt-13\":\"mt-13\",\"my-13\":\"my-13\",\"mr-13\":\"mr-13\",\"mx-13\":\"mx-13\",\"mb-13\":\"mb-13\",\"ml-13\":\"ml-13\",\"m-14\":\"m-14\",\"mt-14\":\"mt-14\",\"my-14\":\"my-14\",\"mr-14\":\"mr-14\",\"mx-14\":\"mx-14\",\"mb-14\":\"mb-14\",\"ml-14\":\"ml-14\",\"m-15\":\"m-15\",\"mt-15\":\"mt-15\",\"my-15\":\"my-15\",\"mr-15\":\"mr-15\",\"mx-15\":\"mx-15\",\"mb-15\":\"mb-15\",\"ml-15\":\"ml-15\",\"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-8\":\"p-8\",\"pt-8\":\"pt-8\",\"py-8\":\"py-8\",\"pr-8\":\"pr-8\",\"px-8\":\"px-8\",\"pb-8\":\"pb-8\",\"pl-8\":\"pl-8\",\"p-9\":\"p-9\",\"pt-9\":\"pt-9\",\"py-9\":\"py-9\",\"pr-9\":\"pr-9\",\"px-9\":\"px-9\",\"pb-9\":\"pb-9\",\"pl-9\":\"pl-9\",\"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-11\":\"p-11\",\"pt-11\":\"pt-11\",\"py-11\":\"py-11\",\"pr-11\":\"pr-11\",\"px-11\":\"px-11\",\"pb-11\":\"pb-11\",\"pl-11\":\"pl-11\",\"p-12\":\"p-12\",\"pt-12\":\"pt-12\",\"py-12\":\"py-12\",\"pr-12\":\"pr-12\",\"px-12\":\"px-12\",\"pb-12\":\"pb-12\",\"pl-12\":\"pl-12\",\"p-13\":\"p-13\",\"pt-13\":\"pt-13\",\"py-13\":\"py-13\",\"pr-13\":\"pr-13\",\"px-13\":\"px-13\",\"pb-13\":\"pb-13\",\"pl-13\":\"pl-13\",\"p-14\":\"p-14\",\"pt-14\":\"pt-14\",\"py-14\":\"py-14\",\"pr-14\":\"pr-14\",\"px-14\":\"px-14\",\"pb-14\":\"pb-14\",\"pl-14\":\"pl-14\",\"p-15\":\"p-15\",\"pt-15\":\"pt-15\",\"py-15\":\"py-15\",\"pr-15\":\"pr-15\",\"px-15\":\"px-15\",\"pb-15\":\"pb-15\",\"pl-15\":\"pl-15\",\"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-8\":\"m-sm-8\",\"mt-sm-8\":\"mt-sm-8\",\"my-sm-8\":\"my-sm-8\",\"mr-sm-8\":\"mr-sm-8\",\"mx-sm-8\":\"mx-sm-8\",\"mb-sm-8\":\"mb-sm-8\",\"ml-sm-8\":\"ml-sm-8\",\"m-sm-9\":\"m-sm-9\",\"mt-sm-9\":\"mt-sm-9\",\"my-sm-9\":\"my-sm-9\",\"mr-sm-9\":\"mr-sm-9\",\"mx-sm-9\":\"mx-sm-9\",\"mb-sm-9\":\"mb-sm-9\",\"ml-sm-9\":\"ml-sm-9\",\"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-11\":\"m-sm-11\",\"mt-sm-11\":\"mt-sm-11\",\"my-sm-11\":\"my-sm-11\",\"mr-sm-11\":\"mr-sm-11\",\"mx-sm-11\":\"mx-sm-11\",\"mb-sm-11\":\"mb-sm-11\",\"ml-sm-11\":\"ml-sm-11\",\"m-sm-12\":\"m-sm-12\",\"mt-sm-12\":\"mt-sm-12\",\"my-sm-12\":\"my-sm-12\",\"mr-sm-12\":\"mr-sm-12\",\"mx-sm-12\":\"mx-sm-12\",\"mb-sm-12\":\"mb-sm-12\",\"ml-sm-12\":\"ml-sm-12\",\"m-sm-13\":\"m-sm-13\",\"mt-sm-13\":\"mt-sm-13\",\"my-sm-13\":\"my-sm-13\",\"mr-sm-13\":\"mr-sm-13\",\"mx-sm-13\":\"mx-sm-13\",\"mb-sm-13\":\"mb-sm-13\",\"ml-sm-13\":\"ml-sm-13\",\"m-sm-14\":\"m-sm-14\",\"mt-sm-14\":\"mt-sm-14\",\"my-sm-14\":\"my-sm-14\",\"mr-sm-14\":\"mr-sm-14\",\"mx-sm-14\":\"mx-sm-14\",\"mb-sm-14\":\"mb-sm-14\",\"ml-sm-14\":\"ml-sm-14\",\"m-sm-15\":\"m-sm-15\",\"mt-sm-15\":\"mt-sm-15\",\"my-sm-15\":\"my-sm-15\",\"mr-sm-15\":\"mr-sm-15\",\"mx-sm-15\":\"mx-sm-15\",\"mb-sm-15\":\"mb-sm-15\",\"ml-sm-15\":\"ml-sm-15\",\"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-8\":\"p-sm-8\",\"pt-sm-8\":\"pt-sm-8\",\"py-sm-8\":\"py-sm-8\",\"pr-sm-8\":\"pr-sm-8\",\"px-sm-8\":\"px-sm-8\",\"pb-sm-8\":\"pb-sm-8\",\"pl-sm-8\":\"pl-sm-8\",\"p-sm-9\":\"p-sm-9\",\"pt-sm-9\":\"pt-sm-9\",\"py-sm-9\":\"py-sm-9\",\"pr-sm-9\":\"pr-sm-9\",\"px-sm-9\":\"px-sm-9\",\"pb-sm-9\":\"pb-sm-9\",\"pl-sm-9\":\"pl-sm-9\",\"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-11\":\"p-sm-11\",\"pt-sm-11\":\"pt-sm-11\",\"py-sm-11\":\"py-sm-11\",\"pr-sm-11\":\"pr-sm-11\",\"px-sm-11\":\"px-sm-11\",\"pb-sm-11\":\"pb-sm-11\",\"pl-sm-11\":\"pl-sm-11\",\"p-sm-12\":\"p-sm-12\",\"pt-sm-12\":\"pt-sm-12\",\"py-sm-12\":\"py-sm-12\",\"pr-sm-12\":\"pr-sm-12\",\"px-sm-12\":\"px-sm-12\",\"pb-sm-12\":\"pb-sm-12\",\"pl-sm-12\":\"pl-sm-12\",\"p-sm-13\":\"p-sm-13\",\"pt-sm-13\":\"pt-sm-13\",\"py-sm-13\":\"py-sm-13\",\"pr-sm-13\":\"pr-sm-13\",\"px-sm-13\":\"px-sm-13\",\"pb-sm-13\":\"pb-sm-13\",\"pl-sm-13\":\"pl-sm-13\",\"p-sm-14\":\"p-sm-14\",\"pt-sm-14\":\"pt-sm-14\",\"py-sm-14\":\"py-sm-14\",\"pr-sm-14\":\"pr-sm-14\",\"px-sm-14\":\"px-sm-14\",\"pb-sm-14\":\"pb-sm-14\",\"pl-sm-14\":\"pl-sm-14\",\"p-sm-15\":\"p-sm-15\",\"pt-sm-15\":\"pt-sm-15\",\"py-sm-15\":\"py-sm-15\",\"pr-sm-15\":\"pr-sm-15\",\"px-sm-15\":\"px-sm-15\",\"pb-sm-15\":\"pb-sm-15\",\"pl-sm-15\":\"pl-sm-15\",\"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-8\":\"m-md-8\",\"mt-md-8\":\"mt-md-8\",\"my-md-8\":\"my-md-8\",\"mr-md-8\":\"mr-md-8\",\"mx-md-8\":\"mx-md-8\",\"mb-md-8\":\"mb-md-8\",\"ml-md-8\":\"ml-md-8\",\"m-md-9\":\"m-md-9\",\"mt-md-9\":\"mt-md-9\",\"my-md-9\":\"my-md-9\",\"mr-md-9\":\"mr-md-9\",\"mx-md-9\":\"mx-md-9\",\"mb-md-9\":\"mb-md-9\",\"ml-md-9\":\"ml-md-9\",\"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-11\":\"m-md-11\",\"mt-md-11\":\"mt-md-11\",\"my-md-11\":\"my-md-11\",\"mr-md-11\":\"mr-md-11\",\"mx-md-11\":\"mx-md-11\",\"mb-md-11\":\"mb-md-11\",\"ml-md-11\":\"ml-md-11\",\"m-md-12\":\"m-md-12\",\"mt-md-12\":\"mt-md-12\",\"my-md-12\":\"my-md-12\",\"mr-md-12\":\"mr-md-12\",\"mx-md-12\":\"mx-md-12\",\"mb-md-12\":\"mb-md-12\",\"ml-md-12\":\"ml-md-12\",\"m-md-13\":\"m-md-13\",\"mt-md-13\":\"mt-md-13\",\"my-md-13\":\"my-md-13\",\"mr-md-13\":\"mr-md-13\",\"mx-md-13\":\"mx-md-13\",\"mb-md-13\":\"mb-md-13\",\"ml-md-13\":\"ml-md-13\",\"m-md-14\":\"m-md-14\",\"mt-md-14\":\"mt-md-14\",\"my-md-14\":\"my-md-14\",\"mr-md-14\":\"mr-md-14\",\"mx-md-14\":\"mx-md-14\",\"mb-md-14\":\"mb-md-14\",\"ml-md-14\":\"ml-md-14\",\"m-md-15\":\"m-md-15\",\"mt-md-15\":\"mt-md-15\",\"my-md-15\":\"my-md-15\",\"mr-md-15\":\"mr-md-15\",\"mx-md-15\":\"mx-md-15\",\"mb-md-15\":\"mb-md-15\",\"ml-md-15\":\"ml-md-15\",\"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-8\":\"p-md-8\",\"pt-md-8\":\"pt-md-8\",\"py-md-8\":\"py-md-8\",\"pr-md-8\":\"pr-md-8\",\"px-md-8\":\"px-md-8\",\"pb-md-8\":\"pb-md-8\",\"pl-md-8\":\"pl-md-8\",\"p-md-9\":\"p-md-9\",\"pt-md-9\":\"pt-md-9\",\"py-md-9\":\"py-md-9\",\"pr-md-9\":\"pr-md-9\",\"px-md-9\":\"px-md-9\",\"pb-md-9\":\"pb-md-9\",\"pl-md-9\":\"pl-md-9\",\"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-11\":\"p-md-11\",\"pt-md-11\":\"pt-md-11\",\"py-md-11\":\"py-md-11\",\"pr-md-11\":\"pr-md-11\",\"px-md-11\":\"px-md-11\",\"pb-md-11\":\"pb-md-11\",\"pl-md-11\":\"pl-md-11\",\"p-md-12\":\"p-md-12\",\"pt-md-12\":\"pt-md-12\",\"py-md-12\":\"py-md-12\",\"pr-md-12\":\"pr-md-12\",\"px-md-12\":\"px-md-12\",\"pb-md-12\":\"pb-md-12\",\"pl-md-12\":\"pl-md-12\",\"p-md-13\":\"p-md-13\",\"pt-md-13\":\"pt-md-13\",\"py-md-13\":\"py-md-13\",\"pr-md-13\":\"pr-md-13\",\"px-md-13\":\"px-md-13\",\"pb-md-13\":\"pb-md-13\",\"pl-md-13\":\"pl-md-13\",\"p-md-14\":\"p-md-14\",\"pt-md-14\":\"pt-md-14\",\"py-md-14\":\"py-md-14\",\"pr-md-14\":\"pr-md-14\",\"px-md-14\":\"px-md-14\",\"pb-md-14\":\"pb-md-14\",\"pl-md-14\":\"pl-md-14\",\"p-md-15\":\"p-md-15\",\"pt-md-15\":\"pt-md-15\",\"py-md-15\":\"py-md-15\",\"pr-md-15\":\"pr-md-15\",\"px-md-15\":\"px-md-15\",\"pb-md-15\":\"pb-md-15\",\"pl-md-15\":\"pl-md-15\",\"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-8\":\"m-lg-8\",\"mt-lg-8\":\"mt-lg-8\",\"my-lg-8\":\"my-lg-8\",\"mr-lg-8\":\"mr-lg-8\",\"mx-lg-8\":\"mx-lg-8\",\"mb-lg-8\":\"mb-lg-8\",\"ml-lg-8\":\"ml-lg-8\",\"m-lg-9\":\"m-lg-9\",\"mt-lg-9\":\"mt-lg-9\",\"my-lg-9\":\"my-lg-9\",\"mr-lg-9\":\"mr-lg-9\",\"mx-lg-9\":\"mx-lg-9\",\"mb-lg-9\":\"mb-lg-9\",\"ml-lg-9\":\"ml-lg-9\",\"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-11\":\"m-lg-11\",\"mt-lg-11\":\"mt-lg-11\",\"my-lg-11\":\"my-lg-11\",\"mr-lg-11\":\"mr-lg-11\",\"mx-lg-11\":\"mx-lg-11\",\"mb-lg-11\":\"mb-lg-11\",\"ml-lg-11\":\"ml-lg-11\",\"m-lg-12\":\"m-lg-12\",\"mt-lg-12\":\"mt-lg-12\",\"my-lg-12\":\"my-lg-12\",\"mr-lg-12\":\"mr-lg-12\",\"mx-lg-12\":\"mx-lg-12\",\"mb-lg-12\":\"mb-lg-12\",\"ml-lg-12\":\"ml-lg-12\",\"m-lg-13\":\"m-lg-13\",\"mt-lg-13\":\"mt-lg-13\",\"my-lg-13\":\"my-lg-13\",\"mr-lg-13\":\"mr-lg-13\",\"mx-lg-13\":\"mx-lg-13\",\"mb-lg-13\":\"mb-lg-13\",\"ml-lg-13\":\"ml-lg-13\",\"m-lg-14\":\"m-lg-14\",\"mt-lg-14\":\"mt-lg-14\",\"my-lg-14\":\"my-lg-14\",\"mr-lg-14\":\"mr-lg-14\",\"mx-lg-14\":\"mx-lg-14\",\"mb-lg-14\":\"mb-lg-14\",\"ml-lg-14\":\"ml-lg-14\",\"m-lg-15\":\"m-lg-15\",\"mt-lg-15\":\"mt-lg-15\",\"my-lg-15\":\"my-lg-15\",\"mr-lg-15\":\"mr-lg-15\",\"mx-lg-15\":\"mx-lg-15\",\"mb-lg-15\":\"mb-lg-15\",\"ml-lg-15\":\"ml-lg-15\",\"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-8\":\"p-lg-8\",\"pt-lg-8\":\"pt-lg-8\",\"py-lg-8\":\"py-lg-8\",\"pr-lg-8\":\"pr-lg-8\",\"px-lg-8\":\"px-lg-8\",\"pb-lg-8\":\"pb-lg-8\",\"pl-lg-8\":\"pl-lg-8\",\"p-lg-9\":\"p-lg-9\",\"pt-lg-9\":\"pt-lg-9\",\"py-lg-9\":\"py-lg-9\",\"pr-lg-9\":\"pr-lg-9\",\"px-lg-9\":\"px-lg-9\",\"pb-lg-9\":\"pb-lg-9\",\"pl-lg-9\":\"pl-lg-9\",\"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-11\":\"p-lg-11\",\"pt-lg-11\":\"pt-lg-11\",\"py-lg-11\":\"py-lg-11\",\"pr-lg-11\":\"pr-lg-11\",\"px-lg-11\":\"px-lg-11\",\"pb-lg-11\":\"pb-lg-11\",\"pl-lg-11\":\"pl-lg-11\",\"p-lg-12\":\"p-lg-12\",\"pt-lg-12\":\"pt-lg-12\",\"py-lg-12\":\"py-lg-12\",\"pr-lg-12\":\"pr-lg-12\",\"px-lg-12\":\"px-lg-12\",\"pb-lg-12\":\"pb-lg-12\",\"pl-lg-12\":\"pl-lg-12\",\"p-lg-13\":\"p-lg-13\",\"pt-lg-13\":\"pt-lg-13\",\"py-lg-13\":\"py-lg-13\",\"pr-lg-13\":\"pr-lg-13\",\"px-lg-13\":\"px-lg-13\",\"pb-lg-13\":\"pb-lg-13\",\"pl-lg-13\":\"pl-lg-13\",\"p-lg-14\":\"p-lg-14\",\"pt-lg-14\":\"pt-lg-14\",\"py-lg-14\":\"py-lg-14\",\"pr-lg-14\":\"pr-lg-14\",\"px-lg-14\":\"px-lg-14\",\"pb-lg-14\":\"pb-lg-14\",\"pl-lg-14\":\"pl-lg-14\",\"p-lg-15\":\"p-lg-15\",\"pt-lg-15\":\"pt-lg-15\",\"py-lg-15\":\"py-lg-15\",\"pr-lg-15\":\"pr-lg-15\",\"px-lg-15\":\"px-lg-15\",\"pb-lg-15\":\"pb-lg-15\",\"pl-lg-15\":\"pl-lg-15\",\"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-8\":\"m-xl-8\",\"mt-xl-8\":\"mt-xl-8\",\"my-xl-8\":\"my-xl-8\",\"mr-xl-8\":\"mr-xl-8\",\"mx-xl-8\":\"mx-xl-8\",\"mb-xl-8\":\"mb-xl-8\",\"ml-xl-8\":\"ml-xl-8\",\"m-xl-9\":\"m-xl-9\",\"mt-xl-9\":\"mt-xl-9\",\"my-xl-9\":\"my-xl-9\",\"mr-xl-9\":\"mr-xl-9\",\"mx-xl-9\":\"mx-xl-9\",\"mb-xl-9\":\"mb-xl-9\",\"ml-xl-9\":\"ml-xl-9\",\"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-11\":\"m-xl-11\",\"mt-xl-11\":\"mt-xl-11\",\"my-xl-11\":\"my-xl-11\",\"mr-xl-11\":\"mr-xl-11\",\"mx-xl-11\":\"mx-xl-11\",\"mb-xl-11\":\"mb-xl-11\",\"ml-xl-11\":\"ml-xl-11\",\"m-xl-12\":\"m-xl-12\",\"mt-xl-12\":\"mt-xl-12\",\"my-xl-12\":\"my-xl-12\",\"mr-xl-12\":\"mr-xl-12\",\"mx-xl-12\":\"mx-xl-12\",\"mb-xl-12\":\"mb-xl-12\",\"ml-xl-12\":\"ml-xl-12\",\"m-xl-13\":\"m-xl-13\",\"mt-xl-13\":\"mt-xl-13\",\"my-xl-13\":\"my-xl-13\",\"mr-xl-13\":\"mr-xl-13\",\"mx-xl-13\":\"mx-xl-13\",\"mb-xl-13\":\"mb-xl-13\",\"ml-xl-13\":\"ml-xl-13\",\"m-xl-14\":\"m-xl-14\",\"mt-xl-14\":\"mt-xl-14\",\"my-xl-14\":\"my-xl-14\",\"mr-xl-14\":\"mr-xl-14\",\"mx-xl-14\":\"mx-xl-14\",\"mb-xl-14\":\"mb-xl-14\",\"ml-xl-14\":\"ml-xl-14\",\"m-xl-15\":\"m-xl-15\",\"mt-xl-15\":\"mt-xl-15\",\"my-xl-15\":\"my-xl-15\",\"mr-xl-15\":\"mr-xl-15\",\"mx-xl-15\":\"mx-xl-15\",\"mb-xl-15\":\"mb-xl-15\",\"ml-xl-15\":\"ml-xl-15\",\"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-8\":\"p-xl-8\",\"pt-xl-8\":\"pt-xl-8\",\"py-xl-8\":\"py-xl-8\",\"pr-xl-8\":\"pr-xl-8\",\"px-xl-8\":\"px-xl-8\",\"pb-xl-8\":\"pb-xl-8\",\"pl-xl-8\":\"pl-xl-8\",\"p-xl-9\":\"p-xl-9\",\"pt-xl-9\":\"pt-xl-9\",\"py-xl-9\":\"py-xl-9\",\"pr-xl-9\":\"pr-xl-9\",\"px-xl-9\":\"px-xl-9\",\"pb-xl-9\":\"pb-xl-9\",\"pl-xl-9\":\"pl-xl-9\",\"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-11\":\"p-xl-11\",\"pt-xl-11\":\"pt-xl-11\",\"py-xl-11\":\"py-xl-11\",\"pr-xl-11\":\"pr-xl-11\",\"px-xl-11\":\"px-xl-11\",\"pb-xl-11\":\"pb-xl-11\",\"pl-xl-11\":\"pl-xl-11\",\"p-xl-12\":\"p-xl-12\",\"pt-xl-12\":\"pt-xl-12\",\"py-xl-12\":\"py-xl-12\",\"pr-xl-12\":\"pr-xl-12\",\"px-xl-12\":\"px-xl-12\",\"pb-xl-12\":\"pb-xl-12\",\"pl-xl-12\":\"pl-xl-12\",\"p-xl-13\":\"p-xl-13\",\"pt-xl-13\":\"pt-xl-13\",\"py-xl-13\":\"py-xl-13\",\"pr-xl-13\":\"pr-xl-13\",\"px-xl-13\":\"px-xl-13\",\"pb-xl-13\":\"pb-xl-13\",\"pl-xl-13\":\"pl-xl-13\",\"p-xl-14\":\"p-xl-14\",\"pt-xl-14\":\"pt-xl-14\",\"py-xl-14\":\"py-xl-14\",\"pr-xl-14\":\"pr-xl-14\",\"px-xl-14\":\"px-xl-14\",\"pb-xl-14\":\"pb-xl-14\",\"pl-xl-14\":\"pl-xl-14\",\"p-xl-15\":\"p-xl-15\",\"pt-xl-15\":\"pt-xl-15\",\"py-xl-15\":\"py-xl-15\",\"pr-xl-15\":\"pr-xl-15\",\"px-xl-15\":\"px-xl-15\",\"pb-xl-15\":\"pb-xl-15\",\"pl-xl-15\":\"pl-xl-15\",\"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-8\":\"m-xxl-8\",\"mt-xxl-8\":\"mt-xxl-8\",\"my-xxl-8\":\"my-xxl-8\",\"mr-xxl-8\":\"mr-xxl-8\",\"mx-xxl-8\":\"mx-xxl-8\",\"mb-xxl-8\":\"mb-xxl-8\",\"ml-xxl-8\":\"ml-xxl-8\",\"m-xxl-9\":\"m-xxl-9\",\"mt-xxl-9\":\"mt-xxl-9\",\"my-xxl-9\":\"my-xxl-9\",\"mr-xxl-9\":\"mr-xxl-9\",\"mx-xxl-9\":\"mx-xxl-9\",\"mb-xxl-9\":\"mb-xxl-9\",\"ml-xxl-9\":\"ml-xxl-9\",\"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-11\":\"m-xxl-11\",\"mt-xxl-11\":\"mt-xxl-11\",\"my-xxl-11\":\"my-xxl-11\",\"mr-xxl-11\":\"mr-xxl-11\",\"mx-xxl-11\":\"mx-xxl-11\",\"mb-xxl-11\":\"mb-xxl-11\",\"ml-xxl-11\":\"ml-xxl-11\",\"m-xxl-12\":\"m-xxl-12\",\"mt-xxl-12\":\"mt-xxl-12\",\"my-xxl-12\":\"my-xxl-12\",\"mr-xxl-12\":\"mr-xxl-12\",\"mx-xxl-12\":\"mx-xxl-12\",\"mb-xxl-12\":\"mb-xxl-12\",\"ml-xxl-12\":\"ml-xxl-12\",\"m-xxl-13\":\"m-xxl-13\",\"mt-xxl-13\":\"mt-xxl-13\",\"my-xxl-13\":\"my-xxl-13\",\"mr-xxl-13\":\"mr-xxl-13\",\"mx-xxl-13\":\"mx-xxl-13\",\"mb-xxl-13\":\"mb-xxl-13\",\"ml-xxl-13\":\"ml-xxl-13\",\"m-xxl-14\":\"m-xxl-14\",\"mt-xxl-14\":\"mt-xxl-14\",\"my-xxl-14\":\"my-xxl-14\",\"mr-xxl-14\":\"mr-xxl-14\",\"mx-xxl-14\":\"mx-xxl-14\",\"mb-xxl-14\":\"mb-xxl-14\",\"ml-xxl-14\":\"ml-xxl-14\",\"m-xxl-15\":\"m-xxl-15\",\"mt-xxl-15\":\"mt-xxl-15\",\"my-xxl-15\":\"my-xxl-15\",\"mr-xxl-15\":\"mr-xxl-15\",\"mx-xxl-15\":\"mx-xxl-15\",\"mb-xxl-15\":\"mb-xxl-15\",\"ml-xxl-15\":\"ml-xxl-15\",\"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-8\":\"p-xxl-8\",\"pt-xxl-8\":\"pt-xxl-8\",\"py-xxl-8\":\"py-xxl-8\",\"pr-xxl-8\":\"pr-xxl-8\",\"px-xxl-8\":\"px-xxl-8\",\"pb-xxl-8\":\"pb-xxl-8\",\"pl-xxl-8\":\"pl-xxl-8\",\"p-xxl-9\":\"p-xxl-9\",\"pt-xxl-9\":\"pt-xxl-9\",\"py-xxl-9\":\"py-xxl-9\",\"pr-xxl-9\":\"pr-xxl-9\",\"px-xxl-9\":\"px-xxl-9\",\"pb-xxl-9\":\"pb-xxl-9\",\"pl-xxl-9\":\"pl-xxl-9\",\"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-11\":\"p-xxl-11\",\"pt-xxl-11\":\"pt-xxl-11\",\"py-xxl-11\":\"py-xxl-11\",\"pr-xxl-11\":\"pr-xxl-11\",\"px-xxl-11\":\"px-xxl-11\",\"pb-xxl-11\":\"pb-xxl-11\",\"pl-xxl-11\":\"pl-xxl-11\",\"p-xxl-12\":\"p-xxl-12\",\"pt-xxl-12\":\"pt-xxl-12\",\"py-xxl-12\":\"py-xxl-12\",\"pr-xxl-12\":\"pr-xxl-12\",\"px-xxl-12\":\"px-xxl-12\",\"pb-xxl-12\":\"pb-xxl-12\",\"pl-xxl-12\":\"pl-xxl-12\",\"p-xxl-13\":\"p-xxl-13\",\"pt-xxl-13\":\"pt-xxl-13\",\"py-xxl-13\":\"py-xxl-13\",\"pr-xxl-13\":\"pr-xxl-13\",\"px-xxl-13\":\"px-xxl-13\",\"pb-xxl-13\":\"pb-xxl-13\",\"pl-xxl-13\":\"pl-xxl-13\",\"p-xxl-14\":\"p-xxl-14\",\"pt-xxl-14\":\"pt-xxl-14\",\"py-xxl-14\":\"py-xxl-14\",\"pr-xxl-14\":\"pr-xxl-14\",\"px-xxl-14\":\"px-xxl-14\",\"pb-xxl-14\":\"pb-xxl-14\",\"pl-xxl-14\":\"pl-xxl-14\",\"p-xxl-15\":\"p-xxl-15\",\"pt-xxl-15\":\"pt-xxl-15\",\"py-xxl-15\":\"py-xxl-15\",\"pr-xxl-15\":\"pr-xxl-15\",\"px-xxl-15\":\"px-xxl-15\",\"pb-xxl-15\":\"pb-xxl-15\",\"pl-xxl-15\":\"pl-xxl-15\",\"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\",\"flex-break\":\"flex-break\",\"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-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\",\"sr-only\":\"sr-only\",\"text-success\":\"text-success\",\"text-danger\":\"text-danger\",\"text-uppercase\":\"text-uppercase\",\"text-bold\":\"text-bold\",\"text-extra-bold\":\"text-extra-bold\",\"text-small\":\"text-small\",\"text-light\":\"text-light\",\"text-muted\":\"text-muted\",\"theme--base\":\"theme--base\",\"theme--light\":\"theme--light\",\"theme--default\":\"theme--default\",\"theme--primary\":\"theme--primary\",\"theme\":\"theme\",\"background\":\"background\",\"background--base\":\"background--base\",\"background--light\":\"background--light\",\"background--default\":\"background--default\",\"background--primary\":\"background--primary\",\"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-boxed\":\"container-boxed\",\"container--without-gutters\":\"container--without-gutters\",\"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\",\"h1\":\"h1\",\"h2\":\"h2\",\"h3\":\"h3\",\"h4\":\"h4\",\"h5\":\"h5\",\"h6\":\"h6\",\"c-button\":\"c-button\",\"--active\":\"---active\",\"is-active\":\"is-active\",\"c-button--small\":\"c-button--small\",\"c-button--outline\":\"c-button--outline\",\"c-cookie-consent\":\"c-cookie-consent\",\"--show\":\"---show\",\"c-link\":\"c-link\",\"c-link--inverted\":\"c-link--inverted\",\"c-link__wrapper\":\"c-link__wrapper\",\"c-link--medium\":\"c-link--medium\",\"c-link--light\":\"c-link--light\",\"c-link--default\":\"c-link--default\",\"module--large\":\"module--large\",\"module\":\"module\",\"module--large__top\":\"module--large__top\",\"module__top\":\"module__top\",\"module--large__bottom\":\"module--large__bottom\",\"module__bottom\":\"module__bottom\",\"module--row\":\"module--row\",\"section--large\":\"section--large\",\"section\":\"section\",\"section--large__top\":\"section--large__top\",\"section__top\":\"section__top\",\"section--large__bottom\":\"section--large__bottom\",\"section__bottom\":\"section__bottom\",\"section--row\":\"section--row\",\"c-navbar\":\"c-navbar\",\"container-fluid\":\"container-fluid\",\"c-navbar__brand\":\"c-navbar__brand\",\"c-navbar__links\":\"c-navbar__links\",\"c-navbar__links--desktop\":\"c-navbar__links--desktop\",\"c-navbar__toggler\":\"c-navbar__toggler\",\"c-navbar__toggler__inner\":\"c-navbar__toggler__inner\",\"c-navbar__collapse\":\"c-navbar__collapse\",\"c-navbar__nav\":\"c-navbar__nav\",\"c-navbar__mobile\":\"c-navbar__mobile\",\"c-text\":\"c-text\",\"c-tiles\":\"c-tiles\",\"c-tiles__tile\":\"c-tiles__tile\",\"c-tiles__title\":\"c-tiles__title\",\"c-tiles__overlay\":\"c-tiles__overlay\",\"c-tiles__overlay-title\":\"c-tiles__overlay-title\",\"c-tiles__overlay-text\":\"c-tiles__overlay-text\",\"c-tiles__title--mobile\":\"c-tiles__title--mobile\",\"c-timeline\":\"c-timeline\",\"c-timeline--big\":\"c-timeline--big\",\"pswp\":\"pswp\",\"pswp--animate_opacity\":\"pswp--animate_opacity\",\"pswp--open\":\"pswp--open\",\"pswp--zoom-allowed\":\"pswp--zoom-allowed\",\"pswp__img\":\"pswp__img\",\"pswp--zoomed-in\":\"pswp--zoomed-in\",\"pswp--dragging\":\"pswp--dragging\",\"pswp__bg\":\"pswp__bg\",\"pswp__scroll-wrap\":\"pswp__scroll-wrap\",\"pswp__container\":\"pswp__container\",\"pswp__zoom-wrap\":\"pswp__zoom-wrap\",\"pswp--animated-in\":\"pswp--animated-in\",\"pswp__item\":\"pswp__item\",\"pswp__img--placeholder\":\"pswp__img--placeholder\",\"pswp__img--placeholder--blank\":\"pswp__img--placeholder--blank\",\"pswp--ie\":\"pswp--ie\",\"pswp__error-msg\":\"pswp__error-msg\",\"pswp__button\":\"pswp__button\",\"no-touch\":\"no-touch\",\"focus\":\"focus\",\"pswp__button--arrow--left\":\"pswp__button--arrow--left\",\"pswp__button--arrow--right\":\"pswp__button--arrow--right\",\"pswp__button--zoom-allowed\":\"pswp__button--zoom-allowed\",\"pswp__button--zoomed-in\":\"pswp__button--zoomed-in\",\"pswp__ui\":\"pswp__ui\",\"pswp__ui--over-close\":\"pswp__ui--over-close\",\"pswp__top-bar\":\"pswp__top-bar\",\"pswp--supports-fs\":\"pswp--supports-fs\",\"pswp--fs\":\"pswp--fs\",\"pswp--touch\":\"pswp--touch\",\"pswp__counter\":\"pswp__counter\",\"pswp__caption\":\"pswp__caption\",\"pswp__caption--empty\":\"pswp__caption--empty\",\"pswp__caption--fake\":\"pswp__caption--fake\",\"pswp__caption__center\":\"pswp__caption__center\",\"pswp__preloader\":\"pswp__preloader\",\"pswp__preloader--active\":\"pswp__preloader--active\",\"pswp--css_animation\":\"pswp--css_animation\",\"pswp__preloader__icn\":\"pswp__preloader__icn\",\"pswp-clockwise\":\"pswp-clockwise\",\"pswp__preloader__donut\":\"pswp__preloader__donut\",\"pswp-donut-rotate\":\"pswp-donut-rotate\",\"pswp__preloader__cut\":\"pswp__preloader__cut\",\"pswp--has_mouse\":\"pswp--has_mouse\",\"pswp__ui--fit\":\"pswp__ui--fit\",\"pswp__ui--idle\":\"pswp__ui--idle\",\"pswp__ui--hidden\":\"pswp__ui--hidden\",\"pswp__ui--one-slide\":\"pswp__ui--one-slide\",\"pswp__element--disabled\":\"pswp__element--disabled\",\"pswp--minimal--dark\":\"pswp--minimal--dark\",\"swiper-slide\":\"swiper-slide\",\"swiper\":\"swiper\",\"c-slider__override\":\"c-slider__override\",\"c-slider\":\"c-slider\",\"c-slider__frame\":\"c-slider__frame\",\"c-slider__slides\":\"c-slider__slides\",\"c-slider__slide\":\"c-slider__slide\",\"c-slider__arrow\":\"c-slider__arrow\",\"c-slider__arrow__inner\":\"c-slider__arrow__inner\",\"disabled\":\"disabled\",\"c-slider__arrow--prev\":\"c-slider__arrow--prev\",\"c-slider__arrow--next\":\"c-slider__arrow--next\",\"c-slider--fade\":\"c-slider--fade\",\"active\":\"active\",\"c-slider__slide--fade-in\":\"c-slider__slide--fade-in\",\"c-slider__slide--fade-out\":\"c-slider__slide--fade-out\",\"c-slider__img\":\"c-slider__img\",\"c-slider__link\":\"c-slider__link\",\"c-slider--responsive\":\"c-slider--responsive\",\"c-slider--responsive--sm-fixed\":\"c-slider--responsive--sm-fixed\",\"c-slider--responsive--md-fixed\":\"c-slider--responsive--md-fixed\",\"c-slider--responsive--xl-fixed\":\"c-slider--responsive--xl-fixed\",\"c-slider__dots\":\"c-slider__dots\",\"c-slider--no-touch\":\"c-slider--no-touch\",\"swiper-button-disabled\":\"swiper-button-disabled\",\"hidden\":\"hidden\",\"c-slider__slide--gutter\":\"c-slider__slide--gutter\",\"--only-dots\":\"---only-dots\",\"c-slider__frame__element\":\"c-slider__frame__element\",\"c-media__image_legend\":\"c-media__image_legend\",\"c-media__image_legend__item\":\"c-media__image_legend__item\",\"c-header\":\"c-header\",\"c-footer\":\"c-footer\",\"c-footer__links\":\"c-footer__links\",\"c-list\":\"c-list\",\"swiper-vertical\":\"swiper-vertical\",\"swiper-wrapper\":\"swiper-wrapper\",\"swiper-android\":\"swiper-android\",\"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-cube-shadow\":\"swiper-cube-shadow\",\"swiper-slide-shadow\":\"swiper-slide-shadow\",\"swiper-slide-shadow-bottom\":\"swiper-slide-shadow-bottom\",\"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-horizontal\":\"swiper-horizontal\",\"swiper-centered\":\"swiper-centered\",\"CybotCookiebotDialogPoweredbyCybot\":\"CybotCookiebotDialogPoweredbyCybot\",\"CybotCookiebotDialogPoweredByText\":\"CybotCookiebotDialogPoweredByText\",\"CookiebotWidget\":\"CookiebotWidget\",\"CookiebotWidget-open\":\"CookiebotWidget-open\",\"CookiebotWidget-body\":\"CookiebotWidget-body\",\"CookiebotWidget-main-logo\":\"CookiebotWidget-main-logo\",\"cookie-notice\":\"cookie-notice\",\"CookieDeclaration\":\"CookieDeclaration\",\"CookieDeclarationType\":\"CookieDeclarationType\",\"CookieDeclarationTableHeader\":\"CookieDeclarationTableHeader\",\"CookieDeclarationTableCell\":\"CookieDeclarationTableCell\",\"CookieDeclarationDialogText\":\"CookieDeclarationDialogText\",\"tidio-chat-iframe\":\"tidio-chat-iframe\",\"c-iframe\":\"c-iframe\",\"c-player__iframe\":\"c-player__iframe\",\"c-player__iframe__close\":\"c-player__iframe__close\",\"c-icon\":\"c-icon\",\"c-player__iframe__inner\":\"c-player__iframe__inner\",\"c-player__overlay\":\"c-player__overlay\",\"c-player\":\"c-player\",\"c-player__icon\":\"c-player__icon\",\"c-image--preview\":\"c-image--preview\",\"bounce-slider-arrow-horizontal\":\"bounce-slider-arrow-horizontal\"};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","","// startup\n// Load entry module and return exports\n__webpack_require__(1467);\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(3325);\n",""],"names":["CookiebotRenewComponent","className","element","addEventListener","e","preventDefault","Cookiebot","renew","IframeComponent","id","getAttribute","onOverlayClick","otherElement","document","querySelector","onCloseClick","clientHeight","classList","add","remove","setAttribute","src","prev","getElementsByClassName","next","parent","Navigation","navToggler","mobileNavbar","getElementById","Swiper","use","SliderComponent","swiper","loop","slidesPerView","navigation","nextEl","prevEl","SliderResponsiveComponent","breakpoints","behaviors","SliderSlidesToScrollResponsiveBehavior","SliderDotsResponsiveBehavior","SliderArrowsResponsiveBehavior","slider","Slider","PhotoswipeGalleryComponent","observe","PhotoswipeGallery","CollapseComponent","body","collapse","Collapse","stringCollapse","options","activeClass","activeParentClass","animateProp","collapsingClass","componentClass","showClass","showClassDesktop","desktopWidth","transitionDuration","isHideable","closeSiblings","useShowClassDesktop","dataParentSelector","dataTargetSelector","dataToggleSelector","hrefSelector","isTransitioning","eventNamespaceFn","handleClick","event","trigger","currentTarget","tagName","target","data","getInstance","toggle","parentElement","init","triggers","window","outerWidth","isOpen","hide","show","selector","actives","Array","from","querySelectorAll","filter","active","length","anyTransitioning","collapseInstance","forEach","_handleShow","_handleClose","style","toggles","push","_addAriaAndCollapsedClass","collapseElement","scrollHeight","offsetWidth","o","toString","toLowerCase","create","console","error","reflector","Reflector","resolver","Resolver","compiler","Compiler","factory","components","rootElement","observables","Map","componentType","component","resolve","safeRootElement","node","compile","set","Error","name","size","MutationObserver","mutations","componentInitializer","mutation","value","key","addedNodes","map","comps","c","childList","subtree","componentCache","constructor","has","get","Object","keys","queries","propName","query","targetNode","descendants","nodes","cache","undefined","reduce","acc","val","concat","f","first","onInit","Component","createComponent","typeOrFunc","parentCtor","getParentCtor","ownAnnotations","_ownAnnotations","parentAnnotations","annotations","propMetadata","parentPropMetadata","ownPropMetadata","_ownPropMetadata","decorators","hasOwnProperty","ANNOTATIONS","PROP_METADATA","ctor","parentProto","getPrototypeOf","prototype","QUERY_METADATA_IDENTIFIERS","type","typeMetadata","metadata","findLast","metadataName","propertyMetadata","_mergeWithPropertyMetadata","a","some","i","_merge","mergedQueries","res","propertyName","_getQueryMetadata","q","read","arr","condition","makeDecorator","props","parentClass","chainFn","typeFn","metaCtor","makeMetadataCtor","DecoratorFactory","args","call","annotationInstance","typeDecorator","cls","defineProperty","values","makePropDecorator","PropDecoratorFactory","apply","decoratorInstance","PropDecorator","metaName","meta","unshift","makeMetadataFactory","isTypeOf","obj","Type","Function","isType","v","addClass","trim","asHTMLElement","changeClass","classRegexCache","classRegex","RegExp","getClass","getSelectorElementFromElement","attribute","fallbackHref","indexOf","substr","getSelectorFromElement","test","hasClass","isHTMLElement","HTMLElement","nodeType","nodeName","removeClass","regex","replace","removeClassFactory","removeClassOnCollection","elements","toggleClass","state","dispatchCustomEvent","eventName","CustomEvent","dispatchEvent","eventNamespaceFactory","namespace","IPhotoswipeGalleryOptions","_options","galleryId","caption","videoHtml","_element","_galleryId","_handleInitGallery","returnValue","galleryItems","items","pwspIndex","galleryItem","slide","typeSlide","html","split","img","getElementsByTagName","imgSrc","currentSrc","w","parseInt","h","title","msrc","el","pswpoptions","history","index","getThumbBoundsFn","pageYScroll","pageYOffset","documentElement","scrollTop","rect","left","top","width","getBoundingClientRect","x","y","gallery","PhotoSwipe","getPSWPElement","PhotoSwipeUI_Default","listen","videoSlides","videoSlide","pswpElement","createElement","innerHTML","appendChild","photoswipeGallery","infinite","rewind","_slidingWindowCount","getSlidingWindowCount","reconfigureArrows","detail","currentSlide","instance","returnIndex","getSlidesToShow","slides","frameWidth","frame","slidesToShow","firstSlideWith","Math","round","countSlides","slidesToScroll","pagerQty","lastSlideVisible","counter","ceil","dots","reinitDots","len","childNodes","handleDotClick","updateDots","currentSlideIndex","children","slideToIndex","slideTo","dotsCount","getDotCount","li","firstElementChild","behavoirs","classNameFrame","classNameNextCtrl","classNamePrevCtrl","classNameSlideContainer","ease","enableMouseEvents","initialIndex","rewindSpeed","slideSpeed","snapBackSpeed","rewindOnResize","slidesWrapper","behavior","initialize","reinitInstance","destroy","_breakpoints","reconfigureSlidesToScroll","currentWindowWidth","innerWidth","newSlidesToScroll","_breakpointsKeys","s","sort","b","transitionEndEventName","addTransitionEndListener","callback","fallbackDuration","called","listener","removeEventListener","setTimeout","getTransitionEndEventName","transitions","WebkitTransition","transition","classNameActiveSlide","slice","lory","opts","position","slidesWidth","slideContainer","prevCtrl","nextCtrl","prefixes","transitionEndCallback","touchEventParams","passive","jQuery","setActiveElement","currentIndex","contains","setupInfinite","slideArray","front","back","cloned","cloneNode","reverse","insertBefore","firstChild","transitionEnd","onTransitionEnd","dispatchSliderEvent","phase","translate","to","duration","transform","elementWidth","nextIndex","direction","rewindPrev","classNameDisabledNextCtrl","classNameDisabledPrevCtrl","nextSlide","maxOffset","min","max","abs","nextOffset","offsetLeft","setup","defaults","offsetTop","reset","onTouchstart","onClick","onResize","previousValue","onTouchmove","onTouchend","removeChild","lastChild","touchOffset","delta","isScrolling","touches","pageX","pageY","time","Date","now","isValid","Number","isOutOfBounds","detectPrefixes","prop","detectSupportsPassive","supportsPassive","bubbles","cancelable","makeReactive","proto","__proto__","Dom7","arrayFlat","isArray","arrayFilter","arrayUnique","uniqueArray","toCamelCase","string","match","group","toUpperCase","qsa","context","$","toCreate","tempParent","fn","classes","classNames","attr","attrs","arguments","attrName","removeAttr","removeAttribute","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","parseFloat","multiple","selectedOptions","j","selected","on","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","is","parents","k","handleEvent","events","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","once","dom","onceHandler","eventArgs","evt","dataIndex","fireCallBack","animationEnd","css","includeMargins","styles","getPropertyValue","height","innerHeight","outerHeight","offsetHeight","offset","box","clientTop","clientLeft","scrollY","scrollLeft","scrollX","display","getComputedStyle","each","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","append","newChild","tempDiv","appendTo","prepend","prependTo","before","parentNode","insertAfter","after","nextSibling","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","detach","els","toAdd","empty","scrollTo","easing","animate","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollWidth","startTime","render","getTime","progress","easeProgress","cos","PI","done","requestAnimationFrame","initialProps","initialParams","params","animating","que","easingProgress","stop","frameId","cancelAnimationFrame","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","animateInstance","noTrigger","shortcut","eventHandler","click","blur","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","isObject","extend","ssrDocument","activeElement","createEvent","initEvent","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","replaceState","pushState","go","Image","screen","clearTimeout","matchMedia","getWindow","win","getBreakpoint","base","containerEl","breakpoint","currentHeight","points","point","minRatio","clientWidth","setBreakpoint","isGridEnabled","grid","rows","activeIndex","initialized","loopedSlides","$el","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","enabled","containerModifierClass","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","allowTouchMove","allowSlideNext","allowSlidePrev","disable","enable","emit","loopDestroy","loopCreate","updateSlides","checkOverflow","wasLocked","isLocked","slidesOffsetBefore","lastSlideIndex","lastSlideRightEdge","slidesGrid","slidesSizesGrid","snapGrid","isEnd","prepareClasses","entries","prefix","resultClasses","item","addClasses","rtl","device","support","suffixes","touch","freeMode","autoHeight","android","ios","cssMode","centeredSlides","watchSlidesProgress","join","removeClasses","prototypes","eventsEmitter","update","grabCursor","images","extendedDefaults","_len","_key","swipers","newParams","__swiper__","browser","eventsListeners","eventsAnyListeners","modules","__modules__","allModulesParams","mod","extendParams","bind","swiperParams","passedParams","onAny","isHorizontal","isVertical","realIndex","isBeginning","previousTranslate","velocity","touchEvents","desktop","touchEventsTouch","start","move","end","cancel","touchEventsDesktop","simulateTouch","touchEventsData","isTouched","isMoved","allowTouchCallbacks","touchStartTime","currentTranslate","startTranslate","allowThresholdMove","focusableElements","lastClickTime","clickTimeout","velocities","allowMomentumBounce","isTouchEvent","startMoving","allowClick","startX","startY","currentX","currentY","diff","imagesToLoad","imagesLoaded","setGrabCursor","unsetGrabCursor","speed","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","mounted","getWrapperSelector","wrapperClass","getWrapper","shadowRoot","$wrapperEl","createElements","wrapper","wrapperEl","dir","wrongRTL","mount","preloadImages","initialSlide","runCallbacksOnInit","attachEvents","deleteInstance","cleanStyles","detachEvents","slideVisibleClass","slideActiveClass","slideNextClass","slidePrevClass","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","touchReleaseOnEdges","uniqueNavElements","resistance","resistanceRatio","preventClicks","preventClicksPropagation","slideToClickedSlide","updateOnImagesReady","loopAdditionalSlides","loopFillGroupWithBlank","loopPreventsSlide","swipeHandler","noSwiping","noSwipingClass","noSwipingSelector","passiveListeners","maxBackfaceHiddenSlides","slideBlankClass","slideDuplicateActiveClass","slideDuplicateClass","slideDuplicateNextClass","slideDuplicatePrevClass","priority","self","method","__emitterProxy","offAny","_len2","_key2","eventsArray","dummyEventAttached","dummyEventListener","domMethod","swiperMethod","onTouchStart","onTouchMove","onTouchEnd","passiveListener","onScroll","stopPropagation","stopImmediatePropagation","autoplay","running","paused","run","newProgress","translatesDiff","originalEvent","touchEndTime","timeDiff","pathTree","path","composedPath","updateClickedSlide","swipeDirection","currentPos","stopIndex","groupSize","increment","rewindFirstIndex","rewindLastIndex","virtual","ratio","isNavButtonTarget","targetTouch","targetTouches","changedTouches","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","$selector","blankSlidesNum","blankNode","prependSlides","appendSlides","newIndex","snapTranslate","slideChanged","moduleExtendParams","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","floor","normalizedTranslate","normalizedSnapGrid","prevSnap","prevSnapIndex","snap","snapIndex","prevIndex","lastIndex","initial","indexAsNumber","isValidNumber","isFinite","slideIndex","previousIndex","skip","normalizedGrid","normalizedGridNext","transitionStart","isH","t","isVirtual","scrollSnapType","_immediateVirtual","_swiperImmediateVirtual","smoothScroll","targetPosition","side","onSlideToWrapperTransitionEnd","clickedIndex","clickedSlide","currentSnap","nextSnap","byController","transitionEmit","step","getSwiperTranslate","axis","z","translateBounds","onTranslateToWrapperTransitionEnd","updateSlidesOffset","updateSlidesProgress","newActiveIndex","previousRealIndex","previousSnapIndex","activeSlides","getSlideByIndex","visibleSlides","slideFound","multiplier","wasBeginning","wasEnd","isNaN","getDirectionLabel","property","getDirectionPropertyValue","label","previousSlidesLength","slidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","gridEnabled","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","paddingLeft","paddingRight","boxSizing","updateWrapperSize","newSlidesGrid","slidesGridItem","_","allSlidesSize","slideSizeValue","maxSnap","allSlidesOffset","addToSnapGrid","addToSlidesGrid","backFaceHiddenClass","hasClassBackfaceClassAdded","activeSlide","prevSlide","emitSlidesClasses","swiperSlideOffset","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","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","$nextEl","$prevEl","pagination","bulletClass","updateNavigation","hasPagination","bullets","hasClickablePagination","clickable","updatePagination","bulletEl","$bulletEl","renderBullet","bulletActiveClass","initNavEl","wrapperId","handleFocus","includes","isActive","$containerEl","$slideEl","ariaLabelMessage","Autoplay","timeout","delay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","_s","Controller","controller","control","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","opacity","zIndex","$transitionElements","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","lastMoveEvent","pop","velocityEvent","distance","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","URL","pathArray","part","total","setHistory","currentState","scrollToSlide","slideHistory","setHistoryPopState","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","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","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","raw","releaseScroll","rtlFactor","positions","sign","prevEvent","ignoreWheelEvents","firstEvent","snapToThreshold","autoplayDisableOnInteraction","hideOnClick","disabledClass","hiddenClass","lockClass","getEl","toggleEl","disabled","onPrevClick","onNextClick","targetEl","isHidden","Pagination","pfx","bulletElement","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","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","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","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","Virtual","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","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","classesToSelector","createElementIfNotDefined","checkProps","createShadow","shadowClass","$shadowContainer","Methods","methodName","writable","effectInit","overwriteParamsResult","requireUpdateOnVirtual","effectTarget","effectParams","effectVirtualTransitionEnd","eventTriggered","$transitionEndTarget","triggerEvents","calcBrowser","ua","getBrowser","deviceCached","calcDevice","_temp","platform","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","calcSupport","DocumentTouch","checkPassiveListener","checkGestures","getSupport","deleteProps","object","nextTick","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","noExtend","nextSource","keysArray","nextKey","desc","getOwnPropertyDescriptor","enumerable","setCSSProperty","varName","varValue","animateCSSModeScroll","startPosition","cssModeFrameID","isOutOfBound","currentPosition"],"sourceRoot":""}