{"version":3,"file":"js/chunk-vendors.js","mappings":"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","sources":["webpack://2023_04_lexus_electrified_sport_concept/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/a-callable.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/an-object.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/array-includes.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/array-set-length.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/array-slice.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/classof-raw.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/create-property-descriptor.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/define-built-in.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/define-global-property.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/descriptors.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/document-all.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/document-create-element.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/engine-is-bun.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/engine-is-ios.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/engine-is-node.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/engine-user-agent.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/engine-v8-version.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/enum-bug-keys.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/export.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/fails.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-apply.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-bind-context.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-bind-native.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-call.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-name.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-uncurry-this-clause.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/function-uncurry-this.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/get-built-in.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/get-method.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/global.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/has-own-property.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/hidden-keys.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/html.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/ie8-dom-define.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/indexed-object.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/inspect-source.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/internal-state.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-array.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-callable.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-forced.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-object.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-pure.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/is-symbol.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/length-of-array-like.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/make-built-in.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/math-trunc.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-define-property.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-keys-internal.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/own-keys.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/require-object-coercible.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/schedulers-fix.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/shared-key.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/shared-store.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/shared.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/task.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-absolute-index.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-indexed-object.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-length.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-object.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-primitive.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/to-property-key.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/try-to-string.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/uid.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/validate-arguments-length.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/internals/well-known-symbol.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/modules/es.array.push.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/modules/es.array.unshift.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/modules/web.clear-immediate.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/modules/web.immediate.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/core-js/modules/web.set-immediate.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/ssr-window/dist/ssr-window.esm.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/dom7/dist/dom7.modular.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/dom.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/utils.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/support.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/class.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateSize.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateSlides.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateAutoHeight.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateSlidesOffset.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateSlidesProgress.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateProgress.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateSlidesClasses.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateActiveIndex.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/updateClickedSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/update/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/getTranslate.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/setTranslate.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/minTranslate.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/maxTranslate.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/translateTo.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/translate/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/transition/setTransition.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/transition/transitionStart.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/transition/transitionEnd.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/transition/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideTo.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideToLoop.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideNext.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slidePrev.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideReset.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideToClosest.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/slideToClickedSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/slide/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/loop/loopCreate.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/loop/loopFix.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/loop/loopDestroy.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/loop/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/grab-cursor/setGrabCursor.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/grab-cursor/unsetGrabCursor.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/grab-cursor/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/appendSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/prependSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/addSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/removeSlide.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/removeAllSlides.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/manipulation/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/device.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onTouchStart.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onTouchMove.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onTouchEnd.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onResize.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onClick.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/onScroll.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/events/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/breakpoints/setBreakpoint.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/breakpoints/getBreakpoint.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/breakpoints/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/classes/addClasses.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/classes/removeClasses.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/classes/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/images/loadImage.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/images/preloadImages.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/images/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/check-overflow/index.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/defaults.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/core/core-class.js","webpack://2023_04_lexus_electrified_sport_concept/../src/modules/device/device.js","webpack://2023_04_lexus_electrified_sport_concept/../src/modules/support/support.js","webpack://2023_04_lexus_electrified_sport_concept/../src/utils/browser.js","webpack://2023_04_lexus_electrified_sport_concept/../src/modules/browser/browser.js","webpack://2023_04_lexus_electrified_sport_concept/../src/modules/resize/resize.js","webpack://2023_04_lexus_electrified_sport_concept/../src/modules/observer/observer.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/virtual/virtual.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/keyboard/keyboard.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/mousewheel/mousewheel.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/navigation/navigation.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/pagination/pagination.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/scrollbar/scrollbar.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/parallax/parallax.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/zoom/zoom.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/lazy/lazy.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/controller/controller.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/a11y/a11y.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/history/history.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/hash-navigation/hash-navigation.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/autoplay/autoplay.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/effect-fade/effect-fade.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/effect-cube/effect-cube.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/effect-flip/effect-flip.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/effect-coverflow/effect-coverflow.js","webpack://2023_04_lexus_electrified_sport_concept/../src/components/thumbs/thumbs.js","webpack://2023_04_lexus_electrified_sport_concept/../src/swiper.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/vue-awesome-swiper/dist/vue-awesome-swiper.js","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/webpack/universalModuleDefinition","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/webpack/bootstrap","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/node_modules/hammerjs/hammer.js","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/style.css","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/LightBox.vue?8673","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/LeftArrowIcon.vue?204b","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/LeftArrowIcon.vue","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/RightArrowIcon.vue?1129","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/RightArrowIcon.vue","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/CloseIcon.vue?3dbb","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/CloseIcon.vue","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/VideoIcon.vue?55aa","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/VideoIcon.vue","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/LightBox.vue","webpack://2023_04_lexus_electrified_sport_concept/Lightbox/src/components/LightBox.vue?72e6","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack://2023_04_lexus_electrified_sport_concept/./node_modules/vue/dist/vue.runtime.esm.js"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","/* global Bun -- Deno case */\nmodule.exports = typeof Bun == 'function' && Bun && typeof Bun.version == 'string';\n","var userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\n\nmodule.exports = typeof process != 'undefined' && classof(process) == 'process';\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar ENGINE_IS_BUN = require('../internals/engine-is-bun');\nvar USER_AGENT = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar Function = global.Function;\n// dirty IE9- and Bun 0.3.0- checks\nvar WRAP = /MSIE .\\./.test(USER_AGENT) || ENGINE_IS_BUN && (function () {\n var version = global.Bun.version.split('.');\n return version.length < 3 || version[0] == 0 && (version[1] < 3 || version[1] == 3 && version[2] == 0);\n})();\n\n// IE9- / Bun 0.3.0- setTimeout / setInterval / setImmediate additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\n// https://github.com/oven-sh/bun/issues/1633\nmodule.exports = function (scheduler, hasTimeArg) {\n var firstParamIndex = hasTimeArg ? 2 : 1;\n return WRAP ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > firstParamIndex;\n var fn = isCallable(handler) ? handler : Function(handler);\n var params = boundArgs ? arraySlice(arguments, firstParamIndex) : [];\n var callback = boundArgs ? function () {\n apply(fn, this, params);\n } : fn;\n return hasTimeArg ? scheduler(callback, timeout) : scheduler(callback);\n } : scheduler;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.29.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.29.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_RESULT || !properErrorOnNonWritableLength();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar clearImmediate = require('../internals/task').clear;\n\n// `clearImmediate` method\n// http://w3c.github.io/setImmediate/#si-clearImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.clearImmediate !== clearImmediate }, {\n clearImmediate: clearImmediate\n});\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.clear-immediate');\nrequire('../modules/web.set-immediate');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTask = require('../internals/task').set;\nvar schedulersFix = require('../internals/schedulers-fix');\n\n// https://github.com/oven-sh/bun/issues/1633\nvar setImmediate = global.setImmediate ? schedulersFix(setTask, false) : setTask;\n\n// `setImmediate` method\n// http://w3c.github.io/setImmediate/#si-setImmediate\n$({ global: true, bind: true, enumerable: true, forced: global.setImmediate !== setImmediate }, {\n setImmediate: setImmediate\n});\n","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\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 if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (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\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar 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: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\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 }\n\n // Set attrs\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 // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\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 // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\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 return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\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 // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\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 return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\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 if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\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 function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\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 return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\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 return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\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}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\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}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\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}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\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 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// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\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 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 return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\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}\nfunction insertAfter(selector) {\n const after = $(selector);\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}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\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 return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\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 return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\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 el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\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 let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\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 if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\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 if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\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 /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\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 if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\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\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\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 { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\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 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 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(' ');\nfunction eventShortcut(name, ...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]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","import {\n $,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\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 add,\n styles,\n} from 'dom7/dist/dom7.modular';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\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 add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nexport default $;\n","import { window } from 'ssr-window';\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\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;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\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 if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\nexport default Utils;\n","import { window, document } from 'ssr-window';\n\nconst Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch)),\n\n pointerEvents: !!window.PointerEvent && ('maxTouchPoints' in window.navigator) && window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nexport default Support;\n","import Utils from './utils';\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\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 (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\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] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\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 const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default SwiperClass;\n","import Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n","import { window } from 'ssr-window';\nimport Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, 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\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\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 if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\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\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\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 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 Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n","export default function (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, 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) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\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 }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n","export default function () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\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 }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\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 Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n","export default function () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\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 }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\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 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\n\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n","import Utils from '../../../utils/utils';\n\nexport default function (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n","export default function (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, 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 swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function () {\n return (-this.snapGrid[0]);\n}\n","export default function () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n","export default function (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\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;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\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 if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\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 if (runCallbacks) {\n swiper.emit('transitionEnd');\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}\n","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\n\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n","export default function (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}\n","export default function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n","export default function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\n\nexport default {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n","export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\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];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\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';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\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 if (!swiper.animating) {\n swiper.animating = true;\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 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n","export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\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\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 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 if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n","import $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.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\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\n\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n","import { document } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\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 $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n","export default function () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\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 if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n","export default function () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\n\nexport default {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n","import Support from '../../../utils/support';\n\nexport default function (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n","import Support from '../../../utils/support';\n\nexport default function () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\n\nexport default {\n setGrabCursor,\n unsetGrabCursor,\n};\n","import Support from '../../../utils/support';\n\nexport default function (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\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 if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n","import Support from '../../../utils/support';\n\nexport default function (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\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 newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n","import Support from '../../../utils/support';\n\nexport default function (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\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 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 if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","import Support from '../../../utils/support';\n\nexport default function (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\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 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 && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\n\nexport default {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n","import { window } from 'ssr-window';\nimport Support from './support';\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\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 ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nexport default Device;\n","import { window, document } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\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;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\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;\n\n // 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 if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document.activeElement\n && $(document.activeElement).is(data.formElements)\n && document.activeElement !== $targetEl[0]\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n","import { document } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\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 if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\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 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 if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\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 }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\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;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.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 data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\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 (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\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 return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\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 if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\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 newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\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 if (params.freeModeSticky) {\n // If freeModeSticky 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 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.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && 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 swiper.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 swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\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.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\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 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 // Find current slide size\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 if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n","export default function () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\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 }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n","export default function (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n","export default function () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n","import { document } from 'ssr-window';\nimport Device from '../../../utils/device';\nimport Support from '../../../utils/support';\n\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nexport default {\n attachEvents,\n detachEvents,\n};\n","import Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\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 Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\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 }\n}\n","import { window } from 'ssr-window';\n\nexport default function (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\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 = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\n\nexport default { setBreakpoint, getBreakpoint };\n","import Device from '../../../utils/device';\n\nexport default function () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n","export default function () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\n\nexport default { addClasses, removeClasses };\n","import { window } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\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 if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n","export default function () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\n\nexport default {\n loadImage,\n preloadImages,\n};\n","\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default { checkOverflow };\n","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\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\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // 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\n // Callbacks\n runCallbacksOnInit: true,\n};\n","/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nimport SwiperClass from '../../utils/class';\n\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\n\nimport defaults from './defaults';\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\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 // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\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 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 formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\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 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 for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\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 let translated;\n if (swiper.params.freeMode) {\n setTranslate();\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 if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.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 get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nexport default Swiper;\n","import Device from '../../utils/device';\n\nexport default {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n","import Support from '../../utils/support';\n\nexport default {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n","import { window } from 'ssr-window';\n\nconst Browser = (function Browser() {\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 return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nexport default Browser;\n","import Browser from '../../utils/browser';\n\nexport default {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n","import { window } from 'ssr-window';\nimport Utils from '../../utils/utils';\n\nexport default {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n","import { window } from 'ssr-window';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\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 swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\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\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Virtual = {\n update(force) {\n const swiper = this;\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n renderSlide,\n offset: previousOffset,\n } = swiper.virtual;\n swiper.updateActiveIndex();\n const activeIndex = swiper.activeIndex || 0;\n\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore;\n slidesBefore = slidesPerGroup + addSlidesAfter;\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\n Utils.extend(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 if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\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 swiper.updateProgress();\n return;\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 for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()),\n });\n onRendered();\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\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 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 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 renderSlide(slide, index) {\n const swiper = this;\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n const $slideEl = params.renderSlide\n ? $(params.renderSlide.call(swiper, slide, index))\n : $(`
${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 appendSlide(slides) {\n const swiper = this;\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 swiper.virtual.update(true);\n },\n prependSlide(slides) {\n const swiper = this;\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 newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\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 if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide(slidesIndexes) {\n const swiper = this;\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\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 if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\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 if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides() {\n const swiper = this;\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n },\n};\n\nexport default {\n name: 'virtual',\n params: {\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n addSlidesBefore: 0,\n addSlidesAfter: 0,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n virtual: {\n update: Virtual.update.bind(swiper),\n appendSlide: Virtual.appendSlide.bind(swiper),\n prependSlide: Virtual.prependSlide.bind(swiper),\n removeSlide: Virtual.removeSlide.bind(swiper),\n removeAllSlides: Virtual.removeAllSlides.bind(swiper),\n renderSlide: Virtual.renderSlide.bind(swiper),\n slides: swiper.params.virtual.slides,\n cache: {},\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n const overwriteParams = {\n watchSlidesProgress: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n },\n },\n};\n","import { window, document } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Keyboard = {\n handle(event) {\n const swiper = this;\n const { rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\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;\n // Directions locks\n if (!swiper.allowSlideNext && ((swiper.isHorizontal() && isArrowRight) || (swiper.isVertical() && isArrowDown) || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\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 = [\n [swiperOffset.left, swiperOffset.top],\n [swiperOffset.left + swiper.width, swiperOffset.top],\n [swiperOffset.left, swiperOffset.top + swiper.height],\n [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 if (\n point[0] >= 0 && point[0] <= windowWidth\n && point[1] >= 0 && point[1] <= windowHeight\n ) {\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\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();\n else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n swiper.emit('keyPress', kc);\n return undefined;\n },\n enable() {\n const swiper = this;\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable() {\n const swiper = this;\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n },\n};\n\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n keyboard: {\n enabled: false,\n enable: Keyboard.enable.bind(swiper),\n disable: Keyboard.disable.bind(swiper),\n handle: Keyboard.handle.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n },\n },\n};\n","import { window, document } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document.implementation\n && document.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\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 if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // 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) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\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 handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.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;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n 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\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // 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 if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\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 = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\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.freeModeSticky) {\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 momuntum 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(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\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\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\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 swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.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 swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\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 if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\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 if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\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 return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\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 if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\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 }\n // Types\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 if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\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 $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\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 }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${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 Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nexport default {\n name: 'pagination',\n params: {\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', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n","import { document } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nconst Scrollbar = {\n setTranslate() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\n const {\n dragSize, trackSize, $dragEl, $el,\n } = scrollbar;\n const params = swiper.params.scrollbar;\n\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\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 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 if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize() {\n const swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n\n const { scrollbar } = swiper;\n const { $dragEl, $el } = scrollbar;\n\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n const trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n\n const divider = swiper.size / swiper.virtualSize;\n const moveDivider = divider * (trackSize / swiper.size);\n let dragSize;\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 if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n Utils.extend(scrollbar, {\n trackSize,\n divider,\n moveDivider,\n dragSize,\n });\n scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n },\n getPointerPosition(e) {\n const swiper = this;\n if (swiper.isHorizontal()) {\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX);\n }\n return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY);\n },\n setDragPosition(e) {\n const swiper = this;\n const { scrollbar, rtlTranslate: rtl } = swiper;\n const {\n $el,\n dragSize,\n trackSize,\n dragStartPos,\n } = scrollbar;\n\n let positionRatio;\n positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top']\n - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio);\n\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n },\n onDragStart(e) {\n const swiper = this;\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl)\n ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n scrollbar.setDragPosition(e);\n\n clearTimeout(swiper.scrollbar.dragTimeout);\n\n $el.transition(0);\n if (params.hide) {\n $el.css('opacity', 1);\n }\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n swiper.emit('scrollbarDragStart', e);\n },\n onDragMove(e) {\n const swiper = this;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el, $dragEl } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd(e) {\n const swiper = this;\n\n const params = swiper.params.scrollbar;\n const { scrollbar, $wrapperEl } = swiper;\n const { $el } = scrollbar;\n\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.isTouched = false;\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n if (params.hide) {\n clearTimeout(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = Utils.nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n swiper.emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const {\n scrollbar, touchEventsTouch, touchEventsDesktop, params,\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false;\n const passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n if (!Support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.scrollbar.el) return;\n const { scrollbar, $el: $swiperEl } = swiper;\n const params = swiper.params.scrollbar;\n\n let $el = $(params.el);\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 if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Utils.extend(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0],\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.disableDraggable();\n },\n};\n\nexport default {\n name: 'scrollbar',\n params: {\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 create() {\n const swiper = this;\n Utils.extend(swiper, {\n scrollbar: {\n init: Scrollbar.init.bind(swiper),\n destroy: Scrollbar.destroy.bind(swiper),\n updateSize: Scrollbar.updateSize.bind(swiper),\n setTranslate: Scrollbar.setTranslate.bind(swiper),\n setTransition: Scrollbar.setTransition.bind(swiper),\n enableDraggable: Scrollbar.enableDraggable.bind(swiper),\n disableDraggable: Scrollbar.disableDraggable.bind(swiper),\n setDragPosition: Scrollbar.setDragPosition.bind(swiper),\n getPointerPosition: Scrollbar.getPointerPosition.bind(swiper),\n onDragStart: Scrollbar.onDragStart.bind(swiper),\n onDragMove: Scrollbar.onDragMove.bind(swiper),\n onDragEnd: Scrollbar.onDragEnd.bind(swiper),\n isTouched: false,\n timeout: null,\n dragTimeout: null,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n resize() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n observerUpdate() {\n const swiper = this;\n swiper.scrollbar.updateSize();\n },\n setTranslate() {\n const swiper = this;\n swiper.scrollbar.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n swiper.scrollbar.setTransition(duration);\n },\n destroy() {\n const swiper = this;\n swiper.scrollbar.destroy();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Parallax = {\n setTransform(el, progress) {\n const swiper = this;\n const { rtl } = swiper;\n\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n\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 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 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 setTranslate() {\n const swiper = this;\n const {\n $el, slides, progress, 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]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, progress);\n });\n slides.each((slideIndex, slideEl) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1));\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]')\n .each((index, el) => {\n swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition(duration = this.params.speed) {\n const swiper = this;\n const { $el } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]')\n .each((index, 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\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n parallax: {\n setTransform: Parallax.setTransform.bind(swiper),\n setTranslate: Parallax.setTranslate.bind(swiper),\n setTransition: Parallax.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate() {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\nimport Device from '../../utils/device';\nimport Support from '../../utils/support';\n\nconst Zoom = {\n // Calc Scale From Multi-touches\n 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 },\n // Events\n onGestureStart(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n if (!Support.gestures) {\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\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('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n swiper.zoom.isScaling = true;\n },\n onGestureChange(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\n return;\n }\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (Support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale;\n }\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = (gesture.maxRatio - 1) + (((zoom.scale - gesture.maxRatio) + 1) ** 0.5);\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = (params.minRatio + 1) - (((params.minRatio - zoom.scale) + 1) ** 0.5);\n }\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n },\n onGestureEnd(e) {\n const swiper = this;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (!Support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) {\n return;\n }\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\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 zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image } = zoom;\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 onTouchMove(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = 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 = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = Utils.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 if (swiper.rtl) {\n image.startX = -image.startX;\n image.startY = -image.startY;\n }\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n\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\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 && !zoom.isScaling) {\n if (\n swiper.isHorizontal()\n && (\n (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x)\n || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)\n )\n ) {\n image.isTouched = false;\n return;\n } if (\n !swiper.isHorizontal()\n && (\n (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y)\n || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)\n )\n ) {\n image.isTouched = false;\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n\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 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 if (image.currentY > image.maxY) {\n image.currentY = (image.maxY - 1) + (((image.currentY - image.maxY) + 1) ** 0.8);\n }\n\n // Velocity\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\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTouchEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture, image, velocity } = zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\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;\n\n // Fix duration\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\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n\n // Define if we need image drag\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\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n },\n onTransitionEnd() {\n const swiper = this;\n const zoom = swiper.zoom;\n const { gesture } = zoom;\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n zoom.currentScale = 1;\n\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle(e) {\n const swiper = this;\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in(e) {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture, image } = 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 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n\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 zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left;\n offsetY = gesture.$slideEl.offset().top;\n diffX = (offsetX + (slideWidth / 2)) - touchX;\n diffY = (offsetY + (slideHeight / 2)) - touchY;\n\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n\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\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\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 out() {\n const swiper = this;\n\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n const { gesture } = 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 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n zoom.scale = 1;\n zoom.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 },\n // Attach/Detach Events\n enable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable() {\n const swiper = this;\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n\n swiper.zoom.enabled = false;\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false;\n const activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true;\n\n const slideSelector = `.${swiper.params.slideClass}`;\n\n // Scale image\n if (Support.gestures) {\n swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener);\n swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n }\n\n // Move image\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, zoom.onTouchMove, activeListenerWithCapture);\n },\n};\n\nexport default {\n name: 'zoom',\n params: {\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 create() {\n const swiper = this;\n const zoom = {\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3,\n },\n 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 velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined,\n },\n };\n\n ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach((methodName) => {\n zoom[methodName] = Zoom[methodName].bind(swiper);\n });\n Utils.extend(swiper, {\n zoom,\n });\n\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n const slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy() {\n const swiper = this;\n swiper.zoom.disable();\n },\n touchStart(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd(e) {\n const swiper = this;\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap(e) {\n const swiper = this;\n if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Lazy = {\n loadInSlide(index, loadInDuplicate = true) {\n const swiper = this;\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\n const $slideEl = isVirtual\n ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`)\n : swiper.slides.eq(index);\n\n let $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images = $images.add($slideEl[0]);\n }\n if ($images.length === 0) return;\n\n $images.each((imageIndex, imageEl) => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n\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\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 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 if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n if ($pictureEl.length) {\n $pictureEl.children('source').each((sourceIndex, 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 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 if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load() {\n const swiper = this;\n const {\n $wrapperEl, params: swiperParams, slides, activeIndex,\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n\n let slidesPerView = swiperParams.slidesPerView;\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 return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n return $(slideEl).index();\n }\n\n if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((elIndex, slideEl) => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.loadInSlide(activeIndex);\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);\n // Next Slides\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n // Prev Slides\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n};\n\nexport default {\n name: 'lazy',\n params: {\n lazy: {\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n lazy: {\n initialImageLoaded: false,\n load: Lazy.load.bind(swiper),\n loadInSlide: Lazy.loadInSlide.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n swiper.lazy.load();\n }\n },\n scroll() {\n const swiper = this;\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n resize() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n scrollbarDragMove() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart() {\n const swiper = this;\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.params.lazy.enabled && swiper.params.cssMode) {\n swiper.lazy.load();\n }\n },\n },\n};\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport Swiper from '../core/core-class';\nimport Utils from '../../utils/utils';\n\nconst Controller = {\n LinearSpline: 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 while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }());\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // 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 let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1];\n };\n return this;\n },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction(c) {\n const swiper = this;\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop\n ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid)\n : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate(setTranslate, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\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 if (swiper.params.controller.by === 'slide') {\n swiper.controller.getInterpolateFunction(c);\n // 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 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 c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\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 setTransition(duration, byController) {\n const swiper = this;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n Utils.nextTick(() => {\n c.updateAutoHeight();\n });\n }\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n c.transitionEnd();\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};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide', // or 'container'\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n controller: {\n control: swiper.params.controller.control,\n getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper),\n setTranslate: Controller.setTranslate.bind(swiper),\n setTransition: Controller.setTransition.bind(swiper),\n },\n });\n },\n on: {\n update() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n resize() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n },\n setTranslate(translate, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst a11y = {\n makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterKey(e) {\n const swiper = this;\n const params = swiper.params.a11y;\n if (e.keyCode !== 13) return;\n const $targetEl = $(e.target);\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.notify(params.nextSlideMessage);\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 if (swiper.isBeginning) {\n swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n if (swiper.pagination && $targetEl.is(`.${swiper.params.pagination.bulletClass}`)) {\n $targetEl[0].click();\n }\n },\n notify(message) {\n const swiper = this;\n const notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation() {\n const swiper = this;\n\n if (swiper.params.loop || !swiper.navigation) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination() {\n const swiper = this;\n const params = swiper.params.a11y;\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each((bulletIndex, bulletEl) => {\n const $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n });\n }\n },\n init() {\n const swiper = this;\n\n swiper.$el.append(swiper.a11y.liveRegion);\n\n // Navigation\n const params = swiper.params.a11y;\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n swiper.a11y.makeElFocusable($nextEl);\n swiper.a11y.addElRole($nextEl, 'button');\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n $nextEl.on('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n swiper.a11y.makeElFocusable($prevEl);\n swiper.a11y.addElRole($prevEl, 'button');\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n $prevEl.on('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n\n let $nextEl;\n let $prevEl;\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n if ($nextEl) {\n $nextEl.off('keydown', swiper.a11y.onEnterKey);\n }\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterKey);\n }\n\n // Pagination\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', `.${swiper.params.pagination.bulletClass}`, swiper.a11y.onEnterKey);\n }\n },\n};\nexport default {\n name: 'a11y',\n params: {\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 },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n a11y: {\n liveRegion: $(``),\n },\n });\n Object.keys(a11y).forEach((methodName) => {\n swiper.a11y[methodName] = a11y[methodName].bind(swiper);\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n },\n },\n};\n","import { window } from 'ssr-window';\nimport Utils from '../../utils/utils';\n\nconst History = {\n init() {\n const swiper = this;\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n const history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues();\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy() {\n const swiper = this;\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState() {\n const swiper = this;\n swiper.history.paths = History.getPathValues();\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n getPathValues() {\n const pathArray = window.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 { key, value };\n },\n setHistory(key, index) {\n const swiper = this;\n if (!swiper.history.initialized || !swiper.params.history.enabled) return;\n const slide = swiper.slides.eq(index);\n let value = History.slugify(slide.attr('data-history'));\n if (!window.location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({ value }, null, value);\n } else {\n window.history.pushState({ value }, null, value);\n }\n },\n slugify(text) {\n return text.toString()\n .replace(/\\s+/g, '-')\n .replace(/[^\\w-]+/g, '')\n .replace(/--+/g, '-')\n .replace(/^-+/, '')\n .replace(/-+$/, '');\n },\n scrollToSlide(speed, value, runCallbacks) {\n const swiper = this;\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 = History.slugify(slide.attr('data-history'));\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\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n replaceState: false,\n key: 'slides',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n history: {\n init: History.init.bind(swiper),\n setHistory: History.setHistory.bind(swiper),\n setHistoryPopState: History.setHistoryPopState.bind(swiper),\n scrollToSlide: History.scrollToSlide.bind(swiper),\n destroy: History.destroy.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n },\n};\n","import { window, document } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst HashNavigation = {\n onHashCange() {\n const swiper = this;\n swiper.emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\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 setHash() {\n const swiper = this;\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\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 swiper.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 swiper.emit('hashSet');\n }\n },\n init() {\n const swiper = this;\n if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) return;\n swiper.hashNavigation.initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\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 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 if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashCange);\n }\n },\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n hashNavigation: {\n initialized: false,\n init: HashNavigation.init.bind(swiper),\n destroy: HashNavigation.destroy.bind(swiper),\n setHash: HashNavigation.setHash.bind(swiper),\n onHashCange: HashNavigation.onHashCange.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n transitionEnd() {\n const swiper = this;\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange() {\n const swiper = this;\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n },\n },\n};\n","/* eslint no-underscore-dangle: \"off\" */\nimport Utils from '../../utils/utils';\n\nconst Autoplay = {\n run() {\n const swiper = this;\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = Utils.nextTick(() => {\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();\n }, delay);\n },\n start() {\n const swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop() {\n const swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause(speed) {\n const swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n};\n\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n autoplay: {\n running: false,\n paused: false,\n run: Autoplay.run.bind(swiper),\n start: Autoplay.start.bind(swiper),\n stop: Autoplay.stop.bind(swiper),\n pause: Autoplay.pause.bind(swiper),\n onVisibilityChange() {\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart(speed, internal) {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove() {\n const swiper = this;\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd() {\n const swiper = this;\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy() {\n const swiper = this;\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n },\n },\n};\n","import Utils from '../../utils/utils';\n\nconst Fade = {\n setTranslate() {\n const swiper = this;\n const { slides } = swiper;\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 if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n $slideEl\n .css({\n opacity: slideOpacity,\n })\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, $wrapperEl } = swiper;\n slides.transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n slides.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n fadeEffect: {\n setTranslate: Fade.setTranslate.bind(swiper),\n setTransition: Fade.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}fade`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\nimport Browser from '../../utils/browser';\n\nconst Cube = {\n setTranslate() {\n const swiper = this;\n const {\n $el, $wrapperEl, slides, width: swiperWidth, height: swiperHeight, rtlTranslate: rtl, size: swiperSize,\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 if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\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 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 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 if (progress <= 1 && progress > -1) {\n wrapperRotate = (slideIndex * 90) + (progress * 90);\n if (rtl) wrapperRotate = (-slideIndex * 90) - (progress * 90);\n }\n $slideEl.transform(transform);\n if (params.slideShadows) {\n // Set shadows\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 if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\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 $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-moz-transform-origin': `50% 50% -${swiperSize / 2}px`,\n '-ms-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 - (\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2)\n + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2)\n );\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 const zFactor = (Browser.isSafari || Browser.isWebView) ? (-swiperSize / 2) : 0;\n $wrapperEl\n .transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n },\n setTransition(duration) {\n const swiper = this;\n const { $el, slides } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n },\n};\n\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n cubeEffect: {\n setTranslate: Cube.setTranslate.bind(swiper),\n setTransition: Cube.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}cube`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Flip = {\n setTranslate() {\n const swiper = this;\n const { slides, rtlTranslate: rtl } = swiper;\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = -offset;\n let ty = 0;\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 (swiper.params.flipEffect.slideShadows) {\n // Set shadows\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 if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\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 $slideEl\n .transform(`translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`);\n }\n },\n setTransition(duration) {\n const swiper = this;\n const { slides, activeIndex, $wrapperEl } = swiper;\n slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n // eslint-disable-next-line\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n },\n};\n\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n flipEffect: {\n setTranslate: Flip.setTranslate.bind(swiper),\n setTransition: Flip.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}flip`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n const overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true,\n };\n Utils.extend(swiper.params, overwriteParams);\n Utils.extend(swiper.originalParams, overwriteParams);\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Support from '../../utils/support';\nimport Utils from '../../utils/utils';\n\nconst Coverflow = {\n setTranslate() {\n const swiper = this;\n const {\n width: swiperWidth, height: swiperHeight, slides, $wrapperEl, 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;\n // Each slide offset from center\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 offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier;\n\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = ((parseFloat(params.stretch) / 100) * slideSize);\n }\n let translateY = isHorizontal ? 0 : stretch * (offsetMultiplier);\n let translateX = isHorizontal ? stretch * (offsetMultiplier) : 0;\n\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\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\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n\n $slideEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\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 if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = $(`
`);\n $slideEl.append($shadowBeforeEl);\n }\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(`
`);\n $slideEl.append($shadowAfterEl);\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 // Set correct perspective for IE10\n if (Support.pointerEvents || Support.prefixedPointerEvents) {\n const ws = $wrapperEl[0].style;\n ws.perspectiveOrigin = `${center}px 50%`;\n }\n },\n setTransition(duration) {\n const swiper = this;\n swiper.slides\n .transition(duration)\n .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left')\n .transition(duration);\n },\n};\n\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n coverflowEffect: {\n setTranslate: Coverflow.setTranslate.bind(swiper),\n setTransition: Coverflow.setTransition.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n\n swiper.classNames.push(`${swiper.params.containerModifierClass}coverflow`);\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate() {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition(duration) {\n const swiper = this;\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n },\n },\n};\n","import Utils from '../../utils/utils';\nimport $ from '../../utils/dom';\n\nconst Thumbs = {\n init() {\n const swiper = this;\n const { thumbs: thumbsParams } = swiper.params;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Utils.extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n Utils.extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n });\n } else if (Utils.isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false,\n }));\n swiper.thumbs.swiperCreated = true;\n }\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n },\n onThumbClick() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) 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 if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\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;\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\n else slideToIndex = prevIndex;\n }\n swiper.slideTo(slideToIndex);\n },\n update(initial) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto'\n ? thumbsSwiper.slidesPerViewDynamic()\n : thumbsSwiper.params.slidesPerView;\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix();\n // eslint-disable-next-line\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n }\n // Find actual thumbs index to slide to\n const prevThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n const nextThumbsIndex = thumbsSwiper.slides\n .eq(currentThumbsIndex)\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0)\n .index();\n if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;\n else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;\n else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;\n else newThumbsIndex = prevThumbsIndex;\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\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) {\n newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n\n // Activate thumbs\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\n thumbsSwiper.slides.removeClass(thumbActiveClass);\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};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n thumbs: {\n swiper: null,\n init: Thumbs.init.bind(swiper),\n update: Thumbs.update.bind(swiper),\n onThumbClick: Thumbs.onThumbClick.bind(swiper),\n },\n });\n },\n on: {\n beforeInit() {\n const swiper = this;\n const { thumbs } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate() {\n const swiper = this;\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition(duration) {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy() {\n const swiper = this;\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n },\n },\n};\n","// Swiper Class\nimport Swiper from './components/core/core-class';\n\n// Core Modules\nimport Device from './modules/device/device';\nimport Support from './modules/support/support';\nimport Browser from './modules/browser/browser';\nimport Resize from './modules/resize/resize';\nimport Observer from './modules/observer/observer';\n\n//IMPORT_COMPONENTS\n\nconst components = [\n Device,\n Support,\n Browser,\n Resize,\n Observer,\n //INSTALL_COMPONENTS\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\n//EXPORT\n","\n/*!\n * vue-awesome-swiper v4.1.1\n * Copyright (c) Surmon. All rights reserved.\n * Released under the MIT License.\n * Surmon \n */\n\n(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?f(exports,require('swiper'),require('vue')):typeof define==='function'&&define.amd?define(['exports','swiper','vue'],f):(g=g||self,f(g.VueAwesomeSwiper={},g.Swiper,g.Vue));}(this,(function(exports, SwiperClass, Vue){'use strict';SwiperClass=SwiperClass&&Object.prototype.hasOwnProperty.call(SwiperClass,'default')?SwiperClass['default']:SwiperClass;Vue=Vue&&Object.prototype.hasOwnProperty.call(Vue,'default')?Vue['default']:Vue;/**\r\n * @file vue-awesome-swiper\r\n * @module constants\r\n * @author Surmon \r\n */\r\nvar CoreNames;\r\n(function (CoreNames) {\r\n CoreNames[\"SwiperComponent\"] = \"Swiper\";\r\n CoreNames[\"SwiperSlideComponent\"] = \"SwiperSlide\";\r\n CoreNames[\"SwiperDirective\"] = \"swiper\";\r\n CoreNames[\"SwiperInstance\"] = \"$swiper\";\r\n})(CoreNames || (CoreNames = {}));\r\nvar DEFAULT_CLASSES = Object.freeze({\r\n containerClass: 'swiper-container',\r\n wrapperClass: 'swiper-wrapper',\r\n slideClass: 'swiper-slide'\r\n});\r\nvar ComponentEvents;\r\n(function (ComponentEvents) {\r\n ComponentEvents[\"Ready\"] = \"ready\";\r\n ComponentEvents[\"ClickSlide\"] = \"clickSlide\";\r\n})(ComponentEvents || (ComponentEvents = {}));\r\nvar ComponentPropNames;\r\n(function (ComponentPropNames) {\r\n ComponentPropNames[\"AutoUpdate\"] = \"autoUpdate\";\r\n ComponentPropNames[\"AutoDestroy\"] = \"autoDestroy\";\r\n ComponentPropNames[\"DeleteInstanceOnDestroy\"] = \"deleteInstanceOnDestroy\";\r\n ComponentPropNames[\"CleanupStylesOnDestroy\"] = \"cleanupStylesOnDestroy\";\r\n})(ComponentPropNames || (ComponentPropNames = {}));\r\n// https://swiperjs.com/api/#events\r\nvar SWIPER_EVENTS = [\r\n 'init',\r\n 'beforeDestroy',\r\n 'slideChange',\r\n 'slideChangeTransitionStart',\r\n 'slideChangeTransitionEnd',\r\n 'slideNextTransitionStart',\r\n 'slideNextTransitionEnd',\r\n 'slidePrevTransitionStart',\r\n 'slidePrevTransitionEnd',\r\n 'transitionStart',\r\n 'transitionEnd',\r\n 'touchStart',\r\n 'touchMove',\r\n 'touchMoveOpposite',\r\n 'sliderMove',\r\n 'touchEnd',\r\n 'click',\r\n 'tap',\r\n 'doubleTap',\r\n 'imagesReady',\r\n 'progress',\r\n 'reachBeginning',\r\n 'reachEnd',\r\n 'fromEdge',\r\n 'setTranslate',\r\n 'setTransition',\r\n 'resize',\r\n 'observerUpdate',\r\n 'beforeLoopFix',\r\n 'loopFix'\r\n];/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module utils\r\n * @author Surmon \r\n */\r\nvar kebabcase = function (string) {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module event\r\n * @author Surmon \r\n */\r\nvar handleClickSlideEvent = function (swiper, event, emit) {\r\n var _a, _b, _c;\r\n if (swiper && !(swiper.destroyed)) {\r\n var eventPath = ((_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)) || event.path;\r\n if ((event === null || event === void 0 ? void 0 : event.target) && eventPath) {\r\n var slides_1 = Array.from(swiper.slides);\r\n var paths = Array.from(eventPath);\r\n // Click slide || slide[children]\r\n if (slides_1.includes(event.target) || paths.some(function (item) { return slides_1.includes(item); })) {\r\n var clickedIndex = swiper.clickedIndex;\r\n var reallyIndex = Number((_c = (_b = swiper.clickedSlide) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.swiperSlideIndex);\r\n var reallyIndexValue = Number.isInteger(reallyIndex) ? reallyIndex : null;\r\n emit(ComponentEvents.ClickSlide, clickedIndex, reallyIndexValue);\r\n emit(kebabcase(ComponentEvents.ClickSlide), clickedIndex, reallyIndexValue);\r\n }\r\n }\r\n }\r\n};\r\nvar bindSwiperEvents = function (swiper, emit) {\r\n SWIPER_EVENTS.forEach(function (eventName) {\r\n swiper.on(eventName, function () {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments$1[_i];\r\n }\r\n emit.apply(void 0, __spreadArrays([eventName], args));\r\n var kebabcaseName = kebabcase(eventName);\r\n if (kebabcaseName !== eventName) {\r\n emit.apply(void 0, __spreadArrays([kebabcaseName], args));\r\n }\r\n });\r\n });\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module directive\r\n * @author Surmon \r\n */\r\nvar INSTANCE_NAME_KEY = 'instanceName';\r\nfunction getDirective(SwiperClass, globalOptions) {\r\n var getStandardisedOptionByAttrs = function (vnode, key) {\r\n var _a, _b, _c, _d;\r\n var value = (_b = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[key];\r\n return value !== undefined\r\n ? value\r\n : (_d = (_c = vnode.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d[kebabcase(key)];\r\n };\r\n // Get swiper instace name in directive\r\n var getSwiperInstanceName = function (element, binding, vnode) {\r\n return (binding.arg ||\r\n getStandardisedOptionByAttrs(vnode, INSTANCE_NAME_KEY) ||\r\n element.id ||\r\n CoreNames.SwiperInstance);\r\n };\r\n var getSwiperInstance = function (element, binding, vnode) {\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n return vnode.context[instanceName] || null;\r\n };\r\n var getSwipeOptions = function (binding) {\r\n return binding.value || globalOptions;\r\n };\r\n var getBooleanValueByInput = function (input) {\r\n return [true, undefined, null, ''].includes(input);\r\n };\r\n // Emit event in Vue directive\r\n var getEventEmiter = function (vnode) {\r\n var _a, _b;\r\n var handlers = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on) || ((_b = vnode.componentOptions) === null || _b === void 0 ? void 0 : _b.listeners);\r\n return function (name) {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments$1[_i];\r\n }\r\n var _a;\r\n var handle = (_a = handlers) === null || _a === void 0 ? void 0 : _a[name];\r\n if (handle) {\r\n handle.fns.apply(handle, args);\r\n }\r\n };\r\n };\r\n return {\r\n // Init\r\n bind: function (element, binding, vnode) {\r\n // auto class name\r\n if (element.className.indexOf(DEFAULT_CLASSES.containerClass) === -1) {\r\n element.className += ((element.className ? ' ' : '') + DEFAULT_CLASSES.containerClass);\r\n }\r\n // bind click event\r\n element.addEventListener('click', function (event) {\r\n var emitEvent = getEventEmiter(vnode);\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n handleClickSlideEvent(swiper, event, emitEvent);\r\n });\r\n },\r\n // DOM inserted\r\n inserted: function (element, binding, vnode) {\r\n var context = vnode.context;\r\n var swiperOptions = getSwipeOptions(binding);\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n var emitEvent = getEventEmiter(vnode);\r\n var vueContext = context;\r\n var swiper = vueContext === null || vueContext === void 0 ? void 0 : vueContext[instanceName];\r\n // Swiper will destroy but not delete instance, when used \r\n if (!swiper || swiper.destroyed) {\r\n swiper = new SwiperClass(element, swiperOptions);\r\n vueContext[instanceName] = swiper;\r\n bindSwiperEvents(swiper, emitEvent);\r\n emitEvent(ComponentEvents.Ready, swiper);\r\n // MARK: Reinstance when the nexttick with \r\n // Vue.nextTick(instancing) | setTimeout(instancing)\r\n }\r\n },\r\n // On options changed or DOM updated\r\n componentUpdated: function (element, binding, vnode) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n var autoUpdate = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoUpdate);\r\n if (getBooleanValueByInput(autoUpdate)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper) {\r\n var swiperOptions = getSwipeOptions(binding);\r\n var isLoop = swiperOptions.loop;\r\n if (isLoop) {\r\n (_b = (_a = swiper) === null || _a === void 0 ? void 0 : _a.loopDestroy) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n (_c = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _c === void 0 ? void 0 : _c.call(swiper);\r\n (_e = (_d = swiper.navigation) === null || _d === void 0 ? void 0 : _d.update) === null || _e === void 0 ? void 0 : _e.call(_d);\r\n (_g = (_f = swiper.pagination) === null || _f === void 0 ? void 0 : _f.render) === null || _g === void 0 ? void 0 : _g.call(_f);\r\n (_j = (_h = swiper.pagination) === null || _h === void 0 ? void 0 : _h.update) === null || _j === void 0 ? void 0 : _j.call(_h);\r\n if (isLoop) {\r\n (_l = (_k = swiper) === null || _k === void 0 ? void 0 : _k.loopCreate) === null || _l === void 0 ? void 0 : _l.call(_k);\r\n (_m = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _m === void 0 ? void 0 : _m.call(swiper);\r\n }\r\n }\r\n }\r\n },\r\n // Destroy this directive\r\n unbind: function (element, binding, vnode) {\r\n var _a;\r\n var autoDestroy = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoDestroy);\r\n if (getBooleanValueByInput(autoDestroy)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper && swiper.initialized) {\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.destroy) === null || _a === void 0 ? void 0 : _a.call(swiper, getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.DeleteInstanceOnDestroy)), getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.CleanupStylesOnDestroy)));\r\n }\r\n }\r\n }\r\n };\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperComponent\r\n * @author Surmon \r\n */\r\nvar SlotNames;\r\n(function (SlotNames) {\r\n SlotNames[\"ParallaxBg\"] = \"parallax-bg\";\r\n SlotNames[\"Pagination\"] = \"pagination\";\r\n SlotNames[\"Scrollbar\"] = \"scrollbar\";\r\n SlotNames[\"PrevButton\"] = \"button-prev\";\r\n SlotNames[\"NextButton\"] = \"button-next\";\r\n})(SlotNames || (SlotNames = {}));\r\nfunction getSwiperComponent(SwiperClass) {\r\n var _a;\r\n return Vue.extend({\r\n name: CoreNames.SwiperComponent,\r\n props: (_a = {\r\n defaultOptions: {\r\n type: Object,\r\n required: false,\r\n default: function () { return ({}); }\r\n },\r\n // eslint-disable-next-line vue/require-default-prop\r\n options: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n _a[ComponentPropNames.AutoUpdate] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/550/files\r\n _a[ComponentPropNames.AutoDestroy] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/388\r\n _a[ComponentPropNames.DeleteInstanceOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a[ComponentPropNames.CleanupStylesOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a),\r\n data: function () {\r\n var _a;\r\n return _a = {},\r\n _a[CoreNames.SwiperInstance] = null,\r\n _a;\r\n },\r\n computed: {\r\n swiperInstance: {\r\n cache: false,\r\n set: function (swiper) {\r\n this[CoreNames.SwiperInstance] = swiper;\r\n },\r\n get: function () {\r\n return this[CoreNames.SwiperInstance];\r\n }\r\n },\r\n swiperOptions: function () {\r\n return this.options || this.defaultOptions;\r\n },\r\n wrapperClass: function () {\r\n return this.swiperOptions.wrapperClass || DEFAULT_CLASSES.wrapperClass;\r\n }\r\n },\r\n methods: {\r\n // Feature: click event\r\n handleSwiperClick: function (event) {\r\n handleClickSlideEvent(this.swiperInstance, event, this.$emit.bind(this));\r\n },\r\n autoReLoopSwiper: function () {\r\n var _a, _b;\r\n if (this.swiperInstance && this.swiperOptions.loop) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/593\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/544\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/545/files\r\n var swiper = this.swiperInstance;\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.loopDestroy) === null || _a === void 0 ? void 0 : _a.call(swiper);\r\n (_b = swiper === null || swiper === void 0 ? void 0 : swiper.loopCreate) === null || _b === void 0 ? void 0 : _b.call(swiper);\r\n }\r\n },\r\n updateSwiper: function () {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this[ComponentPropNames.AutoUpdate] && this.swiperInstance) {\r\n this.autoReLoopSwiper();\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.swiperInstance.navigation) === null || _c === void 0 ? void 0 : _c.update) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n (_f = (_e = this.swiperInstance.pagination) === null || _e === void 0 ? void 0 : _e.render) === null || _f === void 0 ? void 0 : _f.call(_e);\r\n (_h = (_g = this.swiperInstance.pagination) === null || _g === void 0 ? void 0 : _g.update) === null || _h === void 0 ? void 0 : _h.call(_g);\r\n }\r\n },\r\n destroySwiper: function () {\r\n var _a, _b;\r\n if (this[ComponentPropNames.AutoDestroy] && this.swiperInstance) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/341\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/340\r\n if (this.swiperInstance.initialized) {\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a, this[ComponentPropNames.DeleteInstanceOnDestroy], this[ComponentPropNames.CleanupStylesOnDestroy]);\r\n }\r\n }\r\n },\r\n initSwiper: function () {\r\n this.swiperInstance = new SwiperClass(this.$el, this.swiperOptions);\r\n bindSwiperEvents(this.swiperInstance, this.$emit.bind(this));\r\n this.$emit(ComponentEvents.Ready, this.swiperInstance);\r\n }\r\n },\r\n mounted: function () {\r\n if (!this.swiperInstance) {\r\n this.initSwiper();\r\n }\r\n },\r\n // Update swiper when the parent component activated with `keep-alive`.\r\n activated: function () {\r\n this.updateSwiper();\r\n },\r\n updated: function () {\r\n this.updateSwiper();\r\n },\r\n beforeDestroy: function () {\r\n // https://github.com/surmon-china/vue-awesome-swiper/commit/2924a9d4d3d1cf51c0d46076410b1f804b2b8a43#diff-7f4e0261ac562c0f354cb91a1ca8864f\r\n this.$nextTick(this.destroySwiper);\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n staticClass: DEFAULT_CLASSES.containerClass,\r\n on: {\r\n click: this.handleSwiperClick\r\n }\r\n }, [\r\n this.$slots[SlotNames.ParallaxBg],\r\n createElement('div', {\r\n class: this.wrapperClass\r\n }, this.$slots.default),\r\n this.$slots[SlotNames.Pagination],\r\n this.$slots[SlotNames.PrevButton],\r\n this.$slots[SlotNames.NextButton],\r\n this.$slots[SlotNames.Scrollbar]\r\n ]);\r\n }\r\n });\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperSlideComponent\r\n * @author Surmon \r\n */\r\nvar SwiperSlideComponent = Vue.extend({\r\n name: CoreNames.SwiperSlideComponent,\r\n computed: {\r\n slideClass: function () {\r\n var _a, _b;\r\n return ((_b = (_a = this.$parent) === null || _a === void 0 ? void 0 : _a.swiperOptions) === null || _b === void 0 ? void 0 : _b.slideClass) || DEFAULT_CLASSES.slideClass;\r\n }\r\n },\r\n methods: {\r\n update: function () {\r\n var _a;\r\n var parent = this.$parent;\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/632\r\n if (parent[ComponentPropNames.AutoUpdate]) {\r\n (_a = parent === null || parent === void 0 ? void 0 : parent.swiperInstance) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.update();\r\n },\r\n updated: function () {\r\n this.update();\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n class: this.slideClass\r\n }, this.$slots.default);\r\n }\r\n});/**\r\n * @file vue-awesome-swiper\r\n * @module exporter\r\n * @author Surmon \r\n */\r\nvar getInstaller = function (SwiperClass) {\r\n var install = function (Vue, globalOptions) {\r\n if (install.installed)\r\n { return; }\r\n var SwiperComponent = getSwiperComponent(SwiperClass);\r\n if (globalOptions) {\r\n SwiperComponent.options.props.defaultOptions.default = function () { return globalOptions; };\r\n }\r\n Vue.component(CoreNames.SwiperComponent, SwiperComponent);\r\n Vue.component(CoreNames.SwiperSlideComponent, SwiperSlideComponent);\r\n Vue.directive(CoreNames.SwiperDirective, getDirective(SwiperClass, globalOptions));\r\n install.installed = true;\r\n };\r\n return install;\r\n};\r\nfunction exporter(SwiperClass) {\r\n var _a;\r\n return _a = {\r\n version: '4.1.1',\r\n install: getInstaller(SwiperClass),\r\n directive: getDirective(SwiperClass)\r\n },\r\n _a[CoreNames.SwiperComponent] = getSwiperComponent(SwiperClass),\r\n _a[CoreNames.SwiperSlideComponent] = SwiperSlideComponent,\r\n _a;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module default-export\r\n * @author Surmon \r\n */\r\nvar VueAwesomeSwiper = exporter(SwiperClass);\r\nvar version = VueAwesomeSwiper.version;\r\nvar install = VueAwesomeSwiper.install;\r\nvar directive = VueAwesomeSwiper.directive;\r\nvar Swiper = VueAwesomeSwiper.Swiper;\r\nvar SwiperSlide = VueAwesomeSwiper.SwiperSlide;exports.Swiper=Swiper;exports.SwiperSlide=SwiperSlide;exports.default=VueAwesomeSwiper;exports.directive=directive;exports.install=install;exports.version=version;Object.defineProperty(exports,'__esModule',{value:true});})));","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Lightbox\"] = factory();\n\telse\n\t\troot[\"Lightbox\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!./style.css?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!./style.css?vue&type=style&index=0&lang=css&\"","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n {\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.closeLightBox($event)\n }\n }\n },\n [\n _c(\n \"transition\",\n {\n attrs: { mode: \"out-in\", name: \"vue-lb-content-transition\" },\n on: {\n afterEnter: _vm.enableImageTransition,\n beforeLeave: _vm.disableImageTransition\n }\n },\n [\n _vm.media\n ? _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.lightBoxOn,\n expression: \"lightBoxOn\"\n }\n ],\n ref: \"container\",\n staticClass: \"vue-lb-container\"\n },\n [\n _c(\"div\", { staticClass: \"vue-lb-content\" }, [\n _c(\"div\", { staticClass: \"vue-lb-header\" }, [\n _c(\"span\"),\n _vm._v(\" \"),\n _vm.closable\n ? _c(\n \"button\",\n {\n staticClass: \"vue-lb-button-close\",\n attrs: { type: \"button\", title: _vm.closeText }\n },\n [_vm._t(\"close\", [_c(\"CloseIcon\")])],\n 2\n )\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"vue-lb-figure\",\n on: {\n click: function($event) {\n $event.stopPropagation()\n }\n }\n },\n [\n _c(\n \"transition\",\n {\n attrs: {\n mode: \"out-in\",\n name: _vm.modalImageTransitionName\n }\n },\n [\n _vm.media[_vm.select].type !== \"video\"\n ? _c(\"img\", {\n directives: [\n {\n name: \"lazy\",\n rawName: \"v-lazy\",\n value: {\n src: _vm.media[_vm.select].src,\n loading: _vm.media[_vm.select].src,\n error: _vm.media[_vm.select].src\n },\n expression:\n \"{\\n src: media[select].src,\\n loading: media[select].src,\\n error: media[select].src,\\n }\"\n }\n ],\n key: _vm.media[_vm.select].src,\n staticClass: \"vue-lb-modal-image\",\n attrs: {\n srcset: _vm.media[_vm.select].srcset || \"\",\n alt: _vm.media[_vm.select].caption\n }\n })\n : _c(\n \"video\",\n {\n key: _vm.media[_vm.select].sources[0].src,\n ref: \"video\",\n attrs: {\n width: _vm.media[_vm.select].width,\n height: _vm.media[_vm.select].height,\n autoplay: _vm.media[_vm.select].autoplay,\n controls: \"\"\n }\n },\n _vm._l(\n _vm.media[_vm.select].sources,\n function(source) {\n return _c(\"source\", {\n key: source.src,\n attrs: {\n src: source.src,\n type: source.type\n }\n })\n }\n ),\n 0\n )\n ]\n ),\n _vm._v(\" \"),\n _vm._t(\"customCaption\", [\n _c(\"div\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showCaption,\n expression: \"showCaption\"\n }\n ],\n staticClass: \"vue-lb-info\",\n domProps: {\n innerHTML: _vm._s(_vm.media[_vm.select].caption)\n }\n })\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"vue-lb-footer\" }, [\n _c(\"div\", { staticClass: \"vue-lb-footer-info\" }),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.showFooterCount,\n expression: \"showFooterCount\"\n }\n ],\n staticClass: \"vue-lb-footer-count\"\n },\n [\n _vm._t(\n \"footer\",\n [\n _vm._v(\n \"\\n \" +\n _vm._s(_vm.select + 1) +\n \" / \" +\n _vm._s(_vm.media.length) +\n \"\\n \"\n )\n ],\n {\n current: _vm.select + 1,\n total: _vm.media.length\n }\n )\n ],\n 2\n )\n ])\n ],\n 2\n )\n ]),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"vue-lb-thumbnail-wrapper\" }, [\n _vm.showThumbs\n ? _c(\n \"div\",\n { staticClass: \"vue-lb-thumbnail\" },\n [\n _vm.media.length > 1\n ? _c(\n \"button\",\n {\n staticClass:\n \"vue-lb-thumbnail-arrow vue-lb-thumbnail-left\",\n attrs: {\n type: \"button\",\n title: _vm.previousThumbText\n },\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.previousImage()\n }\n }\n },\n [\n _vm._t(\"previousThumb\", [\n _c(\"LeftArrowIcon\")\n ])\n ],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm._l(_vm.imagesThumb, function(image, index) {\n return _c(\n \"div\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value:\n index >= _vm.thumbIndex.begin &&\n index <= _vm.thumbIndex.end,\n expression:\n \"index >= thumbIndex.begin && index <= thumbIndex.end\"\n },\n {\n name: \"lazy\",\n rawName: \"v-lazy:background-image\",\n value: image,\n expression: \"image\",\n arg: \"background-image\"\n }\n ],\n key:\n typeof image.src === \"string\"\n ? \"\" + image.src + index\n : index,\n class:\n \"vue-lb-modal-thumbnail\" +\n (_vm.select === index ? \"-active\" : \"\"),\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.showImage(index)\n }\n }\n },\n [\n image.type\n ? _vm._t(\"videoIcon\", [_c(\"VideoIcon\")])\n : _vm._e()\n ],\n 2\n )\n }),\n _vm._v(\" \"),\n _vm.media.length > 1\n ? _c(\n \"button\",\n {\n staticClass:\n \"vue-lb-thumbnail-arrow vue-lb-thumbnail-right\",\n attrs: {\n type: \"button\",\n title: _vm.nextThumbText\n },\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.nextImage()\n }\n }\n },\n [_vm._t(\"nextThumb\", [_c(\"RightArrowIcon\")])],\n 2\n )\n : _vm._e()\n ],\n 2\n )\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _vm.media.length > 1\n ? _c(\n \"button\",\n {\n staticClass: \"vue-lb-arrow vue-lb-left\",\n attrs: { type: \"button\", title: _vm.previousText },\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.previousImage()\n }\n }\n },\n [_vm._t(\"previous\", [_c(\"LeftArrowIcon\")])],\n 2\n )\n : _vm._e(),\n _vm._v(\" \"),\n _vm.media.length > 1\n ? _c(\n \"button\",\n {\n staticClass: \"vue-lb-arrow vue-lb-right\",\n attrs: { type: \"button\", title: _vm.nextText },\n on: {\n click: function($event) {\n $event.stopPropagation()\n return _vm.nextImage()\n }\n }\n },\n [_vm._t(\"next\", [_c(\"RightArrowIcon\")])],\n 2\n )\n : _vm._e()\n ]\n )\n : _vm._e()\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", [\n _c(\n \"svg\",\n {\n attrs: {\n fill: \"white\",\n x: \"0px\",\n y: \"0px\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 512 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M213.7,256L213.7,256L213.7,256L380.9,81.9c4.2-4.3,4.1-11.4-0.2-15.8l-29.9-30.6c-4.3-4.4-11.3-4.5-15.5-0.2L131.1,247.9 c-2.2,2.2-3.2,5.2-3,8.1c-0.1,3,0.9,5.9,3,8.1l204.2,212.7c4.2,4.3,11.2,4.2,15.5-0.2l29.9-30.6c4.3-4.4,4.4-11.5,0.2-15.8 L213.7,256z\"\n }\n })\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./LeftArrowIcon.vue?vue&type=template&id=73aba34a&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/pexea12/repos/vue-image-lightbox/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('73aba34a')) {\n api.createRecord('73aba34a', component.options)\n } else {\n api.reload('73aba34a', component.options)\n }\n module.hot.accept(\"./LeftArrowIcon.vue?vue&type=template&id=73aba34a&\", function () {\n api.rerender('73aba34a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/LeftArrowIcon.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", [\n _c(\n \"svg\",\n {\n attrs: {\n fill: \"white\",\n x: \"0px\",\n y: \"0px\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 512 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M298.3,256L298.3,256L298.3,256L131.1,81.9c-4.2-4.3-4.1-11.4,0.2-15.8l29.9-30.6c4.3-4.4,11.3-4.5,15.5-0.2l204.2,212.7 c2.2,2.2,3.2,5.2,3,8.1c0.1,3-0.9,5.9-3,8.1L176.7,476.8c-4.2,4.3-11.2,4.2-15.5-0.2L131.3,446c-4.3-4.4-4.4-11.5-0.2-15.8 L298.3,256z\"\n }\n })\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./RightArrowIcon.vue?vue&type=template&id=c29d3ed4&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/pexea12/repos/vue-image-lightbox/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('c29d3ed4')) {\n api.createRecord('c29d3ed4', component.options)\n } else {\n api.reload('c29d3ed4', component.options)\n }\n module.hot.accept(\"./RightArrowIcon.vue?vue&type=template&id=c29d3ed4&\", function () {\n api.rerender('c29d3ed4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/RightArrowIcon.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"span\", [\n _c(\n \"svg\",\n {\n staticStyle: { \"enable-background\": \"new 0 0 512 512\" },\n attrs: {\n fill: \"white\",\n x: \"0px\",\n y: \"0px\",\n width: \"100%\",\n height: \"100%\",\n viewBox: \"0 0 512 512\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n d:\n \"M443.6,387.1L312.4,255.4l131.5-130c5.4-5.4,5.4-14.2,0-19.6l-37.4-37.6c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4 L256,197.8L124.9,68.3c-2.6-2.6-6.1-4-9.8-4c-3.7,0-7.2,1.5-9.8,4L68,105.9c-5.4,5.4-5.4,14.2,0,19.6l131.5,130L68.4,387.1 c-2.6,2.6-4.1,6.1-4.1,9.8c0,3.7,1.4,7.2,4.1,9.8l37.4,37.6c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1L256,313.1l130.7,131.1 c2.7,2.7,6.2,4.1,9.8,4.1c3.5,0,7.1-1.3,9.8-4.1l37.4-37.6c2.6-2.6,4.1-6.1,4.1-9.8C447.7,393.2,446.2,389.7,443.6,387.1z\"\n }\n })\n ]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./CloseIcon.vue?vue&type=template&id=1a43cbde&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/pexea12/repos/vue-image-lightbox/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('1a43cbde')) {\n api.createRecord('1a43cbde', component.options)\n } else {\n api.reload('1a43cbde', component.options)\n }\n module.hot.accept(\"./CloseIcon.vue?vue&type=template&id=1a43cbde&\", function () {\n api.rerender('1a43cbde', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/CloseIcon.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"svg\",\n {\n staticStyle: {\n \"enable-background\": \"new 0 0 271.953 271.953\",\n margin: \"12px\"\n },\n attrs: {\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 271.953 271.953\",\n \"xml:space\": \"preserve\"\n }\n },\n [\n _c(\"g\", [\n _c(\"g\", [\n _c(\"path\", {\n staticStyle: { fill: \"#fff\" },\n attrs: {\n d:\n \"M135.977,271.953c75.097,0,135.977-60.879,135.977-135.977S211.074,0,135.977,0S0,60.879,0,135.977 S60.879,271.953,135.977,271.953z M250.197,135.977c0,62.979-51.241,114.22-114.22,114.22s-114.22-51.241-114.22-114.22 s51.241-114.22,114.22-114.22S250.197,72.998,250.197,135.977z\"\n }\n }),\n _vm._v(\" \"),\n _c(\"path\", {\n staticStyle: { fill: \"#fff\" },\n attrs: {\n d:\n \"M112.295,205.031c2.692,1.115,5.434,1.659,8.235,1.659c5.662,0,11.183-2.208,15.344-6.375 l48.93-48.952c8.496-8.496,8.485-22.273-0.011-30.769l-48.957-48.952c-4.161-4.161-9.73-6.375-15.393-6.375 c-2.801,0-5.461,0.544-8.153,1.659c-8.126,3.367-13.255,11.297-13.255,20.097v97.903 C99.034,193.729,104.164,201.664,112.295,205.031z M120.791,88.613v-1.588l48.952,48.952l-48.952,48.952V88.613z\"\n }\n })\n ])\n ])\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./VideoIcon.vue?vue&type=template&id=cf51c4d8&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/pexea12/repos/vue-image-lightbox/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('cf51c4d8')) {\n api.createRecord('cf51c4d8', component.options)\n } else {\n api.reload('cf51c4d8', component.options)\n }\n module.hot.accept(\"./VideoIcon.vue?vue&type=template&id=cf51c4d8&\", function () {\n api.rerender('cf51c4d8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/VideoIcon.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./LightBox.vue?vue&type=template&id=77795e85&\"\nimport script from \"./LightBox.vue?vue&type=script&lang=js&\"\nexport * from \"./LightBox.vue?vue&type=script&lang=js&\"\nimport style0 from \"./style.css?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/Users/pexea12/repos/vue-image-lightbox/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('77795e85')) {\n api.createRecord('77795e85', component.options)\n } else {\n api.reload('77795e85', component.options)\n }\n module.hot.accept(\"./LightBox.vue?vue&type=template&id=77795e85&\", function () {\n api.rerender('77795e85', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"src/components/LightBox.vue\"\nexport default component.exports","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightBox.vue?vue&type=script&lang=js&\"","/*!\n * Vue-Lazyload.js v1.3.3\n * (c) 2019 Awe \n * Released under the MIT License.\n */\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n/*!\n * is-primitive \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n// see http://jsperf.com/testing-value-is-primitive/7\n\nvar isPrimitive = function isPrimitive(value) {\n return value == null || typeof value !== 'function' && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object';\n};\n\n/*!\n * assign-symbols \n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nvar assignSymbols = function assignSymbols(receiver, objects) {\n if (receiver === null || typeof receiver === 'undefined') {\n throw new TypeError('expected first argument to be an object.');\n }\n\n if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n return receiver;\n }\n\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return receiver;\n }\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var target = Object(receiver);\n var len = arguments.length,\n i = 0;\n\n while (++i < len) {\n var provider = Object(arguments[i]);\n var names = Object.getOwnPropertySymbols(provider);\n\n for (var j = 0; j < names.length; j++) {\n var key = names[j];\n\n if (isEnumerable.call(provider, key)) {\n target[key] = provider[key];\n }\n }\n }\n return target;\n};\n\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param {*} `val`\n * @return {*} Native javascript type\n */\n\nvar kindOf = function kindOf(val) {\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n\n // primitivies\n if (type === 'undefined') {\n return 'undefined';\n }\n if (val === null) {\n return 'null';\n }\n if (val === true || val === false || val instanceof Boolean) {\n return 'boolean';\n }\n if (type === 'string' || val instanceof String) {\n return 'string';\n }\n if (type === 'number' || val instanceof Number) {\n return 'number';\n }\n\n // functions\n if (type === 'function' || val instanceof Function) {\n if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {\n return 'generatorfunction';\n }\n return 'function';\n }\n\n // array\n if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n return 'array';\n }\n\n // check for instances of RegExp and Date before calling `toString`\n if (val instanceof RegExp) {\n return 'regexp';\n }\n if (val instanceof Date) {\n return 'date';\n }\n\n // other objects\n type = toString.call(val);\n\n if (type === '[object RegExp]') {\n return 'regexp';\n }\n if (type === '[object Date]') {\n return 'date';\n }\n if (type === '[object Arguments]') {\n return 'arguments';\n }\n if (type === '[object Error]') {\n return 'error';\n }\n if (type === '[object Promise]') {\n return 'promise';\n }\n\n // buffer\n if (isBuffer(val)) {\n return 'buffer';\n }\n\n // es6: Map, WeakMap, Set, WeakSet\n if (type === '[object Set]') {\n return 'set';\n }\n if (type === '[object WeakSet]') {\n return 'weakset';\n }\n if (type === '[object Map]') {\n return 'map';\n }\n if (type === '[object WeakMap]') {\n return 'weakmap';\n }\n if (type === '[object Symbol]') {\n return 'symbol';\n }\n\n if (type === '[object Map Iterator]') {\n return 'mapiterator';\n }\n if (type === '[object Set Iterator]') {\n return 'setiterator';\n }\n if (type === '[object String Iterator]') {\n return 'stringiterator';\n }\n if (type === '[object Array Iterator]') {\n return 'arrayiterator';\n }\n\n // typed arrays\n if (type === '[object Int8Array]') {\n return 'int8array';\n }\n if (type === '[object Uint8Array]') {\n return 'uint8array';\n }\n if (type === '[object Uint8ClampedArray]') {\n return 'uint8clampedarray';\n }\n if (type === '[object Int16Array]') {\n return 'int16array';\n }\n if (type === '[object Uint16Array]') {\n return 'uint16array';\n }\n if (type === '[object Int32Array]') {\n return 'int32array';\n }\n if (type === '[object Uint32Array]') {\n return 'uint32array';\n }\n if (type === '[object Float32Array]') {\n return 'float32array';\n }\n if (type === '[object Float64Array]') {\n return 'float64array';\n }\n\n // must be a plain object\n return 'object';\n};\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n return val.constructor && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\nfunction assign(target /*, objects*/) {\n target = target || {};\n var len = arguments.length,\n i = 0;\n if (len === 1) {\n return target;\n }\n while (++i < len) {\n var val = arguments[i];\n if (isPrimitive(target)) {\n target = val;\n }\n if (isObject$1(val)) {\n extend(target, val);\n }\n }\n return target;\n}\n\n/**\n * Shallow extend\n */\n\nfunction extend(target, obj) {\n assignSymbols(target, obj);\n\n for (var key in obj) {\n if (key !== '__proto__' && hasOwn(obj, key)) {\n var val = obj[key];\n if (isObject$1(val)) {\n if (kindOf(target[key]) === 'undefined' && kindOf(val) === 'function') {\n target[key] = val;\n }\n target[key] = assign(target[key] || {}, val);\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n}\n\n/**\n * Returns true if the object is a plain object or a function.\n */\n\nfunction isObject$1(obj) {\n return kindOf(obj) === 'object' || kindOf(obj) === 'function';\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Expose `assign`\n */\n\nvar assignDeep = assign;\n\nvar inBrowser = typeof window !== 'undefined';\nvar hasIntersectionObserver = checkIntersectionObserver();\n\nfunction checkIntersectionObserver() {\n if (inBrowser && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get$$1() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nvar modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill\n};var CustomEvent = function () {\n if (!inBrowser) return;\n if (typeof window.CustomEvent === 'function') return window.CustomEvent;\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n return CustomEvent;\n}();\n\nfunction remove(arr, item) {\n if (!arr.length) return;\n var index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n var has = false;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n has = true;\n break;\n }\n }\n return has;\n}\n\nfunction getBestSelectionFromSrcset(el, scale) {\n if (el.tagName !== 'IMG' || !el.getAttribute('data-srcset')) return;\n\n var options = el.getAttribute('data-srcset');\n var result = [];\n var container = el.parentNode;\n var containerWidth = container.offsetWidth * scale;\n\n var spaceIndex = void 0;\n var tmpSrc = void 0;\n var tmpWidth = void 0;\n\n options = options.trim().split(',');\n\n options.map(function (item) {\n item = item.trim();\n spaceIndex = item.lastIndexOf(' ');\n if (spaceIndex === -1) {\n tmpSrc = item;\n tmpWidth = 999998;\n } else {\n tmpSrc = item.substr(0, spaceIndex);\n tmpWidth = parseInt(item.substr(spaceIndex + 1, item.length - spaceIndex - 2), 10);\n }\n result.push([tmpWidth, tmpSrc]);\n });\n\n result.sort(function (a, b) {\n if (a[0] < b[0]) {\n return 1;\n }\n if (a[0] > b[0]) {\n return -1;\n }\n if (a[0] === b[0]) {\n if (b[1].indexOf('.webp', b[1].length - 5) !== -1) {\n return 1;\n }\n if (a[1].indexOf('.webp', a[1].length - 5) !== -1) {\n return -1;\n }\n }\n return 0;\n });\n var bestSelectedSrc = '';\n var tmpOption = void 0;\n\n for (var i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n var next = result[i + 1];\n if (next && next[0] < containerWidth) {\n bestSelectedSrc = tmpOption[1];\n break;\n } else if (!next) {\n bestSelectedSrc = tmpOption[1];\n break;\n }\n }\n\n return bestSelectedSrc;\n}\n\nfunction find(arr, fn) {\n var item = void 0;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n item = arr[i];\n break;\n }\n }\n return item;\n}\n\nvar getDPR = function getDPR() {\n var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return inBrowser ? window.devicePixelRatio || scale : scale;\n};\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n var support = true;\n var d = document;\n\n try {\n var el = d.createElement('object');\n el.type = 'image/webp';\n el.style.visibility = 'hidden';\n el.innerHTML = '!';\n d.body.appendChild(el);\n support = !el.offsetWidth;\n d.body.removeChild(el);\n } catch (err) {\n support = false;\n }\n\n return support;\n}\n\nfunction throttle(action, delay) {\n var timeout = null;\n var lastRun = 0;\n return function () {\n if (timeout) {\n return;\n }\n var elapsed = Date.now() - lastRun;\n var context = this;\n var args = arguments;\n var runCallback = function runCallback() {\n lastRun = Date.now();\n timeout = false;\n action.apply(context, args);\n };\n if (elapsed >= delay) {\n runCallback();\n } else {\n timeout = setTimeout(runCallback, delay);\n }\n };\n}\n\nfunction testSupportsPassive() {\n if (!inBrowser) return;\n var support = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get$$1() {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nvar supportsPassive = testSupportsPassive();\n\nvar _ = {\n on: function on(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (supportsPassive) {\n el.addEventListener(type, func, {\n capture: capture,\n passive: true\n });\n } else {\n el.addEventListener(type, func, capture);\n }\n },\n off: function off(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n el.removeEventListener(type, func, capture);\n }\n};\n\nvar loadImageAsync = function loadImageAsync(item, resolve, reject) {\n var image = new Image();\n if (!item || !item.src) {\n var err = new Error('image src is required');\n return reject(err);\n }\n\n image.src = item.src;\n\n image.onload = function () {\n resolve({\n naturalHeight: image.naturalHeight,\n naturalWidth: image.naturalWidth,\n src: image.src\n });\n };\n\n image.onerror = function (e) {\n reject(e);\n };\n};\n\nvar style = function style(el, prop) {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nvar overflow = function overflow(el) {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nvar scrollParent = function scrollParent(el) {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n var parent = el;\n\n while (parent) {\n if (parent === document.body || parent === document.documentElement) {\n break;\n }\n\n if (!parent.parentNode) {\n break;\n }\n\n if (/(scroll|auto)/.test(overflow(parent))) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return window;\n};\n\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\nfunction ObjectKeys(obj) {\n if (!(obj instanceof Object)) return [];\n if (Object.keys) {\n return Object.keys(obj);\n } else {\n var keys = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n var len = arrLike.length;\n var list = [];\n for (var i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nvar ImageCache = function () {\n function ImageCache(_ref) {\n var max = _ref.max;\n classCallCheck(this, ImageCache);\n\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n createClass(ImageCache, [{\n key: 'has',\n value: function has(key) {\n return this._caches.indexOf(key) > -1;\n }\n }, {\n key: 'add',\n value: function add(key) {\n if (this.has(key)) return;\n this._caches.push(key);\n if (this._caches.length > this.options.max) {\n this.free();\n }\n }\n }, {\n key: 'free',\n value: function free() {\n this._caches.shift();\n }\n }]);\n return ImageCache;\n}();\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nvar ReactiveListener = function () {\n function ReactiveListener(_ref) {\n var el = _ref.el,\n src = _ref.src,\n error = _ref.error,\n loading = _ref.loading,\n bindType = _ref.bindType,\n $parent = _ref.$parent,\n options = _ref.options,\n elRenderer = _ref.elRenderer,\n imageCache = _ref.imageCache;\n classCallCheck(this, ReactiveListener);\n\n this.el = el;\n this.src = src;\n this.error = error;\n this.loading = loading;\n this.bindType = bindType;\n this.attempt = 0;\n\n this.naturalHeight = 0;\n this.naturalWidth = 0;\n\n this.options = options;\n\n this.rect = null;\n\n this.$parent = $parent;\n this.elRenderer = elRenderer;\n this._imageCache = imageCache;\n this.performanceData = {\n init: Date.now(),\n loadStart: 0,\n loadEnd: 0\n };\n\n this.filter();\n this.initState();\n this.render('loading', false);\n }\n\n /*\n * init listener state\n * @return\n */\n\n\n createClass(ReactiveListener, [{\n key: 'initState',\n value: function initState() {\n if ('dataset' in this.el) {\n this.el.dataset.src = this.src;\n } else {\n this.el.setAttribute('data-src', this.src);\n }\n\n this.state = {\n loading: false,\n error: false,\n loaded: false,\n rendered: false\n };\n }\n\n /*\n * record performance\n * @return\n */\n\n }, {\n key: 'record',\n value: function record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\n * update image listener data\n * @param {String} image uri\n * @param {String} loading image uri\n * @param {String} error image uri\n * @return\n */\n\n }, {\n key: 'update',\n value: function update(_ref2) {\n var src = _ref2.src,\n loading = _ref2.loading,\n error = _ref2.error;\n\n var oldSrc = this.src;\n this.src = src;\n this.loading = loading;\n this.error = error;\n this.filter();\n if (oldSrc !== this.src) {\n this.attempt = 0;\n this.initState();\n }\n }\n\n /*\n * get el node rect\n * @return\n */\n\n }, {\n key: 'getRect',\n value: function getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\n * check el is in view\n * @return {Boolean} el is in view\n */\n\n }, {\n key: 'checkInView',\n value: function checkInView() {\n this.getRect();\n return this.rect.top < window.innerHeight * this.options.preLoad && this.rect.bottom > this.options.preLoadTop && this.rect.left < window.innerWidth * this.options.preLoad && this.rect.right > 0;\n }\n\n /*\n * listener filter\n */\n\n }, {\n key: 'filter',\n value: function filter() {\n var _this = this;\n\n ObjectKeys(this.options.filter).map(function (key) {\n _this.options.filter[key](_this, _this.options);\n });\n }\n\n /*\n * render loading first\n * @params cb:Function\n * @return\n */\n\n }, {\n key: 'renderLoading',\n value: function renderLoading(cb) {\n var _this2 = this;\n\n this.state.loading = true;\n loadImageAsync({\n src: this.loading\n }, function (data) {\n _this2.render('loading', false);\n _this2.state.loading = false;\n cb();\n }, function () {\n // handler `loading image` load failed\n cb();\n _this2.state.loading = false;\n if (!_this2.options.silent) console.warn('VueLazyload log: load failed with loading image(' + _this2.loading + ')');\n });\n }\n\n /*\n * try load image and render it\n * @return\n */\n\n }, {\n key: 'load',\n value: function load() {\n var _this3 = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.attempt > this.options.attempt - 1 && this.state.error) {\n if (!this.options.silent) console.log('VueLazyload log: ' + this.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n if (this.state.rendered && this.state.loaded) return;\n if (this._imageCache.has(this.src)) {\n this.state.loaded = true;\n this.render('loaded', true);\n this.state.rendered = true;\n return onFinish();\n }\n\n this.renderLoading(function () {\n _this3.attempt++;\n\n _this3.options.adapter['beforeLoad'] && _this3.options.adapter['beforeLoad'](_this3, _this3.options);\n _this3.record('loadStart');\n\n loadImageAsync({\n src: _this3.src\n }, function (data) {\n _this3.naturalHeight = data.naturalHeight;\n _this3.naturalWidth = data.naturalWidth;\n _this3.state.loaded = true;\n _this3.state.error = false;\n _this3.record('loadEnd');\n _this3.render('loaded', false);\n _this3.state.rendered = true;\n _this3._imageCache.add(_this3.src);\n onFinish();\n }, function (err) {\n !_this3.options.silent && console.error(err);\n _this3.state.error = true;\n _this3.state.loaded = false;\n _this3.render('error', false);\n });\n });\n }\n\n /*\n * render image\n * @param {String} state to render // ['loading', 'src', 'error']\n * @param {String} is form cache\n * @return\n */\n\n }, {\n key: 'render',\n value: function render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\n * output performance data\n * @return {Object} performance data\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var state = 'loading';\n var time = 0;\n\n if (this.state.loaded) {\n state = 'loaded';\n time = (this.performanceData.loadEnd - this.performanceData.loadStart) / 1000;\n }\n\n if (this.state.error) state = 'error';\n\n return {\n src: this.src,\n state: state,\n time: time\n };\n }\n\n /*\n * $destroy\n * @return\n */\n\n }, {\n key: '$destroy',\n value: function $destroy() {\n this.el = null;\n this.src = null;\n this.error = null;\n this.loading = null;\n this.bindType = null;\n this.attempt = 0;\n }\n }]);\n return ReactiveListener;\n}();\n\nvar DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nvar DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nvar DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nvar Lazy = function (Vue) {\n return function () {\n function Lazy(_ref) {\n var preLoad = _ref.preLoad,\n error = _ref.error,\n throttleWait = _ref.throttleWait,\n preLoadTop = _ref.preLoadTop,\n dispatchEvent = _ref.dispatchEvent,\n loading = _ref.loading,\n attempt = _ref.attempt,\n _ref$silent = _ref.silent,\n silent = _ref$silent === undefined ? true : _ref$silent,\n scale = _ref.scale,\n listenEvents = _ref.listenEvents,\n hasbind = _ref.hasbind,\n filter = _ref.filter,\n adapter = _ref.adapter,\n observer = _ref.observer,\n observerOptions = _ref.observerOptions;\n classCallCheck(this, Lazy);\n\n this.version = '1.3.3';\n this.mode = modeType.event;\n this.ListenerQueue = [];\n this.TargetIndex = 0;\n this.TargetQueue = [];\n this.options = {\n silent: silent,\n dispatchEvent: !!dispatchEvent,\n throttleWait: throttleWait || 200,\n preLoad: preLoad || 1.3,\n preLoadTop: preLoadTop || 0,\n error: error || DEFAULT_URL,\n loading: loading || DEFAULT_URL,\n attempt: attempt || 3,\n scale: scale || getDPR(scale),\n ListenEvents: listenEvents || DEFAULT_EVENTS,\n hasbind: false,\n supportWebp: supportWebp(),\n filter: filter || {},\n adapter: adapter || {},\n observer: !!observer,\n observerOptions: observerOptions || DEFAULT_OBSERVER_OPTIONS\n };\n this._initEvent();\n this._imageCache = new ImageCache({ max: 200 });\n this.lazyLoadHandler = throttle(this._lazyLoadHandler.bind(this), this.options.throttleWait);\n\n this.setMode(this.options.observer ? modeType.observer : modeType.event);\n }\n\n /**\n * update config\n * @param {Object} config params\n * @return\n */\n\n\n createClass(Lazy, [{\n key: 'config',\n value: function config() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n assignDeep(this.options, options);\n }\n\n /**\n * output listener's load performance\n * @return {Array}\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var list = [];\n\n this.ListenerQueue.map(function (item) {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\n * add lazy component to queue\n * @param {Vue} vm lazy component instance\n * @return\n */\n\n }, {\n key: 'addLazyBox',\n value: function addLazyBox(vm) {\n this.ListenerQueue.push(vm);\n if (inBrowser) {\n this._addListenerTarget(window);\n this._observer && this._observer.observe(vm.el);\n if (vm.$el && vm.$el.parentNode) {\n this._addListenerTarget(vm.$el.parentNode);\n }\n }\n }\n\n /*\n * add image listener to queue\n * @param {DOM} el\n * @param {object} binding vue directive binding\n * @param {vnode} vnode vue directive vnode\n * @return\n */\n\n }, {\n key: 'add',\n value: function add(el, binding, vnode) {\n var _this = this;\n\n if (some(this.ListenerQueue, function (item) {\n return item.el === el;\n })) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n var _valueFormatter2 = this._valueFormatter(binding.value),\n src = _valueFormatter2.src,\n loading = _valueFormatter2.loading,\n error = _valueFormatter2.error;\n\n Vue.nextTick(function () {\n src = getBestSelectionFromSrcset(el, _this.options.scale) || src;\n _this._observer && _this._observer.observe(el);\n\n var container = Object.keys(binding.modifiers)[0];\n var $parent = void 0;\n\n if (container) {\n $parent = vnode.context.$refs[container];\n // if there is container passed in, try ref first, then fallback to getElementById to support the original usage\n $parent = $parent ? $parent.$el || $parent : document.getElementById(container);\n }\n\n if (!$parent) {\n $parent = scrollParent(el);\n }\n\n var newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent: $parent,\n el: el,\n loading: loading,\n error: error,\n src: src,\n elRenderer: _this._elRenderer.bind(_this),\n options: _this.options,\n imageCache: _this._imageCache\n });\n\n _this.ListenerQueue.push(newListener);\n\n if (inBrowser) {\n _this._addListenerTarget(window);\n _this._addListenerTarget($parent);\n }\n\n _this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this.lazyLoadHandler();\n });\n });\n }\n\n /**\n * update image src\n * @param {DOM} el\n * @param {object} vue directive binding\n * @return\n */\n\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var _this2 = this;\n\n var _valueFormatter3 = this._valueFormatter(binding.value),\n src = _valueFormatter3.src,\n loading = _valueFormatter3.loading,\n error = _valueFormatter3.error;\n\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n var exist = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src: src,\n loading: loading,\n error: error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this2.lazyLoadHandler();\n });\n }\n\n /**\n * remove listener form list\n * @param {DOM} el\n * @return\n */\n\n }, {\n key: 'remove',\n value: function remove$$1(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n var existItem = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\n * remove lazy components form list\n * @param {Vue} vm Vue instance\n * @return\n */\n\n }, {\n key: 'removeComponent',\n value: function removeComponent(vm) {\n if (!vm) return;\n remove(this.ListenerQueue, vm);\n this._observer && this._observer.unobserve(vm.el);\n if (vm.$parent && vm.$el.parentNode) {\n this._removeListenerTarget(vm.$el.parentNode);\n }\n this._removeListenerTarget(window);\n }\n }, {\n key: 'setMode',\n value: function setMode(mode) {\n var _this3 = this;\n\n if (!hasIntersectionObserver && mode === modeType.observer) {\n mode = modeType.event;\n }\n\n this.mode = mode; // event or observer\n\n if (mode === modeType.event) {\n if (this._observer) {\n this.ListenerQueue.forEach(function (listener) {\n _this3._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\n *** Private functions ***\n */\n\n /*\n * add listener target\n * @param {DOM} el listener target\n * @return\n */\n\n }, {\n key: '_addListenerTarget',\n value: function _addListenerTarget(el) {\n if (!el) return;\n var target = find(this.TargetQueue, function (target) {\n return target.el === el;\n });\n if (!target) {\n target = {\n el: el,\n id: ++this.TargetIndex,\n childrenCount: 1,\n listened: true\n };\n this.mode === modeType.event && this._initListen(target.el, true);\n this.TargetQueue.push(target);\n } else {\n target.childrenCount++;\n }\n return this.TargetIndex;\n }\n\n /*\n * remove listener target or reduce target childrenCount\n * @param {DOM} el or window\n * @return\n */\n\n }, {\n key: '_removeListenerTarget',\n value: function _removeListenerTarget(el) {\n var _this4 = this;\n\n this.TargetQueue.forEach(function (target, index) {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n _this4._initListen(target.el, false);\n _this4.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\n * add or remove eventlistener\n * @param {DOM} el DOM or Window\n * @param {boolean} start flag\n * @return\n */\n\n }, {\n key: '_initListen',\n value: function _initListen(el, start) {\n var _this5 = this;\n\n this.options.ListenEvents.forEach(function (evt) {\n return _[start ? 'on' : 'off'](el, evt, _this5.lazyLoadHandler);\n });\n }\n }, {\n key: '_initEvent',\n value: function _initEvent() {\n var _this6 = this;\n\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = function (event, func) {\n if (!_this6.Event.listeners[event]) _this6.Event.listeners[event] = [];\n _this6.Event.listeners[event].push(func);\n };\n\n this.$once = function (event, func) {\n var vm = _this6;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n _this6.$on(event, on);\n };\n\n this.$off = function (event, func) {\n if (!func) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].length = 0;\n return;\n }\n remove(_this6.Event.listeners[event], func);\n };\n\n this.$emit = function (event, context, inCache) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].forEach(function (func) {\n return func(context, inCache);\n });\n };\n }\n\n /**\n * find nodes which in viewport and trigger load\n * @return\n */\n\n }, {\n key: '_lazyLoadHandler',\n value: function _lazyLoadHandler() {\n var _this7 = this;\n\n var freeList = [];\n this.ListenerQueue.forEach(function (listener, index) {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n var catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(function (item) {\n remove(_this7.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\n * init IntersectionObserver\n * set mode to observer\n * @return\n */\n\n }, {\n key: '_initIntersectionObserver',\n value: function _initIntersectionObserver() {\n var _this8 = this;\n\n if (!hasIntersectionObserver) return;\n this._observer = new IntersectionObserver(this._observerHandler.bind(this), this.options.observerOptions);\n if (this.ListenerQueue.length) {\n this.ListenerQueue.forEach(function (listener) {\n _this8._observer.observe(listener.el);\n });\n }\n }\n\n /**\n * init IntersectionObserver\n * @return\n */\n\n }, {\n key: '_observerHandler',\n value: function _observerHandler(entries, observer) {\n var _this9 = this;\n\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n _this9.ListenerQueue.forEach(function (listener) {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return _this9._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\n * set element attribute with image'url and state\n * @param {object} lazyload listener object\n * @param {string} state will be rendered\n * @param {bool} inCache is rendered from cache\n * @return\n */\n\n }, {\n key: '_elRenderer',\n value: function _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n var el = listener.el,\n bindType = listener.bindType;\n\n\n var src = void 0;\n switch (state) {\n case 'loading':\n src = listener.loading;\n break;\n case 'error':\n src = listener.error;\n break;\n default:\n src = listener.src;\n break;\n }\n\n if (bindType) {\n el.style[bindType] = 'url(\"' + src + '\")';\n } else if (el.getAttribute('src') !== src) {\n el.setAttribute('src', src);\n }\n\n el.setAttribute('lazy', state);\n\n this.$emit(state, listener, cache);\n this.options.adapter[state] && this.options.adapter[state](listener, this.options);\n\n if (this.options.dispatchEvent) {\n var event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\n * generate loading loaded error image url\n * @param {string} image's src\n * @return {object} image's loading, loaded, error url\n */\n\n }, {\n key: '_valueFormatter',\n value: function _valueFormatter(value) {\n var src = value;\n var loading = this.options.loading;\n var error = this.options.error;\n\n // value is object\n if (isObject(value)) {\n if (!value.src && !this.options.silent) console.error('Vue Lazyload warning: miss src with ' + value);\n src = value.src;\n loading = value.loading || this.options.loading;\n error = value.error || this.options.error;\n }\n return {\n src: src,\n loading: loading,\n error: error\n };\n }\n }]);\n return Lazy;\n }();\n};\n\nvar LazyComponent = (function (lazy) {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h) {\n if (this.show === false) {\n return h(this.tag);\n }\n return h(this.tag, null, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazy.removeComponent(this);\n },\n\n methods: {\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazy.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazy.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy: function destroy() {\n return this.$destroy;\n }\n }\n };\n});\n\nvar LazyContainerMananger = function () {\n function LazyContainerMananger(_ref) {\n var lazy = _ref.lazy;\n classCallCheck(this, LazyContainerMananger);\n\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n createClass(LazyContainerMananger, [{\n key: 'bind',\n value: function bind(el, binding, vnode) {\n var container = new LazyContainer$1({ el: el, binding: binding, vnode: vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.update({ el: el, binding: binding, vnode: vnode });\n }\n }, {\n key: 'unbind',\n value: function unbind(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n }]);\n return LazyContainerMananger;\n}();\n\nvar defaultOptions = {\n selector: 'img'\n};\n\nvar LazyContainer$1 = function () {\n function LazyContainer(_ref2) {\n var el = _ref2.el,\n binding = _ref2.binding,\n vnode = _ref2.vnode,\n lazy = _ref2.lazy;\n classCallCheck(this, LazyContainer);\n\n this.el = null;\n this.vnode = vnode;\n this.binding = binding;\n this.options = {};\n this.lazy = lazy;\n\n this._queue = [];\n this.update({ el: el, binding: binding });\n }\n\n createClass(LazyContainer, [{\n key: 'update',\n value: function update(_ref3) {\n var _this = this;\n\n var el = _ref3.el,\n binding = _ref3.binding;\n\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n _this.lazy.add(el, assignDeep({}, _this.binding, {\n value: {\n src: 'dataset' in el ? el.dataset.src : el.getAttribute('data-src'),\n error: ('dataset' in el ? el.dataset.error : el.getAttribute('data-error')) || _this.options.error,\n loading: ('dataset' in el ? el.dataset.loading : el.getAttribute('data-loading')) || _this.options.loading\n }\n }), _this.vnode);\n });\n }\n }, {\n key: 'getImgs',\n value: function getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this2 = this;\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n return _this2.lazy.remove(el);\n });\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n }]);\n return LazyContainer;\n}();\n\nvar LazyImage = (function (lazyManager) {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render: function render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n options: {\n src: '',\n error: '',\n loading: '',\n attempt: lazyManager.options.attempt\n },\n state: {\n loaded: false,\n error: false,\n attempt: 0\n },\n rect: {},\n renderSrc: ''\n };\n },\n\n watch: {\n src: function src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created: function created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n\n methods: {\n init: function init() {\n var _lazyManager$_valueFo = lazyManager._valueFormatter(this.src),\n src = _lazyManager$_valueFo.src,\n loading = _lazyManager$_valueFo.loading,\n error = _lazyManager$_valueFo.error;\n\n this.state.loaded = false;\n this.options.src = src;\n this.options.error = error;\n this.options.loading = loading;\n this.renderSrc = this.options.loading;\n },\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazyManager.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazyManager.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n var _this = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.state.attempt > this.options.attempt - 1 && this.state.error) {\n if (!lazyManager.options.silent) console.log('VueLazyload log: ' + this.options.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n var src = this.options.src;\n loadImageAsync({ src: src }, function (_ref) {\n var src = _ref.src;\n\n _this.renderSrc = src;\n _this.state.loaded = true;\n }, function (e) {\n _this.state.attempt++;\n _this.renderSrc = _this.options.error;\n _this.state.error = true;\n });\n }\n }\n };\n});\n\nvar index = {\n /*\n * install function\n * @param {Vue} Vue\n * @param {object} options lazyload options\n */\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainerMananger({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n\n Vue.prototype.$Lazyload = lazy;\n\n if (options.lazyComponent) {\n Vue.component('lazy-component', LazyComponent(lazy));\n }\n\n if (options.lazyImage) {\n Vue.component('lazy-image', LazyImage(lazy));\n }\n\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport default index;\n","/*!\n * Vue.js v2.7.14\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val);\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INIITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INIITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock) {\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = !shallow && observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar WATCHER = \"watcher\";\nvar WATCHER_CB = \"\".concat(WATCHER, \" callback\");\nvar WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\nvar WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nvar INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (process.env.NODE_ENV !== 'production' && !cb) {\n if (immediate !== undefined) {\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n return invokeWithErrorHandling(fn, null, args, instance, type);\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n process.env.NODE_ENV !== 'production' && warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n process.env.NODE_ENV !== 'production' && warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n if (process.env.NODE_ENV !== 'production') {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n}\n\nvar activeEffectScope;\nvar EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n}());\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\n/**\n * @internal\n */\nfunction recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n}\nfunction resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"inject() can only be used inside setup() or functional components.\");\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.