{"version":3,"file":"js/scripts.js","mappings":"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","sources":["webpack://arta-capital/./node_modules/@barba/core/dist/barba.umd.js","webpack://arta-capital/./node_modules/core-js/internals/a-callable.js","webpack://arta-capital/./node_modules/core-js/internals/a-possible-prototype.js","webpack://arta-capital/./node_modules/core-js/internals/add-to-unscopables.js","webpack://arta-capital/./node_modules/core-js/internals/advance-string-index.js","webpack://arta-capital/./node_modules/core-js/internals/an-instance.js","webpack://arta-capital/./node_modules/core-js/internals/an-object.js","webpack://arta-capital/./node_modules/core-js/internals/array-fill.js","webpack://arta-capital/./node_modules/core-js/internals/array-for-each.js","webpack://arta-capital/./node_modules/core-js/internals/array-from.js","webpack://arta-capital/./node_modules/core-js/internals/array-includes.js","webpack://arta-capital/./node_modules/core-js/internals/array-iteration.js","webpack://arta-capital/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://arta-capital/./node_modules/core-js/internals/array-method-is-strict.js","webpack://arta-capital/./node_modules/core-js/internals/array-reduce.js","webpack://arta-capital/./node_modules/core-js/internals/array-set-length.js","webpack://arta-capital/./node_modules/core-js/internals/array-slice-simple.js","webpack://arta-capital/./node_modules/core-js/internals/array-slice.js","webpack://arta-capital/./node_modules/core-js/internals/array-sort.js","webpack://arta-capital/./node_modules/core-js/internals/array-species-constructor.js","webpack://arta-capital/./node_modules/core-js/internals/array-species-create.js","webpack://arta-capital/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://arta-capital/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://arta-capital/./node_modules/core-js/internals/classof-raw.js","webpack://arta-capital/./node_modules/core-js/internals/classof.js","webpack://arta-capital/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://arta-capital/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://arta-capital/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://arta-capital/./node_modules/core-js/internals/create-iter-result-object.js","webpack://arta-capital/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://arta-capital/./node_modules/core-js/internals/create-property-descriptor.js","webpack://arta-capital/./node_modules/core-js/internals/create-property.js","webpack://arta-capital/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://arta-capital/./node_modules/core-js/internals/define-built-in.js","webpack://arta-capital/./node_modules/core-js/internals/define-built-ins.js","webpack://arta-capital/./node_modules/core-js/internals/define-global-property.js","webpack://arta-capital/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://arta-capital/./node_modules/core-js/internals/descriptors.js","webpack://arta-capital/./node_modules/core-js/internals/document-all.js","webpack://arta-capital/./node_modules/core-js/internals/document-create-element.js","webpack://arta-capital/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://arta-capital/./node_modules/core-js/internals/dom-iterables.js","webpack://arta-capital/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://arta-capital/./node_modules/core-js/internals/engine-ff-version.js","webpack://arta-capital/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://arta-capital/./node_modules/core-js/internals/engine-is-node.js","webpack://arta-capital/./node_modules/core-js/internals/engine-user-agent.js","webpack://arta-capital/./node_modules/core-js/internals/engine-v8-version.js","webpack://arta-capital/./node_modules/core-js/internals/engine-webkit-version.js","webpack://arta-capital/./node_modules/core-js/internals/enum-bug-keys.js","webpack://arta-capital/./node_modules/core-js/internals/export.js","webpack://arta-capital/./node_modules/core-js/internals/fails.js","webpack://arta-capital/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://arta-capital/./node_modules/core-js/internals/function-apply.js","webpack://arta-capital/./node_modules/core-js/internals/function-bind-context.js","webpack://arta-capital/./node_modules/core-js/internals/function-bind-native.js","webpack://arta-capital/./node_modules/core-js/internals/function-bind.js","webpack://arta-capital/./node_modules/core-js/internals/function-call.js","webpack://arta-capital/./node_modules/core-js/internals/function-name.js","webpack://arta-capital/./node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://arta-capital/./node_modules/core-js/internals/function-uncurry-this.js","webpack://arta-capital/./node_modules/core-js/internals/get-built-in.js","webpack://arta-capital/./node_modules/core-js/internals/get-iterator-method.js","webpack://arta-capital/./node_modules/core-js/internals/get-iterator.js","webpack://arta-capital/./node_modules/core-js/internals/get-method.js","webpack://arta-capital/./node_modules/core-js/internals/get-substitution.js","webpack://arta-capital/./node_modules/core-js/internals/global.js","webpack://arta-capital/./node_modules/core-js/internals/has-own-property.js","webpack://arta-capital/./node_modules/core-js/internals/hidden-keys.js","webpack://arta-capital/./node_modules/core-js/internals/html.js","webpack://arta-capital/./node_modules/core-js/internals/ie8-dom-define.js","webpack://arta-capital/./node_modules/core-js/internals/indexed-object.js","webpack://arta-capital/./node_modules/core-js/internals/inherit-if-required.js","webpack://arta-capital/./node_modules/core-js/internals/inspect-source.js","webpack://arta-capital/./node_modules/core-js/internals/internal-state.js","webpack://arta-capital/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://arta-capital/./node_modules/core-js/internals/is-array.js","webpack://arta-capital/./node_modules/core-js/internals/is-callable.js","webpack://arta-capital/./node_modules/core-js/internals/is-constructor.js","webpack://arta-capital/./node_modules/core-js/internals/is-forced.js","webpack://arta-capital/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://arta-capital/./node_modules/core-js/internals/is-object.js","webpack://arta-capital/./node_modules/core-js/internals/is-pure.js","webpack://arta-capital/./node_modules/core-js/internals/is-regexp.js","webpack://arta-capital/./node_modules/core-js/internals/is-symbol.js","webpack://arta-capital/./node_modules/core-js/internals/iterator-close.js","webpack://arta-capital/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://arta-capital/./node_modules/core-js/internals/iterator-define.js","webpack://arta-capital/./node_modules/core-js/internals/iterators-core.js","webpack://arta-capital/./node_modules/core-js/internals/iterators.js","webpack://arta-capital/./node_modules/core-js/internals/length-of-array-like.js","webpack://arta-capital/./node_modules/core-js/internals/make-built-in.js","webpack://arta-capital/./node_modules/core-js/internals/math-sign.js","webpack://arta-capital/./node_modules/core-js/internals/math-trunc.js","webpack://arta-capital/./node_modules/core-js/internals/not-a-regexp.js","webpack://arta-capital/./node_modules/core-js/internals/number-parse-float.js","webpack://arta-capital/./node_modules/core-js/internals/number-parse-int.js","webpack://arta-capital/./node_modules/core-js/internals/object-assign.js","webpack://arta-capital/./node_modules/core-js/internals/object-create.js","webpack://arta-capital/./node_modules/core-js/internals/object-define-properties.js","webpack://arta-capital/./node_modules/core-js/internals/object-define-property.js","webpack://arta-capital/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://arta-capital/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://arta-capital/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://arta-capital/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://arta-capital/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://arta-capital/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://arta-capital/./node_modules/core-js/internals/object-keys-internal.js","webpack://arta-capital/./node_modules/core-js/internals/object-keys.js","webpack://arta-capital/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://arta-capital/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://arta-capital/./node_modules/core-js/internals/object-to-string.js","webpack://arta-capital/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://arta-capital/./node_modules/core-js/internals/own-keys.js","webpack://arta-capital/./node_modules/core-js/internals/path.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-exec.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-flags.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-get-flags.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://arta-capital/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://arta-capital/./node_modules/core-js/internals/require-object-coercible.js","webpack://arta-capital/./node_modules/core-js/internals/schedulers-fix.js","webpack://arta-capital/./node_modules/core-js/internals/set-to-string-tag.js","webpack://arta-capital/./node_modules/core-js/internals/shared-key.js","webpack://arta-capital/./node_modules/core-js/internals/shared-store.js","webpack://arta-capital/./node_modules/core-js/internals/shared.js","webpack://arta-capital/./node_modules/core-js/internals/string-multibyte.js","webpack://arta-capital/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://arta-capital/./node_modules/core-js/internals/string-repeat.js","webpack://arta-capital/./node_modules/core-js/internals/string-trim-forced.js","webpack://arta-capital/./node_modules/core-js/internals/string-trim.js","webpack://arta-capital/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://arta-capital/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://arta-capital/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://arta-capital/./node_modules/core-js/internals/this-number-value.js","webpack://arta-capital/./node_modules/core-js/internals/to-absolute-index.js","webpack://arta-capital/./node_modules/core-js/internals/to-indexed-object.js","webpack://arta-capital/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://arta-capital/./node_modules/core-js/internals/to-length.js","webpack://arta-capital/./node_modules/core-js/internals/to-object.js","webpack://arta-capital/./node_modules/core-js/internals/to-primitive.js","webpack://arta-capital/./node_modules/core-js/internals/to-property-key.js","webpack://arta-capital/./node_modules/core-js/internals/to-string-tag-support.js","webpack://arta-capital/./node_modules/core-js/internals/to-string.js","webpack://arta-capital/./node_modules/core-js/internals/try-to-string.js","webpack://arta-capital/./node_modules/core-js/internals/uid.js","webpack://arta-capital/./node_modules/core-js/internals/url-constructor-detection.js","webpack://arta-capital/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://arta-capital/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://arta-capital/./node_modules/core-js/internals/validate-arguments-length.js","webpack://arta-capital/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://arta-capital/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://arta-capital/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://arta-capital/./node_modules/core-js/internals/well-known-symbol.js","webpack://arta-capital/./node_modules/core-js/internals/whitespaces.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.concat.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.fill.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.filter.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.find.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.for-each.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.from.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.includes.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.index-of.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.is-array.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.iterator.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.join.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.map.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.reduce.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.slice.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.sort.js","webpack://arta-capital/./node_modules/core-js/modules/es.array.splice.js","webpack://arta-capital/./node_modules/core-js/modules/es.date.now.js","webpack://arta-capital/./node_modules/core-js/modules/es.date.to-string.js","webpack://arta-capital/./node_modules/core-js/modules/es.function.bind.js","webpack://arta-capital/./node_modules/core-js/modules/es.function.name.js","webpack://arta-capital/./node_modules/core-js/modules/es.global-this.js","webpack://arta-capital/./node_modules/core-js/modules/es.json.stringify.js","webpack://arta-capital/./node_modules/core-js/modules/es.math.sign.js","webpack://arta-capital/./node_modules/core-js/modules/es.number.constructor.js","webpack://arta-capital/./node_modules/core-js/modules/es.number.is-nan.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.assign.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.define-property.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.keys.js","webpack://arta-capital/./node_modules/core-js/modules/es.object.to-string.js","webpack://arta-capital/./node_modules/core-js/modules/es.parse-float.js","webpack://arta-capital/./node_modules/core-js/modules/es.parse-int.js","webpack://arta-capital/./node_modules/core-js/modules/es.regexp.exec.js","webpack://arta-capital/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.includes.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.iterator.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.match.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.repeat.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.replace.js","webpack://arta-capital/./node_modules/core-js/modules/es.string.trim.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.description.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.for.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.js","webpack://arta-capital/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://arta-capital/./node_modules/core-js/modules/esnext.array.last-index.js","webpack://arta-capital/./node_modules/core-js/modules/esnext.global-this.js","webpack://arta-capital/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://arta-capital/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://arta-capital/./node_modules/core-js/modules/web.set-interval.js","webpack://arta-capital/./node_modules/core-js/modules/web.set-timeout.js","webpack://arta-capital/./node_modules/core-js/modules/web.timers.js","webpack://arta-capital/./node_modules/core-js/modules/web.url-search-params.constructor.js","webpack://arta-capital/./node_modules/core-js/modules/web.url-search-params.js","webpack://arta-capital/./node_modules/core-js/modules/web.url.constructor.js","webpack://arta-capital/./node_modules/core-js/modules/web.url.js","webpack://arta-capital/./node_modules/fslightbox/index.js","webpack://arta-capital/./node_modules/mf-js/modules/cookies/cookie.js","webpack://arta-capital/./node_modules/mf-js/modules/dom/ready.js","webpack://arta-capital/./node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js","webpack://arta-capital/./node_modules/vanilla-lazyload/dist/lazyload.min.js","webpack://arta-capital/webpack/bootstrap","webpack://arta-capital/webpack/runtime/compat get default export","webpack://arta-capital/webpack/runtime/define property getters","webpack://arta-capital/webpack/runtime/global","webpack://arta-capital/webpack/runtime/harmony module decorator","webpack://arta-capital/webpack/runtime/hasOwnProperty shorthand","webpack://arta-capital/./src/js/template-parts/common/header.js","webpack://arta-capital/./src/js/lib/lottie.js","webpack://arta-capital/./src/js/template-parts/common/animationScenes.js","webpack://arta-capital/./src/js/lib/lazy-loading.js","webpack://arta-capital/./src/js/template-parts/components/cta.js","webpack://arta-capital/./src/js/template-parts/components/pagination.js","webpack://arta-capital/./src/js/template-parts/components/filters.js","webpack://arta-capital/./src/js/template-parts/sections/contact-form.js","webpack://arta-capital/./src/js/template-parts/sections/facts.js","webpack://arta-capital/./src/js/template-parts/sections/full-screen-section.js","webpack://arta-capital/./src/js/template-parts/sections/map.js","webpack://arta-capital/./src/js/template-parts/sections/numbers.js","webpack://arta-capital/./node_modules/ssr-window/ssr-window.esm.js","webpack://arta-capital/./node_modules/dom7/dom7.esm.js","webpack://arta-capital/./node_modules/swiper/shared/dom.js","webpack://arta-capital/./node_modules/swiper/shared/get-support.js","webpack://arta-capital/./node_modules/swiper/shared/get-device.js","webpack://arta-capital/./node_modules/swiper/shared/get-browser.js","webpack://arta-capital/./node_modules/swiper/shared/utils.js","webpack://arta-capital/./node_modules/swiper/core/events-emitter.js","webpack://arta-capital/./node_modules/swiper/core/update/index.js","webpack://arta-capital/./node_modules/swiper/core/update/updateSize.js","webpack://arta-capital/./node_modules/swiper/core/update/updateSlides.js","webpack://arta-capital/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://arta-capital/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://arta-capital/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://arta-capital/./node_modules/swiper/core/update/updateProgress.js","webpack://arta-capital/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://arta-capital/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://arta-capital/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://arta-capital/./node_modules/swiper/core/translate/index.js","webpack://arta-capital/./node_modules/swiper/core/translate/getTranslate.js","webpack://arta-capital/./node_modules/swiper/core/translate/setTranslate.js","webpack://arta-capital/./node_modules/swiper/core/translate/minTranslate.js","webpack://arta-capital/./node_modules/swiper/core/translate/maxTranslate.js","webpack://arta-capital/./node_modules/swiper/core/translate/translateTo.js","webpack://arta-capital/./node_modules/swiper/core/transition/transitionEmit.js","webpack://arta-capital/./node_modules/swiper/core/transition/index.js","webpack://arta-capital/./node_modules/swiper/core/transition/setTransition.js","webpack://arta-capital/./node_modules/swiper/core/transition/transitionStart.js","webpack://arta-capital/./node_modules/swiper/core/transition/transitionEnd.js","webpack://arta-capital/./node_modules/swiper/core/slide/index.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideTo.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideToLoop.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideNext.js","webpack://arta-capital/./node_modules/swiper/core/slide/slidePrev.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideReset.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideToClosest.js","webpack://arta-capital/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://arta-capital/./node_modules/swiper/core/loop/index.js","webpack://arta-capital/./node_modules/swiper/core/loop/loopCreate.js","webpack://arta-capital/./node_modules/swiper/core/loop/loopFix.js","webpack://arta-capital/./node_modules/swiper/core/loop/loopDestroy.js","webpack://arta-capital/./node_modules/swiper/core/grab-cursor/index.js","webpack://arta-capital/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://arta-capital/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://arta-capital/./node_modules/swiper/core/events/onTouchStart.js","webpack://arta-capital/./node_modules/swiper/core/events/onTouchMove.js","webpack://arta-capital/./node_modules/swiper/core/events/onTouchEnd.js","webpack://arta-capital/./node_modules/swiper/core/events/onResize.js","webpack://arta-capital/./node_modules/swiper/core/events/onClick.js","webpack://arta-capital/./node_modules/swiper/core/events/onScroll.js","webpack://arta-capital/./node_modules/swiper/core/events/index.js","webpack://arta-capital/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://arta-capital/./node_modules/swiper/core/breakpoints/index.js","webpack://arta-capital/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://arta-capital/./node_modules/swiper/core/classes/index.js","webpack://arta-capital/./node_modules/swiper/core/classes/addClasses.js","webpack://arta-capital/./node_modules/swiper/core/classes/removeClasses.js","webpack://arta-capital/./node_modules/swiper/core/check-overflow/index.js","webpack://arta-capital/./node_modules/swiper/core/defaults.js","webpack://arta-capital/./node_modules/swiper/core/moduleExtendParams.js","webpack://arta-capital/./node_modules/swiper/core/core.js","webpack://arta-capital/./node_modules/swiper/core/images/index.js","webpack://arta-capital/./node_modules/swiper/core/images/loadImage.js","webpack://arta-capital/./node_modules/swiper/core/images/preloadImages.js","webpack://arta-capital/./node_modules/swiper/core/modules/resize/resize.js","webpack://arta-capital/./node_modules/swiper/core/modules/observer/observer.js","webpack://arta-capital/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://arta-capital/./node_modules/swiper/shared/classes-to-selector.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/methods/appendSlide.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/methods/prependSlide.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/methods/addSlide.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/methods/removeSlide.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js","webpack://arta-capital/./node_modules/swiper/shared/effect-init.js","webpack://arta-capital/./node_modules/swiper/shared/effect-target.js","webpack://arta-capital/./node_modules/swiper/shared/effect-virtual-transition-end.js","webpack://arta-capital/./node_modules/swiper/shared/create-shadow.js","webpack://arta-capital/./node_modules/swiper/swiper-bundle.esm.js","webpack://arta-capital/./node_modules/swiper/modules/virtual/virtual.js","webpack://arta-capital/./node_modules/swiper/modules/keyboard/keyboard.js","webpack://arta-capital/./node_modules/swiper/modules/mousewheel/mousewheel.js","webpack://arta-capital/./node_modules/swiper/modules/navigation/navigation.js","webpack://arta-capital/./node_modules/swiper/modules/pagination/pagination.js","webpack://arta-capital/./node_modules/swiper/modules/scrollbar/scrollbar.js","webpack://arta-capital/./node_modules/swiper/modules/parallax/parallax.js","webpack://arta-capital/./node_modules/swiper/modules/zoom/zoom.js","webpack://arta-capital/./node_modules/swiper/modules/lazy/lazy.js","webpack://arta-capital/./node_modules/swiper/modules/controller/controller.js","webpack://arta-capital/./node_modules/swiper/modules/a11y/a11y.js","webpack://arta-capital/./node_modules/swiper/modules/history/history.js","webpack://arta-capital/./node_modules/swiper/modules/hash-navigation/hash-navigation.js","webpack://arta-capital/./node_modules/swiper/modules/autoplay/autoplay.js","webpack://arta-capital/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://arta-capital/./node_modules/swiper/modules/free-mode/free-mode.js","webpack://arta-capital/./node_modules/swiper/modules/grid/grid.js","webpack://arta-capital/./node_modules/swiper/modules/manipulation/manipulation.js","webpack://arta-capital/./node_modules/swiper/modules/effect-fade/effect-fade.js","webpack://arta-capital/./node_modules/swiper/modules/effect-cube/effect-cube.js","webpack://arta-capital/./node_modules/swiper/modules/effect-flip/effect-flip.js","webpack://arta-capital/./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js","webpack://arta-capital/./node_modules/swiper/modules/effect-creative/effect-creative.js","webpack://arta-capital/./node_modules/swiper/modules/effect-cards/effect-cards.js","webpack://arta-capital/./src/js/template-parts/sections/slider.js","webpack://arta-capital/./src/js/modules-loader.js","webpack://arta-capital/./src/js/lib/barba.js","webpack://arta-capital/./src/js/lib/cookies/consent-ui.js","webpack://arta-capital/./src/js/lib/cookies/consent-manager.js","webpack://arta-capital/./node_modules/tartemeringuee/utils/addscript.js","webpack://arta-capital/./node_modules/tartemeringuee/services/gtag.js","webpack://arta-capital/./src/js/template-parts/popups/cookies.js","webpack://arta-capital/./src/js/lib/disable-scroll.js","webpack://arta-capital/./src/main.js"],"sourcesContent":["!function(t,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(t=t||self).barba=n()}(this,(function(){function t(t,n){for(var r=0;r-1)&&(l=g,u=u.slice(0,b))}u&&(e.push(u),u=\"\",c=!1);var E=m||p,x=l||f;e.push({name:d||i++,prefix:l,delimiter:x,optional:\"?\"===w||\"*\"===w,repeat:\"+\"===w||\"*\"===w,pattern:E?A(E):\"[^\"+k(x===f?x:x+f)+\"]+?\"})}}return(u||o1?t>0?\"forward\":\"back\":0===t?\"popstate\":t>0?\"back\":\"forward\"},n(t,[{key:\"current\",get:function(){return this.h[this.v]}},{key:\"state\",get:function(){return this.h[this.h.length-1]}},{key:\"previous\",get:function(){return this.v<1?null:this.h[this.v-1]}},{key:\"size\",get:function(){return this.h.length}}]),t}()),L=function(t,n){try{var r=function(){if(!n.next.html)return Promise.resolve(t).then((function(t){var r=n.next;if(t){var e=j.toElement(t);r.namespace=j.getNamespace(e),r.container=j.getContainer(e),r.html=t,M.update({ns:r.namespace});var i=j.toDocument(t);document.title=i.title}}))}();return Promise.resolve(r&&r.then?r.then((function(){})):void 0)}catch(t){return Promise.reject(t)}},$=d,_={__proto__:null,update:L,nextTick:function(){return new Promise((function(t){window.requestAnimationFrame(t)}))},pathToRegexp:$},q=function(){return window.location.origin},B=function(t){return void 0===t&&(t=window.location.href),U(t).port},U=function(t){var n,r=t.match(/:\\d+/);if(null===r)/^http/.test(t)&&(n=80),/^https/.test(t)&&(n=443);else{var e=r[0].substring(1);n=parseInt(e,10)}var i,o=t.replace(q(),\"\"),u={},f=o.indexOf(\"#\");f>=0&&(i=o.slice(f+1),o=o.slice(0,f));var s=o.indexOf(\"?\");return s>=0&&(u=D(o.slice(s+1)),o=o.slice(0,s)),{hash:i,path:o,port:n,query:u}},D=function(t){return t.split(\"&\").reduce((function(t,n){var r=n.split(\"=\");return t[r[0]]=r[1],t}),{})},F=function(t){return void 0===t&&(t=window.location.href),t.replace(/(\\/#.*|\\/|#.*)$/,\"\")},H={__proto__:null,getHref:function(){return window.location.href},getOrigin:q,getPort:B,getPath:function(t){return void 0===t&&(t=window.location.href),U(t).path},parse:U,parseQuery:D,clean:F};function I(t,n,r){return void 0===n&&(n=2e3),new Promise((function(e,i){var o=new XMLHttpRequest;o.onreadystatechange=function(){if(o.readyState===XMLHttpRequest.DONE)if(200===o.status)e(o.responseText);else if(o.status){var n={status:o.status,statusText:o.statusText};r(t,n),i(n)}},o.ontimeout=function(){var e=new Error(\"Timeout error [\"+n+\"]\");r(t,e),i(e)},o.onerror=function(){var n=new Error(\"Fetch error\");r(t,n),i(n)},o.open(\"GET\",t),o.timeout=n,o.setRequestHeader(\"Accept\",\"text/html,application/xhtml+xml,application/xml\"),o.setRequestHeader(\"x-barba\",\"yes\"),o.send()}))}var C=function(t){return!!t&&(\"object\"==typeof t||\"function\"==typeof t)&&\"function\"==typeof t.then};function N(t,n){return void 0===n&&(n={}),function(){for(var r=arguments.length,e=new Array(r),i=0;i1?r-1:0),i=1;i1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey},K=function(t){var n=t.el;return n.hasAttribute(\"target\")&&\"_blank\"===n.target},V=function(t){var n=t.el;return void 0!==n.protocol&&window.location.protocol!==n.protocol||void 0!==n.hostname&&window.location.hostname!==n.hostname},Y=function(t){var n=t.el;return void 0!==n.port&&B()!==B(n.href)},Z=function(t){var n=t.el;return n.getAttribute&&\"string\"==typeof n.getAttribute(\"download\")},tt=function(t){return t.el.hasAttribute(S.prefix+\"-\"+S.prevent)},nt=function(t){return Boolean(t.el.closest(\"[\"+S.prefix+\"-\"+S.prevent+'=\"all\"]'))},rt=function(t){var n=t.href;return F(n)===F()&&B(n)===B()},et=function(t){function n(n){var r;return(r=t.call(this,n)||this).suite=[],r.tests=new Map,r.init(),r}e(n,t);var r=n.prototype;return r.init=function(){this.add(\"pushState\",Q),this.add(\"exists\",W),this.add(\"newTab\",J),this.add(\"blank\",K),this.add(\"corsDomain\",V),this.add(\"corsPort\",Y),this.add(\"download\",Z),this.add(\"preventSelf\",tt),this.add(\"preventAll\",nt),this.add(\"sameUrl\",rt,!1)},r.add=function(t,n,r){void 0===r&&(r=!0),this.tests.set(t,n),r&&this.suite.push(t)},r.run=function(t,n,r,e){return this.tests.get(t)({el:n,event:r,href:e})},r.checkLink=function(t,n,r){var e=this;return this.suite.some((function(i){return e.run(i,t,n,r)}))},n}(z),it=function(t){function n(r,e){var i;void 0===e&&(e=\"Barba error\");for(var o=arguments.length,u=new Array(o>2?o-2:0),f=2;f0&&c.push(u),(s=this.logger).info.apply(s,[\"Transition found [\"+f.join(\",\")+\"]\"].concat(c))}else this.logger.info(\"No transition found [\"+f.join(\",\")+\"]\");return o},n.update=function(){var t=this;this.all=this.all.map((function(n){return t.T(n)})).sort((function(t,n){return t.priority-n.priority})).reverse().map((function(t){return delete t.priority,t})),this.page=this.all.filter((function(t){return void 0!==t.leave||void 0!==t.enter})),this.once=this.all.filter((function(t){return void 0!==t.once}))},n.R=function(t,n,r,e,i){var o=!0,u=!1,f=t,s=n.name,c=s,a=s,h=s,v=i?f[i]:f,l=\"to\"===i?r.next:r.current;if(i?v&&v[s]:v[s]){switch(n.type){case\"strings\":default:var d=Array.isArray(v[c])?v[c]:[v[c]];l[c]&&-1!==d.indexOf(l[c])&&(u=!0),-1===d.indexOf(l[c])&&(o=!1);break;case\"object\":var m=Array.isArray(v[a])?v[a]:[v[a]];l[a]?(l[a].name&&-1!==m.indexOf(l[a].name)&&(u=!0),-1===m.indexOf(l[a].name)&&(o=!1)):o=!1;break;case\"function\":v[h](r)?u=!0:o=!1}u&&(i?(e[i]=e[i]||{},e[i][s]=f[i][s]):e[s]=f[s])}return o},n.O=function(t,n,r){var e=0;return(t[n]||t.from&&t.from[n]||t.to&&t.to[n])&&(e+=Math.pow(10,r),t.from&&t.from[n]&&(e+=1),t.to&&t.to[n]&&(e+=2)),e},n.T=function(t){var n=this;t.priority=0;var r=0;return this.A.forEach((function(e,i){r+=n.O(t,e.name,i+1)})),t.priority=r,t},t}(),ut=function(){function t(t){void 0===t&&(t=[]),this.logger=new l(\"@barba/core\"),this.S=!1,this.store=new ot(t)}var r=t.prototype;return r.get=function(t,n){return this.store.resolve(t,n)},r.doOnce=function(t){var n=t.data,r=t.transition;try{var e=function(){i.S=!1},i=this,o=r||{};i.S=!0;var u=s((function(){return Promise.resolve(i.j(\"beforeOnce\",n,o)).then((function(){return Promise.resolve(i.once(n,o)).then((function(){return Promise.resolve(i.j(\"afterOnce\",n,o)).then((function(){}))}))}))}),(function(t){i.S=!1,i.logger.debug(\"Transition error [before/after/once]\"),i.logger.error(t)}));return Promise.resolve(u&&u.then?u.then(e):e())}catch(t){return Promise.reject(t)}},r.doPage=function(t){var n=t.data,r=t.transition,e=t.page,i=t.wrapper;try{var o=function(t){if(u)return t;f.S=!1},u=!1,f=this,c=r||{},a=!0===c.sync||!1;f.S=!0;var h=s((function(){function t(){return Promise.resolve(f.j(\"before\",n,c)).then((function(){var t=!1;function r(r){return t?r:Promise.resolve(f.remove(n)).then((function(){return Promise.resolve(f.j(\"after\",n,c)).then((function(){}))}))}var o=function(){if(a)return s((function(){return Promise.resolve(f.add(n,i)).then((function(){return Promise.resolve(f.j(\"beforeLeave\",n,c)).then((function(){return Promise.resolve(f.j(\"beforeEnter\",n,c)).then((function(){return Promise.resolve(Promise.all([f.leave(n,c),f.enter(n,c)])).then((function(){return Promise.resolve(f.j(\"afterLeave\",n,c)).then((function(){return Promise.resolve(f.j(\"afterEnter\",n,c)).then((function(){}))}))}))}))}))}))}),(function(t){if(f.M(t))throw new it(t,\"Transition error [sync]\")}));var r=function(r){return t?r:s((function(){var t=function(){if(!1!==o)return Promise.resolve(f.add(n,i)).then((function(){return Promise.resolve(f.j(\"beforeEnter\",n,c)).then((function(){return Promise.resolve(f.enter(n,c,o)).then((function(){return Promise.resolve(f.j(\"afterEnter\",n,c)).then((function(){}))}))}))}))}();if(t&&t.then)return t.then((function(){}))}),(function(t){if(f.M(t))throw new it(t,\"Transition error [before/after/enter]\")}))},o=!1,u=s((function(){return Promise.resolve(f.j(\"beforeLeave\",n,c)).then((function(){return Promise.resolve(Promise.all([f.leave(n,c),L(e,n)]).then((function(t){return t[0]}))).then((function(t){return o=t,Promise.resolve(f.j(\"afterLeave\",n,c)).then((function(){}))}))}))}),(function(t){if(f.M(t))throw new it(t,\"Transition error [before/after/leave]\")}));return u&&u.then?u.then(r):r(u)}();return o&&o.then?o.then(r):r(o)}))}var r=function(){if(a)return Promise.resolve(L(e,n)).then((function(){}))}();return r&&r.then?r.then(t):t()}),(function(t){if(f.S=!1,t.name&&\"BarbaError\"===t.name)throw f.logger.debug(t.label),f.logger.error(t.error),t;throw f.logger.debug(\"Transition error [page]\"),f.logger.error(t),t}));return Promise.resolve(h&&h.then?h.then(o):o(h))}catch(t){return Promise.reject(t)}},r.once=function(t,n){try{return Promise.resolve(X.do(\"once\",t,n)).then((function(){return n.once?N(n.once,n)(t):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.leave=function(t,n){try{return Promise.resolve(X.do(\"leave\",t,n)).then((function(){return n.leave?N(n.leave,n)(t):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.enter=function(t,n,r){try{return Promise.resolve(X.do(\"enter\",t,n)).then((function(){return n.enter?N(n.enter,n)(t,r):Promise.resolve()}))}catch(t){return Promise.reject(t)}},r.add=function(t,n){try{return j.addContainer(t.next.container,n),X.do(\"nextAdded\",t),Promise.resolve()}catch(t){return Promise.reject(t)}},r.remove=function(t){try{return j.removeContainer(t.current.container),X.do(\"currentRemoved\",t),Promise.resolve()}catch(t){return Promise.reject(t)}},r.M=function(t){return t.message?!/Timeout error|Fetch error/.test(t.message):!t.status},r.j=function(t,n,r){try{return Promise.resolve(X.do(t,n,r)).then((function(){return r[t]?N(r[t],r)(n):Promise.resolve()}))}catch(t){return Promise.reject(t)}},n(t,[{key:\"isRunning\",get:function(){return this.S},set:function(t){this.S=t}},{key:\"hasOnce\",get:function(){return this.store.once.length>0}},{key:\"hasSelf\",get:function(){return this.store.all.some((function(t){return\"self\"===t.name}))}},{key:\"shouldWait\",get:function(){return this.store.all.some((function(t){return t.to&&!t.to.route||t.sync}))}}]),t}(),ft=function(){function t(t){var n=this;this.names=[\"beforeLeave\",\"afterLeave\",\"beforeEnter\",\"afterEnter\"],this.byNamespace=new Map,0!==t.length&&(t.forEach((function(t){n.byNamespace.set(t.namespace,t)})),this.names.forEach((function(t){X[t](n.L(t))})))}return t.prototype.L=function(t){var n=this;return function(r){var e=t.match(/enter/i)?r.next:r.current,i=n.byNamespace.get(e.namespace);return i&&i[t]?N(i[t],i)(r):Promise.resolve()}},t}();Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){var n=this;do{if(n.matches(t))return n;n=n.parentElement||n.parentNode}while(null!==n&&1===n.nodeType);return null});var st={container:null,html:\"\",namespace:\"\",url:{hash:\"\",href:\"\",path:\"\",port:null,query:{}}};return new(function(){function t(){this.version=a,this.schemaPage=st,this.Logger=l,this.logger=new l(\"@barba/core\"),this.plugins=[],this.hooks=X,this.dom=j,this.helpers=_,this.history=M,this.request=I,this.url=H}var e=t.prototype;return e.use=function(t,n){var r=this.plugins;r.indexOf(t)>-1?this.logger.warn(\"Plugin [\"+t.name+\"] already installed.\"):\"function\"==typeof t.install?(t.install(this,n),r.push(t)):this.logger.warn(\"Plugin [\"+t.name+'] has no \"install\" method.')},e.init=function(t){var n=void 0===t?{}:t,e=n.transitions,i=void 0===e?[]:e,o=n.views,u=void 0===o?[]:o,f=n.schema,s=void 0===f?S:f,c=n.requestError,a=n.timeout,h=void 0===a?2e3:a,v=n.cacheIgnore,d=void 0!==v&&v,m=n.prefetchIgnore,p=void 0!==m&&m,w=n.preventRunning,b=void 0!==w&&w,y=n.prevent,P=void 0===y?null:y,g=n.debug,E=n.logLevel;if(l.setLevel(!0===(void 0!==g&&g)?\"debug\":void 0===E?\"off\":E),this.logger.info(this.version),Object.keys(s).forEach((function(t){S[t]&&(S[t]=s[t])})),this.$=c,this.timeout=h,this.cacheIgnore=d,this.prefetchIgnore=p,this.preventRunning=b,this._=this.dom.getWrapper(),!this._)throw new Error(\"[@barba/core] No Barba wrapper found\");this._.setAttribute(\"aria-live\",\"polite\"),this.q();var x=this.data.current;if(!x.container)throw new Error(\"[@barba/core] No Barba container found\");if(this.cache=new G(d),this.prevent=new et(p),this.transitions=new ut(i),this.views=new ft(u),null!==P){if(\"function\"!=typeof P)throw new Error(\"[@barba/core] Prevent should be a function\");this.prevent.add(\"preventCustom\",P)}this.history.init(x.url.href,x.namespace),this.B=this.B.bind(this),this.U=this.U.bind(this),this.D=this.D.bind(this),this.F(),this.plugins.forEach((function(t){return t.init()}));var k=this.data;k.trigger=\"barba\",k.next=k.current,k.current=r({},this.schemaPage),this.hooks.do(\"ready\",k),this.once(k),this.q()},e.destroy=function(){this.q(),this.H(),this.history.clear(),this.hooks.clear(),this.plugins=[]},e.force=function(t){window.location.assign(t)},e.go=function(t,n,r){var e;if(void 0===n&&(n=\"barba\"),this.transitions.isRunning)this.force(t);else if(!(e=\"popstate\"===n?this.history.current&&this.url.getPath(this.history.current.url)===this.url.getPath(t):this.prevent.run(\"sameUrl\",null,null,t))||this.transitions.hasSelf)return n=this.history.change(t,n,r),r&&(r.stopPropagation(),r.preventDefault()),this.page(t,n,e)},e.once=function(t){try{var n=this;return Promise.resolve(n.hooks.do(\"beforeEnter\",t)).then((function(){function r(){return Promise.resolve(n.hooks.do(\"afterEnter\",t)).then((function(){}))}var e=function(){if(n.transitions.hasOnce){var r=n.transitions.get(t,{once:!0});return Promise.resolve(n.transitions.doOnce({transition:r,data:t})).then((function(){}))}}();return e&&e.then?e.then(r):r()}))}catch(t){return Promise.reject(t)}},e.page=function(t,n,e){try{var i=function(){var t=o.data;return Promise.resolve(o.hooks.do(\"page\",t)).then((function(){var n=s((function(){var n=o.transitions.get(t,{once:!1,self:e});return Promise.resolve(o.transitions.doPage({data:t,page:u,transition:n,wrapper:o._})).then((function(){o.q()}))}),(function(){0===l.getLevel()&&o.force(t.current.url.href)}));if(n&&n.then)return n.then((function(){}))}))},o=this;o.data.next.url=r({href:t},o.url.parse(t)),o.data.trigger=n;var u=o.cache.has(t)?o.cache.update(t,{action:\"click\"}).request:o.cache.set(t,o.request(t,o.timeout,o.onRequestError.bind(o,n)),\"click\").request,f=function(){if(o.transitions.shouldWait)return Promise.resolve(L(u,o.data)).then((function(){}))}();return Promise.resolve(f&&f.then?f.then(i):i())}catch(t){return Promise.reject(t)}},e.onRequestError=function(t){this.transitions.isRunning=!1;for(var n=arguments.length,r=new Array(n>1?n-1:0),e=1;e 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\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","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\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 toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\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 wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\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","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var makeBuiltIn = require('../internals/make-built-in');\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n if (descriptor.get) makeBuiltIn(descriptor.get, name, { getter: true });\n if (descriptor.set) makeBuiltIn(descriptor.set, name, { setter: true });\n return defineProperty.f(target, name, descriptor);\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 defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\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\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","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('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","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\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","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\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');\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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\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 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 = function (fn) {\n return NATIVE_BIND ? uncurryThisWithBind(fn) : function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\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 uncurryThisRaw(fn);\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 classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\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 uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\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 isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\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 wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\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 uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\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 isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\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 call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\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 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;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\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 (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^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 = TEMPLATE.join(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","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n == 0 || n != n ? n : n < 0 ? -1 : 1;\n};\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 isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : $parseFloat;\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar hex = /^[+-]?0x/i;\nvar exec = uncurryThis(hex.exec);\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseInt(Object(ITERATOR)); }));\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(toString(string));\n return $parseInt(S, (radix >>> 0) || (exec(hex, S) ? 16 : 10));\n} : $parseInt;\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\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","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\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 hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\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","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\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","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\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 global = require('../internals/global');\n\nmodule.exports = global;\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\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","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar isCallable = require('../internals/is-callable');\nvar userAgent = require('../internals/engine-user-agent');\nvar arraySlice = require('../internals/array-slice');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\n\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar Function = global.Function;\n\nvar wrap = function (scheduler) {\n return MSIE ? function (handler, timeout /* , ...arguments */) {\n var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = boundArgs ? arraySlice(arguments, 2) : undefined;\n return scheduler(boundArgs ? function () {\n apply(fn, this, args);\n } : fn, timeout);\n } : scheduler;\n};\n\n// ie9- setTimeout & setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers\nmodule.exports = {\n // `setTimeout` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n setTimeout: wrap(global.setTimeout),\n // `setInterval` method\n // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n setInterval: wrap(global.setInterval)\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\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.25.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.25.5/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\n\nvar $RangeError = RangeError;\nvar exec = uncurryThis(regexSeparators.exec);\nvar floor = Math.floor;\nvar fromCharCode = String.fromCharCode;\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar split = uncurryThis(''.split);\nvar toLowerCase = uncurryThis(''.toLowerCase);\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = charCodeAt(string, counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = charCodeAt(string, counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n push(output, ((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n push(output, value);\n counter--;\n }\n } else {\n push(output, value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n while (delta > baseMinusTMin * tMax >> 1) {\n delta = floor(delta / baseMinusTMin);\n k += base;\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n push(output, fromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n push(output, delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw $RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n var k = base;\n while (true) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n push(output, fromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n k += base;\n }\n\n push(output, fromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n handledCPCount++;\n }\n }\n\n delta++;\n n++;\n }\n return join(output, '');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = split(replace(toLowerCase(input), regexSeparators, '\\u002E'), '.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n push(encoded, exec(regexNonASCII, label) ? 'xn--' + encode(label) : label);\n }\n return join(encoded, '.');\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\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 call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\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 wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\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","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line unicorn/relative-url-style -- required for testing\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\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 path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\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 WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar forEach = require('../internals/array-for-each');\n\n// `Array.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n$({ target: 'Array', proto: true, forced: [].forEach != forEach }, {\n forEach: forEach\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\n/* eslint-disable es/no-array-prototype-indexof -- required for testing */\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeIndexOf = uncurryThis([].indexOf);\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\n\n// `Array.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n var fromIndex = arguments.length > 1 ? arguments[1] : undefined;\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf(this, searchElement, fromIndex) || 0\n : $indexOf(this, searchElement, fromIndex);\n }\n});\n","var $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\n\n// `Array.isArray` method\n// https://tc39.es/ecma262/#sec-array.isarray\n$({ target: 'Array', stat: true }, {\n isArray: isArray\n});\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.splice` method\n// https://tc39.es/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) deletePropertyOrThrow(O, k - 1);\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n setArrayLength(O, len - actualDeleteCount + insertCount);\n return A;\n }\n});\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar $Date = Date;\nvar thisTimeValue = uncurryThis($Date.prototype.getTime);\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return thisTimeValue(new $Date());\n }\n});\n","// TODO: Remove from `core-js@4`\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar DatePrototype = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar nativeDateToString = uncurryThis(DatePrototype[TO_STRING]);\nvar thisTimeValue = uncurryThis(DatePrototype.getTime);\n\n// `Date.prototype.toString` method\n// https://tc39.es/ecma262/#sec-date.prototype.tostring\nif (String(new Date(NaN)) != INVALID_DATE) {\n defineBuiltIn(DatePrototype, TO_STRING, function toString() {\n var value = thisTimeValue(this);\n // eslint-disable-next-line no-self-compare -- NaN check\n return value === value ? nativeDateToString(this) : INVALID_DATE;\n });\n}\n","// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind');\n\n// `Function.prototype.bind` method\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n$({ target: 'Function', proto: true, forced: Function.bind !== bind }, {\n bind: bind\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true, forced: global.globalThis !== global }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar arraySlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal of /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal of /^0o[0-7]+$/i\n default: return +it;\n }\n digits = arraySlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nif (isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'))) {\n var NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n var dummy = this;\n // check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); })\n ? inheritIfRequired(Object(n), dummy, NumberWrapper) : n;\n };\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(NativeNumber) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(NativeNumber, key = keys[j]) && !hasOwn(NumberWrapper, key)) {\n defineProperty(NumberWrapper, key, getOwnPropertyDescriptor(NativeNumber, key));\n }\n }\n NumberWrapper.prototype = NumberPrototype;\n NumberPrototype.constructor = NumberWrapper;\n defineBuiltIn(global, NUMBER, NumberWrapper, { constructor: true });\n}\n","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number != number;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineProperty = require('../internals/object-define-property').f;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\n// eslint-disable-next-line es/no-object-defineproperty -- safe\n$({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty, sham: !DESCRIPTORS }, {\n defineProperty: defineProperty\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","var $ = require('../internals/export');\nvar $parseInt = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != $parseInt }, {\n parseInt: $parseInt\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (string) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(nativeMatch, rx, S);\n\n if (res.done) return res.value;\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = toString(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar DESCRIPTORS = require('../internals/descriptors');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\n\n// `Array.prototype.lastIndex` getter\n// https://github.com/keithamus/proposal-array-last\nif (DESCRIPTORS) {\n defineBuiltInAccessor(Array.prototype, 'lastIndex', {\n configurable: true,\n get: function lastIndex() {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n return len == 0 ? 0 : len - 1;\n }\n });\n\n addToUnscopables('lastIndex');\n}\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setInterval = require('../internals/schedulers-fix').setInterval;\n\n// ie9- setInterval additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval\n$({ global: true, bind: true, forced: global.setInterval !== setInterval }, {\n setInterval: setInterval\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setTimeout = require('../internals/schedulers-fix').setTimeout;\n\n// ie9- setTimeout additional parameters fix\n// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout\n$({ global: true, bind: true, forced: global.setTimeout !== setTimeout }, {\n setTimeout: setTimeout\n});\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/web.set-interval');\nrequire('../modules/web.set-timeout');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar $toString = require('../internals/to-string');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arraySort = require('../internals/array-sort');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nvar safeGetBuiltIn = function (name) {\n if (!DESCRIPTORS) return global[name];\n var descriptor = getOwnPropertyDescriptor(global, name);\n return descriptor && descriptor.value;\n};\n\nvar nativeFetch = safeGetBuiltIn('fetch');\nvar NativeRequest = safeGetBuiltIn('Request');\nvar Headers = safeGetBuiltIn('Headers');\nvar RequestPrototype = NativeRequest && NativeRequest.prototype;\nvar HeadersPrototype = Headers && Headers.prototype;\nvar RegExp = global.RegExp;\nvar TypeError = global.TypeError;\nvar decodeURIComponent = global.decodeURIComponent;\nvar encodeURIComponent = global.encodeURIComponent;\nvar charAt = uncurryThis(''.charAt);\nvar join = uncurryThis([].join);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar splice = uncurryThis([].splice);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = replace(it, plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = replace(result, percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replacements = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replacements[match];\n};\n\nvar serialize = function (it) {\n return replace(encodeURIComponent(it), find, replacer);\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n}, true);\n\nvar URLSearchParamsState = function (init) {\n this.entries = [];\n this.url = null;\n\n if (init !== undefined) {\n if (isObject(init)) this.parseObject(init);\n else this.parseQuery(typeof init == 'string' ? charAt(init, 0) === '?' ? stringSlice(init, 1) : init : $toString(init));\n }\n};\n\nURLSearchParamsState.prototype = {\n type: URL_SEARCH_PARAMS,\n bindURL: function (url) {\n this.url = url;\n this.update();\n },\n parseObject: function (object) {\n var iteratorMethod = getIteratorMethod(object);\n var iterator, next, step, entryIterator, entryNext, first, second;\n\n if (iteratorMethod) {\n iterator = getIterator(object, iteratorMethod);\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = call(entryNext, entryIterator)).done ||\n (second = call(entryNext, entryIterator)).done ||\n !call(entryNext, entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n push(this.entries, { key: $toString(first.value), value: $toString(second.value) });\n }\n } else for (var key in object) if (hasOwn(object, key)) {\n push(this.entries, { key: key, value: $toString(object[key]) });\n }\n },\n parseQuery: function (query) {\n if (query) {\n var attributes = split(query, '&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = split(attribute, '=');\n push(this.entries, {\n key: deserialize(shift(entry)),\n value: deserialize(join(entry, '='))\n });\n }\n }\n }\n },\n serialize: function () {\n var entries = this.entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n push(result, serialize(entry.key) + '=' + serialize(entry.value));\n } return join(result, '&');\n },\n update: function () {\n this.entries.length = 0;\n this.parseQuery(this.url.query);\n },\n updateURL: function () {\n if (this.url) this.url.update();\n }\n};\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsPrototype);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n setInternalState(this, new URLSearchParamsState(init));\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\ndefineBuiltIns(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n push(state.entries, { key: $toString(name), value: $toString(value) });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) splice(entries, index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) push(result, entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = $toString(name);\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = $toString(name);\n var val = $toString(value);\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) splice(entries, index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) push(entries, { key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n arraySort(state.entries, function (a, b) {\n return a.key > b.key ? 1 : -1;\n });\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\ndefineBuiltIn(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries, { name: 'entries' });\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\ndefineBuiltIn(URLSearchParamsPrototype, 'toString', function toString() {\n return getInternalParamsState(this).serialize();\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` and `Request` for correct work with polyfilled `URLSearchParams`\nif (!USE_NATIVE_URL && isCallable(Headers)) {\n var headersHas = uncurryThis(HeadersPrototype.has);\n var headersSet = uncurryThis(HeadersPrototype.set);\n\n var wrapRequestOptions = function (init) {\n if (isObject(init)) {\n var body = init.body;\n var headers;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headersHas(headers, 'content-type')) {\n headersSet(headers, 'content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n return create(init, {\n body: createPropertyDescriptor(0, $toString(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n } return init;\n };\n\n if (isCallable(nativeFetch)) {\n $({ global: true, enumerable: true, dontCallGetSet: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n return nativeFetch(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n }\n });\n }\n\n if (isCallable(NativeRequest)) {\n var RequestConstructor = function Request(input /* , init */) {\n anInstance(this, RequestPrototype);\n return new NativeRequest(input, arguments.length > 1 ? wrapRequestOptions(arguments[1]) : {});\n };\n\n RequestPrototype.constructor = RequestConstructor;\n RequestConstructor.prototype = RequestPrototype;\n\n $({ global: true, constructor: true, dontCallGetSet: true, forced: true }, {\n Request: RequestConstructor\n });\n }\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url-search-params.constructor');\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/url-constructor-detection');\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has-own-property');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar arraySlice = require('../internals/array-slice-simple');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar $toString = require('../internals/to-string');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar URLSearchParamsModule = require('../modules/web.url-search-params.constructor');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\n\nvar NativeURL = global.URL;\nvar TypeError = global.TypeError;\nvar parseInt = global.parseInt;\nvar floor = Math.floor;\nvar pow = Math.pow;\nvar charAt = uncurryThis(''.charAt);\nvar exec = uncurryThis(/./.exec);\nvar join = uncurryThis([].join);\nvar numberToString = uncurryThis(1.0.toString);\nvar pop = uncurryThis([].pop);\nvar push = uncurryThis([].push);\nvar replace = uncurryThis(''.replace);\nvar shift = uncurryThis([].shift);\nvar split = uncurryThis(''.split);\nvar stringSlice = uncurryThis(''.slice);\nvar toLowerCase = uncurryThis(''.toLowerCase);\nvar unshift = uncurryThis([].unshift);\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[a-z]/i;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.a-z]/i;\nvar DIGIT = /\\d/;\nvar HEX_START = /^0x/i;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\da-f]+$/i;\n/* eslint-disable regexp/no-control-character -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:<>?@[\\\\\\]^|]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:<>?@[\\\\\\]^|]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u0020]+|[\\u0000-\\u0020]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable regexp/no-control-character -- safe */\nvar EOF;\n\n// https://url.spec.whatwg.org/#ipv4-number-parser\nvar parseIPv4 = function (input) {\n var parts = split(input, '.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.length--;\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && charAt(part, 0) == '0') {\n radix = exec(HEX_START, part) ? 16 : 8;\n part = stringSlice(part, radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!exec(radix == 10 ? DEC : radix == 8 ? OCT : HEX, part)) return input;\n number = parseInt(part, radix);\n }\n push(numbers, number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = pop(numbers);\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// https://url.spec.whatwg.org/#concept-ipv6-parser\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var chr = function () {\n return charAt(input, pointer);\n };\n\n if (chr() == ':') {\n if (charAt(input, 1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (chr()) {\n if (pieceIndex == 8) return;\n if (chr() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && exec(HEX, chr())) {\n value = value * 16 + parseInt(chr(), 16);\n pointer++;\n length++;\n }\n if (chr() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (chr()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (chr() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!exec(DIGIT, chr())) return;\n while (exec(DIGIT, chr())) {\n number = parseInt(chr(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (chr() == ':') {\n pointer++;\n if (!chr()) return;\n } else if (chr()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\n// https://url.spec.whatwg.org/#host-serializing\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n unshift(result, host % 256);\n host = floor(host / 256);\n } return join(result, '.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += numberToString(host[index], 16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (chr, set) {\n var code = codeAt(chr, 0);\n return code > 0x20 && code < 0x7F && !hasOwn(set, chr) ? chr : encodeURIComponent(chr);\n};\n\n// https://url.spec.whatwg.org/#special-scheme\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\n// https://url.spec.whatwg.org/#windows-drive-letter\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && exec(ALPHA, charAt(string, 0))\n && ((second = charAt(string, 1)) == ':' || (!normalized && second == '|'));\n};\n\n// https://url.spec.whatwg.org/#start-with-a-windows-drive-letter\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(stringSlice(string, 0, 2)) && (\n string.length == 2 ||\n ((third = charAt(string, 2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\n// https://url.spec.whatwg.org/#single-dot-path-segment\nvar isSingleDot = function (segment) {\n return segment === '.' || toLowerCase(segment) === '%2e';\n};\n\n// https://url.spec.whatwg.org/#double-dot-path-segment\nvar isDoubleDot = function (segment) {\n segment = toLowerCase(segment);\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\nvar URLState = function (url, isBase, base) {\n var urlString = $toString(url);\n var baseState, failure, searchParams;\n if (isBase) {\n failure = this.parse(urlString);\n if (failure) throw TypeError(failure);\n this.searchParams = null;\n } else {\n if (base !== undefined) baseState = new URLState(base, true);\n failure = this.parse(urlString, null, baseState);\n if (failure) throw TypeError(failure);\n searchParams = getInternalSearchParamsState(new URLSearchParams());\n searchParams.bindURL(this);\n this.searchParams = searchParams;\n }\n};\n\nURLState.prototype = {\n type: 'URL',\n // https://url.spec.whatwg.org/#url-parsing\n // eslint-disable-next-line max-statements -- TODO\n parse: function (input, stateOverride, base) {\n var url = this;\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, chr, bufferCodePoints, failure;\n\n input = $toString(input);\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = replace(input, LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = replace(input, TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n chr = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (chr && exec(ALPHA, chr)) {\n buffer += toLowerCase(chr);\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (chr && (exec(ALPHANUMERIC, chr) || chr == '+' || chr == '-' || chr == '.')) {\n buffer += toLowerCase(chr);\n } else if (chr == ':') {\n if (stateOverride && (\n (url.isSpecial() != hasOwn(specialSchemes, buffer)) ||\n (buffer == 'file' && (url.includesCredentials() || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (url.isSpecial() && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (url.isSpecial() && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (url.isSpecial()) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n push(url.path, '');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && chr != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && chr == '#') {\n url.scheme = base.scheme;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (chr == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (chr == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (chr == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '/' || (chr == '\\\\' && url.isSpecial())) {\n state = RELATIVE_SLASH;\n } else if (chr == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = arraySlice(base.path);\n url.path.length--;\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (url.isSpecial() && (chr == '/' || chr == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (chr == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (chr != '/' || charAt(buffer, pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (chr != '/' && chr != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (chr == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += chr;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (chr == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial())\n ) {\n if (url.isSpecial() && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (url.includesCredentials() || url.port !== null)) return;\n failure = url.parseHost(buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (chr == '[') seenBracket = true;\n else if (chr == ']') seenBracket = false;\n buffer += chr;\n } break;\n\n case PORT:\n if (exec(DIGIT, chr)) {\n buffer += chr;\n } else if (\n chr == EOF || chr == '/' || chr == '?' || chr == '#' ||\n (chr == '\\\\' && url.isSpecial()) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (url.isSpecial() && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (chr == '/' || chr == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (chr == EOF) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n } else if (chr == '?') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n url.host = base.host;\n url.path = arraySlice(base.path);\n url.shortenPath();\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (chr == '/' || chr == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(join(arraySlice(codePoints, pointer), ''))) {\n if (isWindowsDriveLetter(base.path[0], true)) push(url.path, base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (chr == EOF || chr == '/' || chr == '\\\\' || chr == '?' || chr == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = url.parseHost(buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += chr;\n break;\n\n case PATH_START:\n if (url.isSpecial()) {\n state = PATH;\n if (chr != '/' && chr != '\\\\') continue;\n } else if (!stateOverride && chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n state = PATH;\n if (chr != '/') continue;\n } break;\n\n case PATH:\n if (\n chr == EOF || chr == '/' ||\n (chr == '\\\\' && url.isSpecial()) ||\n (!stateOverride && (chr == '?' || chr == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n url.shortenPath();\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else if (isSingleDot(buffer)) {\n if (chr != '/' && !(chr == '\\\\' && url.isSpecial())) {\n push(url.path, '');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = charAt(buffer, 0) + ':'; // normalize windows drive letter\n }\n push(url.path, buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (chr == EOF || chr == '?' || chr == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n shift(url.path);\n }\n }\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(chr, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (chr == '?') {\n url.query = '';\n state = QUERY;\n } else if (chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n url.path[0] += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && chr == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (chr != EOF) {\n if (chr == \"'\" && url.isSpecial()) url.query += '%27';\n else if (chr == '#') url.query += '%23';\n else url.query += percentEncode(chr, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (chr != EOF) url.fragment += percentEncode(chr, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n },\n // https://url.spec.whatwg.org/#host-parsing\n parseHost: function (input) {\n var result, codePoints, index;\n if (charAt(input, 0) == '[') {\n if (charAt(input, input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(stringSlice(input, 1, -1));\n if (!result) return INVALID_HOST;\n this.host = result;\n // opaque host\n } else if (!this.isSpecial()) {\n if (exec(FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT, input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n this.host = result;\n } else {\n input = toASCII(input);\n if (exec(FORBIDDEN_HOST_CODE_POINT, input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n this.host = result;\n }\n },\n // https://url.spec.whatwg.org/#cannot-have-a-username-password-port\n cannotHaveUsernamePasswordPort: function () {\n return !this.host || this.cannotBeABaseURL || this.scheme == 'file';\n },\n // https://url.spec.whatwg.org/#include-credentials\n includesCredentials: function () {\n return this.username != '' || this.password != '';\n },\n // https://url.spec.whatwg.org/#is-special\n isSpecial: function () {\n return hasOwn(specialSchemes, this.scheme);\n },\n // https://url.spec.whatwg.org/#shorten-a-urls-path\n shortenPath: function () {\n var path = this.path;\n var pathSize = path.length;\n if (pathSize && (this.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.length--;\n }\n },\n // https://url.spec.whatwg.org/#concept-url-serializer\n serialize: function () {\n var url = this;\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (url.includesCredentials()) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n },\n // https://url.spec.whatwg.org/#dom-url-href\n setHref: function (href) {\n var failure = this.parse(href);\n if (failure) throw TypeError(failure);\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-origin\n getOrigin: function () {\n var scheme = this.scheme;\n var port = this.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !this.isSpecial()) return 'null';\n return scheme + '://' + serializeHost(this.host) + (port !== null ? ':' + port : '');\n },\n // https://url.spec.whatwg.org/#dom-url-protocol\n getProtocol: function () {\n return this.scheme + ':';\n },\n setProtocol: function (protocol) {\n this.parse($toString(protocol) + ':', SCHEME_START);\n },\n // https://url.spec.whatwg.org/#dom-url-username\n getUsername: function () {\n return this.username;\n },\n setUsername: function (username) {\n var codePoints = arrayFrom($toString(username));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-password\n getPassword: function () {\n return this.password;\n },\n setPassword: function (password) {\n var codePoints = arrayFrom($toString(password));\n if (this.cannotHaveUsernamePasswordPort()) return;\n this.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n this.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n },\n // https://url.spec.whatwg.org/#dom-url-host\n getHost: function () {\n var host = this.host;\n var port = this.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n },\n setHost: function (host) {\n if (this.cannotBeABaseURL) return;\n this.parse(host, HOST);\n },\n // https://url.spec.whatwg.org/#dom-url-hostname\n getHostname: function () {\n var host = this.host;\n return host === null ? '' : serializeHost(host);\n },\n setHostname: function (hostname) {\n if (this.cannotBeABaseURL) return;\n this.parse(hostname, HOSTNAME);\n },\n // https://url.spec.whatwg.org/#dom-url-port\n getPort: function () {\n var port = this.port;\n return port === null ? '' : $toString(port);\n },\n setPort: function (port) {\n if (this.cannotHaveUsernamePasswordPort()) return;\n port = $toString(port);\n if (port == '') this.port = null;\n else this.parse(port, PORT);\n },\n // https://url.spec.whatwg.org/#dom-url-pathname\n getPathname: function () {\n var path = this.path;\n return this.cannotBeABaseURL ? path[0] : path.length ? '/' + join(path, '/') : '';\n },\n setPathname: function (pathname) {\n if (this.cannotBeABaseURL) return;\n this.path = [];\n this.parse(pathname, PATH_START);\n },\n // https://url.spec.whatwg.org/#dom-url-search\n getSearch: function () {\n var query = this.query;\n return query ? '?' + query : '';\n },\n setSearch: function (search) {\n search = $toString(search);\n if (search == '') {\n this.query = null;\n } else {\n if ('?' == charAt(search, 0)) search = stringSlice(search, 1);\n this.query = '';\n this.parse(search, QUERY);\n }\n this.searchParams.update();\n },\n // https://url.spec.whatwg.org/#dom-url-searchparams\n getSearchParams: function () {\n return this.searchParams.facade;\n },\n // https://url.spec.whatwg.org/#dom-url-hash\n getHash: function () {\n var fragment = this.fragment;\n return fragment ? '#' + fragment : '';\n },\n setHash: function (hash) {\n hash = $toString(hash);\n if (hash == '') {\n this.fragment = null;\n return;\n }\n if ('#' == charAt(hash, 0)) hash = stringSlice(hash, 1);\n this.fragment = '';\n this.parse(hash, FRAGMENT);\n },\n update: function () {\n this.query = this.searchParams.serialize() || null;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLPrototype);\n var base = validateArgumentsLength(arguments.length, 1) > 1 ? arguments[1] : undefined;\n var state = setInternalState(that, new URLState(url, false, base));\n if (!DESCRIPTORS) {\n that.href = state.serialize();\n that.origin = state.getOrigin();\n that.protocol = state.getProtocol();\n that.username = state.getUsername();\n that.password = state.getPassword();\n that.host = state.getHost();\n that.hostname = state.getHostname();\n that.port = state.getPort();\n that.pathname = state.getPathname();\n that.search = state.getSearch();\n that.searchParams = state.getSearchParams();\n that.hash = state.getHash();\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar accessorDescriptor = function (getter, setter) {\n return {\n get: function () {\n return getInternalURLState(this)[getter]();\n },\n set: setter && function (value) {\n return getInternalURLState(this)[setter](value);\n },\n configurable: true,\n enumerable: true\n };\n};\n\nif (DESCRIPTORS) {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n defineBuiltInAccessor(URLPrototype, 'href', accessorDescriptor('serialize', 'setHref'));\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n defineBuiltInAccessor(URLPrototype, 'origin', accessorDescriptor('getOrigin'));\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n defineBuiltInAccessor(URLPrototype, 'protocol', accessorDescriptor('getProtocol', 'setProtocol'));\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n defineBuiltInAccessor(URLPrototype, 'username', accessorDescriptor('getUsername', 'setUsername'));\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n defineBuiltInAccessor(URLPrototype, 'password', accessorDescriptor('getPassword', 'setPassword'));\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n defineBuiltInAccessor(URLPrototype, 'host', accessorDescriptor('getHost', 'setHost'));\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n defineBuiltInAccessor(URLPrototype, 'hostname', accessorDescriptor('getHostname', 'setHostname'));\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n defineBuiltInAccessor(URLPrototype, 'port', accessorDescriptor('getPort', 'setPort'));\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n defineBuiltInAccessor(URLPrototype, 'pathname', accessorDescriptor('getPathname', 'setPathname'));\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n defineBuiltInAccessor(URLPrototype, 'search', accessorDescriptor('getSearch', 'setSearch'));\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n defineBuiltInAccessor(URLPrototype, 'searchParams', accessorDescriptor('getSearchParams'));\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n defineBuiltInAccessor(URLPrototype, 'hash', accessorDescriptor('getHash', 'setHash'));\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\ndefineBuiltIn(URLPrototype, 'toJSON', function toJSON() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\ndefineBuiltIn(URLPrototype, 'toString', function toString() {\n return getInternalURLState(this).serialize();\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n if (nativeCreateObjectURL) defineBuiltIn(URLConstructor, 'createObjectURL', bind(nativeCreateObjectURL, NativeURL));\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n if (nativeRevokeObjectURL) defineBuiltIn(URLConstructor, 'revokeObjectURL', bind(nativeRevokeObjectURL, NativeURL));\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, constructor: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/web.url.constructor');\n","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n=t();for(var o in n)(\"object\"==typeof exports?exports:e)[o]=n[o]}}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){\"use strict\";n.r(t);var o,r=\"fslightbox-\",i=\"\".concat(r,\"styles\"),s=\"\".concat(r,\"cursor-grabbing\"),c=\"\".concat(r,\"full-dimension\"),a=\"\".concat(r,\"flex-centered\"),l=\"\".concat(r,\"open\"),u=\"\".concat(r,\"transform-transition\"),d=\"\".concat(r,\"absoluted\"),p=\"\".concat(r,\"slide-btn\"),f=\"\".concat(p,\"-container\"),h=\"\".concat(r,\"fade-in\"),m=\"\".concat(r,\"fade-out\"),g=h+\"-strong\",v=m+\"-strong\",b=\"\".concat(r,\"opacity-\"),x=\"\".concat(b,\"1\"),y=\"\".concat(r,\"source\");function S(e){return(S=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}\"object\"===(\"undefined\"==typeof document?\"undefined\":S(document))&&((o=document.createElement(\"style\")).className=i,o.appendChild(document.createTextNode(\".fslightbox-absoluted{position:absolute;top:0;left:0}.fslightbox-fade-in{animation:fslightbox-fade-in .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out{animation:fslightbox-fade-out .3s ease}.fslightbox-fade-in-strong{animation:fslightbox-fade-in-strong .3s cubic-bezier(0,0,.7,1)}.fslightbox-fade-out-strong{animation:fslightbox-fade-out-strong .3s ease}@keyframes fslightbox-fade-in{from{opacity:.65}to{opacity:1}}@keyframes fslightbox-fade-out{from{opacity:.35}to{opacity:0}}@keyframes fslightbox-fade-in-strong{from{opacity:.3}to{opacity:1}}@keyframes fslightbox-fade-out-strong{from{opacity:1}to{opacity:0}}.fslightbox-cursor-grabbing{cursor:grabbing}.fslightbox-full-dimension{width:100%;height:100%}.fslightbox-open{overflow:hidden;height:100%}.fslightbox-flex-centered{display:flex;justify-content:center;align-items:center}.fslightbox-opacity-0{opacity:0!important}.fslightbox-opacity-1{opacity:1!important}.fslightbox-scrollbarfix{padding-right:17px}.fslightbox-transform-transition{transition:transform .3s}.fslightbox-container{font-family:Arial,sans-serif;position:fixed;top:0;left:0;background:linear-gradient(rgba(30,30,30,.9),#000 1810%);touch-action:pinch-zoom;z-index:1000000000;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.fslightbox-container *{box-sizing:border-box}.fslightbox-svg-path{transition:fill .15s ease;fill:#ddd}.fslightbox-nav{height:45px;width:100%;position:absolute;top:0;left:0}.fslightbox-slide-number-container{display:flex;justify-content:center;align-items:center;position:relative;height:100%;font-size:15px;color:#d7d7d7;z-index:0;max-width:55px;text-align:left}.fslightbox-slide-number-container .fslightbox-flex-centered{height:100%}.fslightbox-slash{display:block;margin:0 5px;width:1px;height:12px;transform:rotate(15deg);background:#fff}.fslightbox-toolbar{position:absolute;z-index:3;right:0;top:0;height:100%;display:flex;background:rgba(35,35,35,.65)}.fslightbox-toolbar-button{height:100%;width:45px;cursor:pointer}.fslightbox-toolbar-button:hover .fslightbox-svg-path{fill:#fff}.fslightbox-slide-btn-container{display:flex;align-items:center;padding:12px 12px 12px 6px;position:absolute;top:50%;cursor:pointer;z-index:3;transform:translateY(-50%)}@media (min-width:476px){.fslightbox-slide-btn-container{padding:22px 22px 22px 6px}}@media (min-width:768px){.fslightbox-slide-btn-container{padding:30px 30px 30px 6px}}.fslightbox-slide-btn-container:hover .fslightbox-svg-path{fill:#f1f1f1}.fslightbox-slide-btn{padding:9px;font-size:26px;background:rgba(35,35,35,.65)}@media (min-width:768px){.fslightbox-slide-btn{padding:10px}}@media (min-width:1600px){.fslightbox-slide-btn{padding:11px}}.fslightbox-slide-btn-container-previous{left:0}@media (max-width:475.99px){.fslightbox-slide-btn-container-previous{padding-left:3px}}.fslightbox-slide-btn-container-next{right:0;padding-left:12px;padding-right:3px}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-left:22px}}@media (min-width:768px){.fslightbox-slide-btn-container-next{padding-left:30px}}@media (min-width:476px){.fslightbox-slide-btn-container-next{padding-right:6px}}.fslightbox-down-event-detector{position:absolute;z-index:1}.fslightbox-slide-swiping-hoverer{z-index:4}.fslightbox-invalid-file-wrapper{font-size:22px;color:#eaebeb;margin:auto}.fslightbox-video{object-fit:cover}.fslightbox-youtube-iframe{border:0}.fslightbox-loader{display:block;margin:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:67px;height:67px}.fslightbox-loader div{box-sizing:border-box;display:block;position:absolute;width:54px;height:54px;margin:6px;border:5px solid;border-color:#999 transparent transparent transparent;border-radius:50%;animation:fslightbox-loader 1.2s cubic-bezier(.5,0,.5,1) infinite}.fslightbox-loader div:nth-child(1){animation-delay:-.45s}.fslightbox-loader div:nth-child(2){animation-delay:-.3s}.fslightbox-loader div:nth-child(3){animation-delay:-.15s}@keyframes fslightbox-loader{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fslightbox-source{position:relative;z-index:2;opacity:0}\")),document.head.appendChild(o));function w(e){var t,n=e.props,o=0,r={};this.getSourceTypeFromLocalStorageByUrl=function(e){return t[e]?t[e]:i(e)},this.handleReceivedSourceTypeForUrl=function(e,n){!1===r[n]&&(o--,\"invalid\"!==e?r[n]=e:delete r[n],0===o&&(!function(e,t){for(var n in t)e[n]=t[n]}(t,r),localStorage.setItem(\"fslightbox-types\",JSON.stringify(t))))};var i=function(e){o++,r[e]=!1};n.disableLocalStorage?(this.getSourceTypeFromLocalStorageByUrl=function(){},this.handleReceivedSourceTypeForUrl=function(){}):(t=JSON.parse(localStorage.getItem(\"fslightbox-types\")))||(t={},this.getSourceTypeFromLocalStorageByUrl=i)}function L(e,t,n,o){var r=e.data,i=e.elements.sources,s=n/o,c=0;this.adjustSize=function(){if((c=r.maxSourceWidth/s)r.maxSourceHeight?r.maxSourceHeight:o,a()};var a=function(){i[t].style.width=c*s+\"px\",i[t].style.height=c+\"px\"}}function C(e,t){var n=this,o=e.collections.sourceSizers,r=e.elements,i=r.sourceAnimationWrappers,s=r.sourceMainWrappers,c=r.sources,a=e.resolve;function l(e,n){o[t]=a(L,[t,e,n]),o[t].adjustSize()}this.runActions=function(e,o){c[t].classList.add(x),i[t].classList.add(g),s[t].removeChild(s[t].firstChild),l(e,o),n.runActions=l}}function F(e,t){var n,o=this,r=e.elements.sources,i=e.props,s=(0,e.resolve)(C,[t]);this.handleImageLoad=function(e){var t=e.target,n=t.naturalWidth,o=t.naturalHeight;s.runActions(n,o)},this.handleVideoLoad=function(e){var t=e.target,o=t.videoWidth,r=t.videoHeight;n=!0,s.runActions(o,r)},this.handleNotMetaDatedVideoLoad=function(){n||o.handleYoutubeLoad()},this.handleYoutubeLoad=function(){var e=1920,t=1080;i.maxYoutubeDimensions&&(e=i.maxYoutubeDimensions.width,t=i.maxYoutubeDimensions.height),s.runActions(e,t)},this.handleCustomLoad=function(){setTimeout((function(){var e=r[t];s.runActions(e.offsetWidth,e.offsetHeight)}))}}function A(e,t,n){var o=e.elements.sources,r=e.props.customClasses,i=r[t]?r[t]:\"\";o[t].className=n+\" \"+i}function I(e,t){var n=e.elements.sources,o=e.props.customAttributes;for(var r in o[t])n[t].setAttribute(r,o[t][r])}function T(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props.sources;r[t]=document.createElement(\"img\"),A(e,t,y),r[t].src=s[t],r[t].onload=n[t].handleImageLoad,I(e,t),i[t].appendChild(r[t])}function E(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props,c=s.sources,a=s.videosPosters;r[t]=document.createElement(\"video\"),A(e,t,y),r[t].src=c[t],r[t].onloadedmetadata=function(e){n[t].handleVideoLoad(e)},r[t].controls=!0,I(e,t),a[t]&&(r[t].poster=a[t]);var l=document.createElement(\"source\");l.src=c[t],r[t].appendChild(l),setTimeout(n[t].handleNotMetaDatedVideoLoad,3e3),i[t].appendChild(r[t])}function N(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,i=o.sources,s=o.sourceAnimationWrappers,c=e.props.sources;i[t]=document.createElement(\"iframe\"),A(e,t,\"\".concat(y,\" \").concat(r,\"youtube-iframe\")),i[t].src=\"https://www.youtube.com/embed/\".concat(c[t].match(/^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/)[2],\"?enablejsapi=1\"),i[t].allowFullscreen=!0,I(e,t),s[t].appendChild(i[t]),n[t].handleYoutubeLoad()}function W(e,t){var n=e.collections.sourceLoadHandlers,o=e.elements,r=o.sources,i=o.sourceAnimationWrappers,s=e.props.sources;r[t]=s[t],A(e,t,\"\".concat(r[t].className,\" \").concat(y)),i[t].appendChild(r[t]),n[t].handleCustomLoad()}function z(e,t){var n=e.elements,o=n.sources,i=n.sourceAnimationWrappers,s=n.sourceMainWrappers;e.props.sources;o[t]=document.createElement(\"div\"),o[t].className=\"\".concat(r,\"invalid-file-wrapper \").concat(a),o[t].innerHTML=\"Invalid source\",i[t].classList.add(g),i[t].appendChild(o[t]),s[t].removeChild(s[t].firstChild)}function M(e){var t=e.collections,n=t.sourceLoadHandlers,o=t.sourcesRenderFunctions,r=e.core.sourceDisplayFacade,i=e.resolve;this.runActionsForSourceTypeAndIndex=function(t,s){var c;switch(\"invalid\"!==t&&(n[s]=i(F,[s])),t){case\"image\":c=T;break;case\"video\":c=E;break;case\"youtube\":c=N;break;case\"custom\":c=W;break;default:c=z}o[s]=function(){return c(e,s)},r.displaySourcesWhichShouldBeDisplayed()}}function P(){var e,t,n,o={isUrlYoutubeOne:function(e){var t=document.createElement(\"a\");return t.href=e,\"www.youtube.com\"===t.hostname},getTypeFromResponseContentType:function(e){return e.slice(0,e.indexOf(\"/\"))}};function r(){if(4!==n.readyState){if(2===n.readyState){var e;switch(o.getTypeFromResponseContentType(n.getResponseHeader(\"content-type\"))){case\"image\":e=\"image\";break;case\"video\":e=\"video\";break;default:e=\"invalid\"}n.onreadystatechange=null,n.abort(),t(e)}}else t(\"invalid\")}this.setUrlToCheck=function(t){e=t},this.getSourceType=function(i){if(o.isUrlYoutubeOne(e))return i(\"youtube\");t=i,(n=new XMLHttpRequest).onreadystatechange=r,n.open(\"GET\",e,!0),n.send()}}function H(e,t,n){var o=e.props,r=o.types,i=o.type,s=o.sources,c=e.resolve;this.getTypeSetByClientForIndex=function(e){var t;return r&&r[e]?t=r[e]:i&&(t=i),t},this.retrieveTypeWithXhrForIndex=function(e){var o=c(P);o.setUrlToCheck(s[e]),o.getSourceType((function(o){t.handleReceivedSourceTypeForUrl(o,s[e]),n.runActionsForSourceTypeAndIndex(o,e)}))}}function k(e,t){var n=e.componentsServices.hideSourceLoaderIfNotYetCollection,o=e.elements,r=o.sourceWrappersContainer,i=o.sourceMainWrappers;i[t]=document.createElement(\"div\"),i[t].className=\"\".concat(d,\" \").concat(c,\" \").concat(a),i[t].innerHTML='
';var s=i[t].firstChild;n[t]=function(){i[t].contains(s)&&i[t].removeChild(s)},r.appendChild(i[t]),function(e,t){var n=e.elements,o=n.sourceMainWrappers,r=n.sourceAnimationWrappers;r[t]=document.createElement(\"div\"),o[t].appendChild(r[t])}(e,t)}function O(e,t,n,o){var i=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");i.setAttributeNS(null,\"width\",t),i.setAttributeNS(null,\"height\",t),i.setAttributeNS(null,\"viewBox\",n);var s=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return s.setAttributeNS(null,\"class\",\"\".concat(r,\"svg-path\")),s.setAttributeNS(null,\"d\",o),i.appendChild(s),e.appendChild(i),i}function R(e,t){var n=document.createElement(\"div\");return n.className=\"\".concat(r,\"toolbar-button \").concat(a),n.title=t,e.appendChild(n),n}function D(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(r,\"toolbar\"),t.appendChild(n),function(e,t){var n=e.componentsServices,o=e.core.fullscreenToggler,r=e.data,i=\"M4.5 11H3v4h4v-1.5H4.5V11zM3 7h1.5V4.5H7V3H3v4zm10.5 6.5H11V15h4v-4h-1.5v2.5zM11 3v1.5h2.5V7H15V3h-4z\",s=R(t);s.title=\"Enter fullscreen\";var c=O(s,\"20px\",\"0 0 18 18\",i);n.enterFullscreen=function(){r.isFullscreenOpen=!0,s.title=\"Exit fullscreen\",c.setAttributeNS(null,\"width\",\"24px\"),c.setAttributeNS(null,\"height\",\"24px\"),c.setAttributeNS(null,\"viewBox\",\"0 0 950 1024\"),c.firstChild.setAttributeNS(null,\"d\",\"M682 342h128v84h-212v-212h84v128zM598 810v-212h212v84h-128v128h-84zM342 342v-128h84v212h-212v-84h128zM214 682v-84h212v212h-84v-128h-128z\")},n.exitFullscreen=function(){r.isFullscreenOpen=!1,s.title=\"Enter fullscreen\",c.setAttributeNS(null,\"width\",\"20px\"),c.setAttributeNS(null,\"height\",\"20px\"),c.setAttributeNS(null,\"viewBox\",\"0 0 18 18\"),c.firstChild.setAttributeNS(null,\"d\",i)},s.onclick=function(){r.isFullscreenOpen?o.exitFullscreen():o.enterFullscreen()}}(e,n),function(e,t){var n=R(t,\"Close\");n.onclick=e.core.lightboxCloser.closeLightbox,O(n,\"20px\",\"0 0 24 24\",\"M 4.7070312 3.2929688 L 3.2929688 4.7070312 L 10.585938 12 L 3.2929688 19.292969 L 4.7070312 20.707031 L 12 13.414062 L 19.292969 20.707031 L 20.707031 19.292969 L 13.414062 12 L 20.707031 4.7070312 L 19.292969 3.2929688 L 12 10.585938 L 4.7070312 3.2929688 z\")}(e,n)}function j(e){var t=e.props.sources,n=e.elements.container,o=document.createElement(\"div\");o.className=\"\".concat(r,\"nav\"),n.appendChild(o),D(e,o),t.length>1&&function(e,t){var n=e.componentsServices,o=e.props.sources,i=(e.stageIndexes,document.createElement(\"div\"));i.className=\"\".concat(r,\"slide-number-container\");var s=document.createElement(\"div\");s.className=a;var c=document.createElement(\"span\");n.setSlideNumber=function(e){return c.innerHTML=e};var l=document.createElement(\"span\");l.className=\"\".concat(r,\"slash\");var u=document.createElement(\"div\");u.innerHTML=o.length,i.appendChild(s),s.appendChild(c),s.appendChild(l),s.appendChild(u),t.appendChild(i),setTimeout((function(){s.offsetWidth>55&&(i.style.justifyContent=\"flex-start\")}))}(e,o)}function X(e,t){var n=this,o=e.elements.sourceMainWrappers,r=e.props,i=0;this.byValue=function(e){return i=e,n},this.negative=function(){s(-c())},this.zero=function(){s(0)},this.positive=function(){s(c())};var s=function(e){o[t].style.transform=\"translateX(\".concat(e+i,\"px)\"),i=0},c=function(){return(1+r.slideDistance)*innerWidth}}function B(e,t,n,o){var r=e.elements.container,i=n.charAt(0).toUpperCase()+n.slice(1),s=document.createElement(\"div\");s.className=\"\".concat(f,\" \").concat(f,\"-\").concat(n),s.title=\"\".concat(i,\" slide\"),s.onclick=t,function(e,t){var n=document.createElement(\"div\");n.className=\"\".concat(p,\" \").concat(a),O(n,\"20px\",\"0 0 20 20\",t),e.appendChild(n)}(s,o),r.appendChild(s)}function U(e,t){var n=e.classList;n.contains(t)&&n.remove(t)}function V(e){var t=this,n=e.core,o=n.eventsDispatcher,r=n.fullscreenToggler,i=n.globalEventsController,s=n.scrollbarRecompensor,c=e.data,a=e.elements,u=e.props,d=e.sourcePointerProps;this.isLightboxFadingOut=!1,this.runActions=function(){t.isLightboxFadingOut=!0,a.container.classList.add(v),i.removeListeners(),u.exitFullscreenOnClose&&c.isFullscreenOpen&&r.exitFullscreen(),setTimeout((function(){t.isLightboxFadingOut=!1,d.isPointering=!1,a.container.classList.remove(v),document.documentElement.classList.remove(l),s.removeRecompense(),document.body.removeChild(a.container),o.dispatch(\"onClose\")}),270)}}function Y(e){var t,n,o,r=e.collections.sourceMainWrappersTransformers,i=e.componentsServices,s=e.core,c=s.classFacade,a=s.slideIndexChanger,l=s.sourceDisplayFacade,d=s.stageManager,p=e.elements.sourceAnimationWrappers,f=e.stageIndexes,v=(t=function(){c.removeFromEachElementClassIfContains(\"sourceAnimationWrappers\",m)},n=300,o=[],function(){o.push(!0),setTimeout((function(){o.pop(),o.length||t()}),n)});a.changeTo=function(e){f.current=e,d.updateStageIndexes(),i.setSlideNumber(e+1),l.displaySourcesWhichShouldBeDisplayed()},a.jumpTo=function(e){var t=f.current;a.changeTo(e),c.removeFromEachElementClassIfContains(\"sourceMainWrappers\",u),U(p[t],g),U(p[t],h),p[t].classList.add(m),U(p[e],g),U(p[e],m),p[e].classList.add(h),v(),r[e].zero(),setTimeout((function(){t!==f.current&&r[t].negative()}),270)}}function _(e){var t=e.core,n=t.lightboxCloser,o=t.fullscreenToggler,r=t.slideChangeFacade;this.listener=function(e){switch(e.key){case\"Escape\":n.closeLightbox();break;case\"ArrowLeft\":r.changeToPrevious();break;case\"ArrowRight\":r.changeToNext();break;case\"F11\":e.preventDefault(),o.enterFullscreen()}}}function q(e){var t=e.collections.sourceMainWrappersTransformers,n=e.elements,o=e.sourcePointerProps,r=e.stageIndexes;function i(e,n){t[e].byValue(o.swipedX)[n]()}this.runActionsForEvent=function(e){var t,c,a;n.container.contains(n.slideSwipingHoverer)||n.container.appendChild(n.slideSwipingHoverer),t=n.container,c=s,(a=t.classList).contains(c)||a.add(c),o.swipedX=e.screenX-o.downScreenX,i(r.current,\"zero\"),void 0!==r.previous&&o.swipedX>0?i(r.previous,\"negative\"):void 0!==r.next&&o.swipedX<0&&i(r.next,\"positive\")}}function J(e){var t=e.props.sources,n=e.resolve,o=e.sourcePointerProps,r=n(q);1===t.length?this.listener=function(){o.swipedX=1}:this.listener=function(e){o.isPointering&&r.runActionsForEvent(e)}}function G(e){var t=e.collections.sourceMainWrappersTransformers,n=e.core.slideIndexChanger,o=e.elements.sourceMainWrappers,r=e.stageIndexes;this.runPositiveSwipedXActions=function(){void 0===r.previous||(i(\"positive\"),n.changeTo(r.previous)),i(\"zero\")},this.runNegativeSwipedXActions=function(){void 0===r.next||(i(\"negative\"),n.changeTo(r.next)),i(\"zero\")};var i=function(e){o[r.current].classList.add(u),t[r.current][e]()}}function $(e,t){e.contains(t)&&e.removeChild(t)}function K(e){var t=e.core.lightboxCloser,n=e.elements,o=e.resolve,r=e.sourcePointerProps,i=o(G);this.runNoSwipeActions=function(){$(n.container,n.slideSwipingHoverer),r.isSourceDownEventTarget||t.closeLightbox(),r.isPointering=!1},this.runActions=function(){r.swipedX>0?i.runPositiveSwipedXActions():i.runNegativeSwipedXActions(),$(n.container,n.slideSwipingHoverer),n.container.classList.remove(s),r.isPointering=!1}}function Q(e){var t=e.resolve,n=e.sourcePointerProps,o=t(K);this.listener=function(){n.isPointering&&(n.swipedX?o.runActions():o.runNoSwipeActions())}}function Z(e){var t,n,o;n=(t=e).core.classFacade,o=t.elements,n.removeFromEachElementClassIfContains=function(e,t){for(var n=0;ninnerHeight&&(document.body.style.marginRight=t.scrollbarWidth+\"px\")}n.addRecompense=function(){\"complete\"===document.readyState?o():addEventListener(\"load\",(function(){o(),n.addRecompense=o}))},n.removeRecompense=function(){document.body.style.removeProperty(\"margin-right\")}}(e),function(e){var t=e.core,n=t.slideChangeFacade,o=t.slideIndexChanger,r=t.stageManager;e.props.sources.length>1?(n.changeToPrevious=function(){o.jumpTo(r.getPreviousSlideIndex())},n.changeToNext=function(){o.jumpTo(r.getNextSlideIndex())}):(n.changeToPrevious=function(){},n.changeToNext=function(){})}(e),Y(e),function(e){var t=e.core,n=t.classFacade,o=t.sourcesPointerDown,r=e.elements.sources,i=e.sourcePointerProps,s=e.stageIndexes;o.listener=function(e){\"VIDEO\"!==e.target.tagName&&e.preventDefault(),i.isPointering=!0,i.downScreenX=e.screenX,i.swipedX=0;var t=r[s.current];t&&t.contains(e.target)?i.isSourceDownEventTarget=!0:i.isSourceDownEventTarget=!1,n.removeFromEachElementClassIfContains(\"sourceMainWrappers\",u)}}(e),function(e){var t=e.collections.sourcesRenderFunctions,n=e.core.sourceDisplayFacade,o=e.props,r=e.stageIndexes;function i(e){t[e]&&(t[e](),delete t[e])}n.displaySourcesWhichShouldBeDisplayed=function(){if(o.loadOnlyCurrentSource)i(r.current);else for(var e in r)i(r[e])}}(e),function(e){var t=e.stageIndexes,n=e.core.stageManager,o=e.props.sources.length-1;n.getPreviousSlideIndex=function(){return 0===t.current?o:t.current-1},n.getNextSlideIndex=function(){return t.current===o?0:t.current+1},n.updateStageIndexes=0===o?function(){}:1===o?function(){0===t.current?(t.next=1,delete t.previous):(t.previous=0,delete t.next)}:function(){t.previous=n.getPreviousSlideIndex(),t.next=n.getNextSlideIndex()},n.isSourceInStage=o<=2?function(){return!0}:function(e){var n=t.current;if(0===n&&e===o||n===o&&0===e)return!0;var r=n-e;return-1===r||0===r||1===r}}(e),function(e){var t=e.collections,n=t.sourceMainWrappersTransformers,o=t.sourceSizers,r=e.core.windowResizeActioner,i=e.data,s=e.elements.sourceMainWrappers,c=e.props,a=e.stageIndexes;r.runActions=function(){innerWidth<992?i.maxSourceWidth=innerWidth:i.maxSourceWidth=.9*innerWidth,i.maxSourceHeight=.9*innerHeight;for(var e=0;e1&&function(e){var t=e.core.slideChangeFacade;B(e,t.changeToPrevious,\"previous\",\"M18.271,9.212H3.615l4.184-4.184c0.306-0.306,0.306-0.801,0-1.107c-0.306-0.306-0.801-0.306-1.107,0L1.21,9.403C1.194,9.417,1.174,9.421,1.158,9.437c-0.181,0.181-0.242,0.425-0.209,0.66c0.005,0.038,0.012,0.071,0.022,0.109c0.028,0.098,0.075,0.188,0.142,0.271c0.021,0.026,0.021,0.061,0.045,0.085c0.015,0.016,0.034,0.02,0.05,0.033l5.484,5.483c0.306,0.307,0.801,0.307,1.107,0c0.306-0.305,0.306-0.801,0-1.105l-4.184-4.185h14.656c0.436,0,0.788-0.353,0.788-0.788S18.707,9.212,18.271,9.212z\"),B(e,t.changeToNext,\"next\",\"M1.729,9.212h14.656l-4.184-4.184c-0.307-0.306-0.307-0.801,0-1.107c0.305-0.306,0.801-0.306,1.106,0l5.481,5.482c0.018,0.014,0.037,0.019,0.053,0.034c0.181,0.181,0.242,0.425,0.209,0.66c-0.004,0.038-0.012,0.071-0.021,0.109c-0.028,0.098-0.075,0.188-0.143,0.271c-0.021,0.026-0.021,0.061-0.045,0.085c-0.015,0.016-0.034,0.02-0.051,0.033l-5.483,5.483c-0.306,0.307-0.802,0.307-1.106,0c-0.307-0.305-0.307-0.801,0-1.105l4.184-4.185H1.729c-0.436,0-0.788-0.353-0.788-0.788S1.293,9.212,1.729,9.212z\")}(e),function(e){for(var t=e.props.sources,n=e.resolve,o=n(w),r=n(M),i=n(H,[o,r]),s=0;s0&&void 0!==arguments[0]?arguments[0]:0;h.current=o,p.isInitialized?r.dispatch(\"onShow\"):te(e),u.updateStageIndexes(),a.displaySourcesWhichShouldBeDisplayed(),n.setSlideNumber(o+1),document.body.appendChild(f.container),document.documentElement.classList.add(l),c.addRecompense(),s.attachListeners(),d.runActions(),t[h.current].zero(),r.dispatch(\"onOpen\")}}function oe(e,t,n){return(oe=re()?Reflect.construct:function(e,t,n){var o=[null];o.push.apply(o,t);var r=new(Function.bind.apply(e,o));return n&&ie(r,n.prototype),r}).apply(null,arguments)}function re(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function ie(e,t){return(ie=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function se(e){return function(e){if(Array.isArray(e))return ce(e)}(e)||function(e){if(\"undefined\"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if(\"string\"==typeof e)return ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);\"Object\"===n&&e.constructor&&(n=e.constructor.name);if(\"Map\"===n||\"Set\"===n)return Array.from(e);if(\"Arguments\"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ce(e,t)}(e)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:[];return n.unshift(e),oe(t,se(n))},this.collections={sourceMainWrappersTransformers:[],sourceLoadHandlers:[],sourcesRenderFunctions:[],sourceSizers:[]},this.core={classFacade:{},eventsDispatcher:{},fullscreenToggler:{},globalEventsController:{},lightboxCloser:{},lightboxOpener:{},lightboxUpdater:{},scrollbarRecompensor:{},slideChangeFacade:{},slideIndexChanger:{},sourcesPointerDown:{},sourceDisplayFacade:{},stageManager:{},windowResizeActioner:{}},ne(this),this.open=function(t){return e.core.lightboxOpener.open(t)},this.close=function(){return e.core.lightboxCloser.closeLightbox()}},window.fsLightboxInstances={},ae(),window.refreshFsLightbox=function(){for(var e in fsLightboxInstances){var t=fsLightboxInstances[e].props;fsLightboxInstances[e]=new FsLightbox,fsLightboxInstances[e].props=t,fsLightboxInstances[e].props.sources=[],fsLightboxInstances[e].elements.a=[]}ae()}}])}));","// Cookie management\n// jQuery-simplified version of https://github.com/carhartl/jquery-cookies\n\n'use strict';\n\nfunction cookieParse( s ) {\n\tvar pluses = /\\+/g;\n\n\tif ( s.indexOf( '\"' ) === 0 ) {\n\t\t// This is a quoted cookies as according to RFC2068, unescape...\n\t\ts = s.slice( 1, -1 ).replace( /\\\\\"/g, '\"' ).replace( /\\\\\\\\/g, '\\\\' );\n\t}\n\n\ttry {\n\t\t// Replace server-side written pluses with spaces.\n\t\t// If we can't decode the cookies, ignore it, it's unusable.\n\t\t// If we can't parse the cookies, ignore it, it's unusable.\n\t\ts = decodeURIComponent( s.replace( pluses, ' ' ) );\n\t\treturn s;\n\t} catch ( e ) {\n\t}\n}\n\nfunction cookie( key, value, options ) {\n\toptions = options || {};\n\n\t// Write\n\n\tif ( arguments.length > 1 ) {\n\t\tif ( typeof options.expires === 'number' ) {\n\t\t\tvar days = options.expires, t = options.expires = new Date();\n\t\t\tt.setTime( +t + days * 864e+5 );\n\t\t}\n\n\t\treturn (document.cookie = [\n\t\t\tencodeURIComponent( key ), '=', encodeURIComponent( value ),\n\t\t\toptions.expires ? '; expires=' + options.expires.toUTCString() : '',\n\t\t\toptions.path ? '; path=' + options.path : '',\n\t\t\toptions.domain ? '; domain=' + options.domain : '',\n\t\t\toptions.secure ? '; secure' : ''\n\t\t].join( '' ));\n\t}\n\n\t// Read\n\n\tvar result = key ? undefined : {};\n\n\t// To prevent the for loop in the first place assign an empty array\n\t// in case there are no cookies at all. Also prevents odd result when\n\t// calling $.cookies().\n\tvar cookies = document.cookie ? document.cookie.split( '; ' ) : [];\n\n\tfor ( var i = 0, l = cookies.length; i < l; i++ ) {\n\t\tvar parts = cookies[ i ].split( '=' );\n\t\tvar name = decodeURIComponent( parts.shift() );\n\t\tvar cookie = parts.join( '=' );\n\n\t\tif ( key && key === name ) {\n\t\t\tresult = cookieParse( cookie );\n\t\t\tbreak;\n\t\t}\n\n\t\t// Prevent storing a cookies that we couldn't decode.\n\t\tif ( !key && (cookie = cookieParse( cookie )) !== undefined ) {\n\t\t\tresult[ name ] = cookie;\n\t\t}\n\t}\n\n\treturn result;\n}\n\nexport default cookie;\n\nif ( typeof exports === 'object' ) {\n\tmodule.exports = cookie;\n}\n","'use strict';\n\nvar ready = false,\n\tstack = [];\n\nfunction completed() {\n\tif ( document.addEventListener || event.type === \"load\" || document.readyState === \"complete\" ) {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.removeEventListener( 'DOMContentLoaded', completed, false );\n\t\t\twindow.removeEventListener( 'load', completed, false );\n\t\t}\n\t\telse {\n\t\t\tdocument.detachEvent( \"onreadystatechange\", completed );\n\t\t\twindow.detachEvent( \"onload\", completed );\n\t\t}\n\n\t\tvar f;\n\t\twhile ( f = stack.shift() ) {\n\t\t\tsetTimeout( f, 0 );\n\t\t}\n\n\t\tready = true;\n\t}\n}\n\nfunction domready( f ) {\n\tif ( (typeof f != 'function') || (typeof document == 'undefined') ) {\n\t\treturn;\n\t}\n\n\tif ( ready || (document.readyState === 'complete' ) ) {\n\t\tsetTimeout( f, 0 );\n\t\treturn;\n\t}\n\n\tif ( stack.length <= 0 ) {\n\t\tif ( document.addEventListener ) {\n\t\t\tdocument.addEventListener( 'DOMContentLoaded', completed, false );\n\t\t\twindow.addEventListener( 'load', completed, false );\n\t\t}\n\t\telse {\n\t\t\tdocument.attachEvent( \"onreadystatechange\", completed );\n\t\t\twindow.attachEvent( \"onload\", completed );\n\t\t}\n\t}\n\n\tstack.push( f );\n}\n\nexport default domready;\n\nif ( typeof exports === 'object' ) {\n\tmodule.exports = domready;\n}\n","/*!\r\n * ScrollMagic v2.0.8 (2020-08-14)\r\n * The javascript library for magical scroll interactions.\r\n * (c) 2020 Jan Paepke (@janpaepke)\r\n * Project Website: http://scrollmagic.io\r\n * \r\n * @version 2.0.8\r\n * @license Dual licensed under MIT license and GPL.\r\n * @author Jan Paepke - e-mail@janpaepke.de\r\n *\r\n * @file ScrollMagic main library.\r\n */\r\n/**\r\n * @namespace ScrollMagic\r\n */\r\n(function (root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine(factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// CommonJS\r\n\t\tmodule.exports = factory();\r\n\t} else {\r\n\t\t// Browser global\r\n\t\troot.ScrollMagic = factory();\r\n\t}\r\n}(this, function () {\r\n\t\"use strict\";\r\n\r\n\tvar ScrollMagic = function () {\r\n\t\t_util.log(2, '(COMPATIBILITY NOTICE) -> As of ScrollMagic 2.0.0 you need to use \\'new ScrollMagic.Controller()\\' to create a new controller instance. Use \\'new ScrollMagic.Scene()\\' to instance a scene.');\r\n\t};\r\n\r\n\tScrollMagic.version = \"2.0.8\";\r\n\r\n\t// TODO: temporary workaround for chrome's scroll jitter bug\r\n\tif (typeof (window) !== 'undefined') {\r\n\t\twindow.addEventListener(\"mousewheel\", void(0));\r\n\t}\r\n\r\n\t// global const\r\n\tvar PIN_SPACER_ATTRIBUTE = \"data-scrollmagic-pin-spacer\";\r\n\r\n\t/**\r\n\t * The main class that is needed once per scroll container.\r\n\t *\r\n\t * @class\r\n\t *\r\n\t * @example\r\n\t * // basic initialization\r\n\t * var controller = new ScrollMagic.Controller();\r\n\t *\r\n\t * // passing options\r\n\t * var controller = new ScrollMagic.Controller({container: \"#myContainer\", loglevel: 3});\r\n\t *\r\n\t * @param {object} [options] - An object containing one or more options for the controller.\r\n\t * @param {(string|object)} [options.container=window] - A selector, DOM object that references the main container for scrolling.\r\n\t * @param {boolean} [options.vertical=true] - Sets the scroll mode to vertical (`true`) or horizontal (`false`) scrolling.\r\n\t * @param {object} [options.globalSceneOptions={}] - These options will be passed to every Scene that is added to the controller using the addScene method. For more information on Scene options see {@link ScrollMagic.Scene}.\r\n\t * @param {number} [options.loglevel=2] Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.\r\n\t\t\t\t\t\t\t\t\t\t\t ** `0` => silent\r\n\t\t\t\t\t\t\t\t\t\t\t ** `1` => errors\r\n\t\t\t\t\t\t\t\t\t\t\t ** `2` => errors, warnings\r\n\t\t\t\t\t\t\t\t\t\t\t ** `3` => errors, warnings, debuginfo\r\n\t * @param {boolean} [options.refreshInterval=100] - Some changes don't call events by default, like changing the container size or moving a scene trigger element. \r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t This interval polls these parameters to fire the necessary events. \r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t If you don't use custom containers, trigger elements or have static layouts, where the positions of the trigger elements don't change, you can set this to 0 disable interval checking and improve performance.\r\n\t *\r\n\t */\r\n\tScrollMagic.Controller = function (options) {\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * settings\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\t\tvar\r\n\t\t\tNAMESPACE = 'ScrollMagic.Controller',\r\n\t\t\tSCROLL_DIRECTION_FORWARD = 'FORWARD',\r\n\t\t\tSCROLL_DIRECTION_REVERSE = 'REVERSE',\r\n\t\t\tSCROLL_DIRECTION_PAUSED = 'PAUSED',\r\n\t\t\tDEFAULT_OPTIONS = CONTROLLER_OPTIONS.defaults;\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * private vars\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\t\tvar\r\n\t\t\tController = this,\r\n\t\t\t_options = _util.extend({}, DEFAULT_OPTIONS, options),\r\n\t\t\t_sceneObjects = [],\r\n\t\t\t_updateScenesOnNextCycle = false, // can be boolean (true => all scenes) or an array of scenes to be updated\r\n\t\t\t_scrollPos = 0,\r\n\t\t\t_scrollDirection = SCROLL_DIRECTION_PAUSED,\r\n\t\t\t_isDocument = true,\r\n\t\t\t_viewPortSize = 0,\r\n\t\t\t_enabled = true,\r\n\t\t\t_updateTimeout,\r\n\t\t\t_refreshTimeout;\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * private functions\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * Internal constructor function of the ScrollMagic Controller\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar construct = function () {\r\n\t\t\tfor (var key in _options) {\r\n\t\t\t\tif (!DEFAULT_OPTIONS.hasOwnProperty(key)) {\r\n\t\t\t\t\tlog(2, \"WARNING: Unknown option \\\"\" + key + \"\\\"\");\r\n\t\t\t\t\tdelete _options[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t_options.container = _util.get.elements(_options.container)[0];\r\n\t\t\t// check ScrollContainer\r\n\t\t\tif (!_options.container) {\r\n\t\t\t\tlog(1, \"ERROR creating object \" + NAMESPACE + \": No valid scroll container supplied\");\r\n\t\t\t\tthrow NAMESPACE + \" init failed.\"; // cancel\r\n\t\t\t}\r\n\t\t\t_isDocument = _options.container === window || _options.container === document.body || !document.body.contains(_options.container);\r\n\t\t\t// normalize to window\r\n\t\t\tif (_isDocument) {\r\n\t\t\t\t_options.container = window;\r\n\t\t\t}\r\n\t\t\t// update container size immediately\r\n\t\t\t_viewPortSize = getViewportSize();\r\n\t\t\t// set event handlers\r\n\t\t\t_options.container.addEventListener(\"resize\", onChange);\r\n\t\t\t_options.container.addEventListener(\"scroll\", onChange);\r\n\r\n\t\t\tvar ri = parseInt(_options.refreshInterval, 10);\r\n\t\t\t_options.refreshInterval = _util.type.Number(ri) ? ri : DEFAULT_OPTIONS.refreshInterval;\r\n\t\t\tscheduleRefresh();\r\n\r\n\t\t\tlog(3, \"added new \" + NAMESPACE + \" controller (v\" + ScrollMagic.version + \")\");\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Schedule the next execution of the refresh function\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar scheduleRefresh = function () {\r\n\t\t\tif (_options.refreshInterval > 0) {\r\n\t\t\t\t_refreshTimeout = window.setTimeout(refresh, _options.refreshInterval);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Default function to get scroll pos - overwriteable using `Controller.scrollPos(newFunction)`\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar getScrollPos = function () {\r\n\t\t\treturn _options.vertical ? _util.get.scrollTop(_options.container) : _util.get.scrollLeft(_options.container);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Returns the current viewport Size (width vor horizontal, height for vertical)\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar getViewportSize = function () {\r\n\t\t\treturn _options.vertical ? _util.get.height(_options.container) : _util.get.width(_options.container);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Default function to set scroll pos - overwriteable using `Controller.scrollTo(newFunction)`\r\n\t\t * Make available publicly for pinned mousewheel workaround.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar setScrollPos = this._setScrollPos = function (pos) {\r\n\t\t\tif (_options.vertical) {\r\n\t\t\t\tif (_isDocument) {\r\n\t\t\t\t\twindow.scrollTo(_util.get.scrollLeft(), pos);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_options.container.scrollTop = pos;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (_isDocument) {\r\n\t\t\t\t\twindow.scrollTo(pos, _util.get.scrollTop());\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_options.container.scrollLeft = pos;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Handle updates in cycles instead of on scroll (performance)\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updateScenes = function () {\r\n\t\t\tif (_enabled && _updateScenesOnNextCycle) {\r\n\t\t\t\t// determine scenes to update\r\n\t\t\t\tvar scenesToUpdate = _util.type.Array(_updateScenesOnNextCycle) ? _updateScenesOnNextCycle : _sceneObjects.slice(0);\r\n\t\t\t\t// reset scenes\r\n\t\t\t\t_updateScenesOnNextCycle = false;\r\n\t\t\t\tvar oldScrollPos = _scrollPos;\r\n\t\t\t\t// update scroll pos now instead of onChange, as it might have changed since scheduling (i.e. in-browser smooth scroll)\r\n\t\t\t\t_scrollPos = Controller.scrollPos();\r\n\t\t\t\tvar deltaScroll = _scrollPos - oldScrollPos;\r\n\t\t\t\tif (deltaScroll !== 0) { // scroll position changed?\r\n\t\t\t\t\t_scrollDirection = (deltaScroll > 0) ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_REVERSE;\r\n\t\t\t\t}\r\n\t\t\t\t// reverse order of scenes if scrolling reverse\r\n\t\t\t\tif (_scrollDirection === SCROLL_DIRECTION_REVERSE) {\r\n\t\t\t\t\tscenesToUpdate.reverse();\r\n\t\t\t\t}\r\n\t\t\t\t// update scenes\r\n\t\t\t\tscenesToUpdate.forEach(function (scene, index) {\r\n\t\t\t\t\tlog(3, \"updating Scene \" + (index + 1) + \"/\" + scenesToUpdate.length + \" (\" + _sceneObjects.length + \" total)\");\r\n\t\t\t\t\tscene.update(true);\r\n\t\t\t\t});\r\n\t\t\t\tif (scenesToUpdate.length === 0 && _options.loglevel >= 3) {\r\n\t\t\t\t\tlog(3, \"updating 0 Scenes (nothing added to controller)\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Initializes rAF callback\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar debounceUpdate = function () {\r\n\t\t\t_updateTimeout = _util.rAF(updateScenes);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Handles Container changes\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar onChange = function (e) {\r\n\t\t\tlog(3, \"event fired causing an update:\", e.type);\r\n\t\t\tif (e.type == \"resize\") {\r\n\t\t\t\t// resize\r\n\t\t\t\t_viewPortSize = getViewportSize();\r\n\t\t\t\t_scrollDirection = SCROLL_DIRECTION_PAUSED;\r\n\t\t\t}\r\n\t\t\t// schedule update\r\n\t\t\tif (_updateScenesOnNextCycle !== true) {\r\n\t\t\t\t_updateScenesOnNextCycle = true;\r\n\t\t\t\tdebounceUpdate();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tvar refresh = function () {\r\n\t\t\tif (!_isDocument) {\r\n\t\t\t\t// simulate resize event. Only works for viewport relevant param (performance)\r\n\t\t\t\tif (_viewPortSize != getViewportSize()) {\r\n\t\t\t\t\tvar resizeEvent;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tresizeEvent = new Event('resize', {\r\n\t\t\t\t\t\t\tbubbles: false,\r\n\t\t\t\t\t\t\tcancelable: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} catch (e) { // stupid IE\r\n\t\t\t\t\t\tresizeEvent = document.createEvent(\"Event\");\r\n\t\t\t\t\t\tresizeEvent.initEvent(\"resize\", false, false);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_options.container.dispatchEvent(resizeEvent);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t_sceneObjects.forEach(function (scene, index) { // refresh all scenes\r\n\t\t\t\tscene.refresh();\r\n\t\t\t});\r\n\t\t\tscheduleRefresh();\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Send a debug message to the console.\r\n\t\t * provided publicly with _log for plugins\r\n\t\t * @private\r\n\t\t *\r\n\t\t * @param {number} loglevel - The loglevel required to initiate output for the message.\r\n\t\t * @param {...mixed} output - One or more variables that should be passed to the console.\r\n\t\t */\r\n\t\tvar log = this._log = function (loglevel, output) {\r\n\t\t\tif (_options.loglevel >= loglevel) {\r\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \") ->\");\r\n\t\t\t\t_util.log.apply(window, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t\t// for scenes we have getters for each option, but for the controller we don't, so we need to make it available externally for plugins\r\n\t\tthis._options = _options;\r\n\r\n\t\t/**\r\n\t\t * Sort scenes in ascending order of their start offset.\r\n\t\t * @private\r\n\t\t *\r\n\t\t * @param {array} ScenesArray - an array of ScrollMagic Scenes that should be sorted\r\n\t\t * @return {array} The sorted array of Scenes.\r\n\t\t */\r\n\t\tvar sortScenes = function (ScenesArray) {\r\n\t\t\tif (ScenesArray.length <= 1) {\r\n\t\t\t\treturn ScenesArray;\r\n\t\t\t} else {\r\n\t\t\t\tvar scenes = ScenesArray.slice(0);\r\n\t\t\t\tscenes.sort(function (a, b) {\r\n\t\t\t\t\treturn a.scrollOffset() > b.scrollOffset() ? 1 : -1;\r\n\t\t\t\t});\r\n\t\t\t\treturn scenes;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * public functions\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * Add one ore more scene(s) to the controller. \r\n\t\t * This is the equivalent to `Scene.addTo(controller)`.\r\n\t\t * @public\r\n\t\t * @example\r\n\t\t * // with a previously defined scene\r\n\t\t * controller.addScene(scene);\r\n\t\t *\r\n\t\t * // with a newly created scene.\r\n\t\t * controller.addScene(new ScrollMagic.Scene({duration : 0}));\r\n\t\t *\r\n\t\t * // adding multiple scenes\r\n\t\t * controller.addScene([scene, scene2, new ScrollMagic.Scene({duration : 0})]);\r\n\t\t *\r\n\t\t * @param {(ScrollMagic.Scene|array)} newScene - ScrollMagic Scene or Array of Scenes to be added to the controller.\r\n\t\t * @return {Controller} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.addScene = function (newScene) {\r\n\t\t\tif (_util.type.Array(newScene)) {\r\n\t\t\t\tnewScene.forEach(function (scene, index) {\r\n\t\t\t\t\tController.addScene(scene);\r\n\t\t\t\t});\r\n\t\t\t} else if (newScene instanceof ScrollMagic.Scene) {\r\n\t\t\t\tif (newScene.controller() !== Controller) {\r\n\t\t\t\t\tnewScene.addTo(Controller);\r\n\t\t\t\t} else if (_sceneObjects.indexOf(newScene) < 0) {\r\n\t\t\t\t\t// new scene\r\n\t\t\t\t\t_sceneObjects.push(newScene); // add to array\r\n\t\t\t\t\t_sceneObjects = sortScenes(_sceneObjects); // sort\r\n\t\t\t\t\tnewScene.on(\"shift.controller_sort\", function () { // resort whenever scene moves\r\n\t\t\t\t\t\t_sceneObjects = sortScenes(_sceneObjects);\r\n\t\t\t\t\t});\r\n\t\t\t\t\t// insert Global defaults.\r\n\t\t\t\t\tfor (var key in _options.globalSceneOptions) {\r\n\t\t\t\t\t\tif (newScene[key]) {\r\n\t\t\t\t\t\t\tnewScene[key].call(newScene, _options.globalSceneOptions[key]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlog(3, \"adding Scene (now \" + _sceneObjects.length + \" total)\");\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlog(1, \"ERROR: invalid argument supplied for '.addScene()'\");\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove one ore more scene(s) from the controller. \r\n\t\t * This is the equivalent to `Scene.remove()`.\r\n\t\t * @public\r\n\t\t * @example\r\n\t\t * // remove a scene from the controller\r\n\t\t * controller.removeScene(scene);\r\n\t\t *\r\n\t\t * // remove multiple scenes from the controller\r\n\t\t * controller.removeScene([scene, scene2, scene3]);\r\n\t\t *\r\n\t\t * @param {(ScrollMagic.Scene|array)} Scene - ScrollMagic Scene or Array of Scenes to be removed from the controller.\r\n\t\t * @returns {Controller} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.removeScene = function (Scene) {\r\n\t\t\tif (_util.type.Array(Scene)) {\r\n\t\t\t\tScene.forEach(function (scene, index) {\r\n\t\t\t\t\tController.removeScene(scene);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tvar index = _sceneObjects.indexOf(Scene);\r\n\t\t\t\tif (index > -1) {\r\n\t\t\t\t\tScene.off(\"shift.controller_sort\");\r\n\t\t\t\t\t_sceneObjects.splice(index, 1);\r\n\t\t\t\t\tlog(3, \"removing Scene (now \" + _sceneObjects.length + \" left)\");\r\n\t\t\t\t\tScene.remove();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t * Update one ore more scene(s) according to the scroll position of the container. \r\n\t * This is the equivalent to `Scene.update()`. \r\n\t * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. \r\n\t * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress. \r\n\t * _**Note:** This method gets called constantly whenever Controller detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._\r\n\t * @public\r\n\t * @example\r\n\t * // update a specific scene on next cycle\r\n \t * controller.updateScene(scene);\r\n \t *\r\n\t * // update a specific scene immediately\r\n\t * controller.updateScene(scene, true);\r\n \t *\r\n\t * // update multiple scenes scene on next cycle\r\n\t * controller.updateScene([scene1, scene2, scene3]);\r\n\t *\r\n\t * @param {ScrollMagic.Scene} Scene - ScrollMagic Scene or Array of Scenes that is/are supposed to be updated.\r\n\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle. \r\n\t \t\t\t\t\t\t\t\t\t\t This is useful when changing multiple properties of the scene - this way it will only be updated once all new properties are set (updateScenes).\r\n\t * @return {Controller} Parent object for chaining.\r\n\t */\r\n\t\tthis.updateScene = function (Scene, immediately) {\r\n\t\t\tif (_util.type.Array(Scene)) {\r\n\t\t\t\tScene.forEach(function (scene, index) {\r\n\t\t\t\t\tController.updateScene(scene, immediately);\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tif (immediately) {\r\n\t\t\t\t\tScene.update(true);\r\n\t\t\t\t} else if (_updateScenesOnNextCycle !== true && Scene instanceof ScrollMagic.Scene) { // if _updateScenesOnNextCycle is true, all connected scenes are already scheduled for update\r\n\t\t\t\t\t// prep array for next update cycle\r\n\t\t\t\t\t_updateScenesOnNextCycle = _updateScenesOnNextCycle || [];\r\n\t\t\t\t\tif (_updateScenesOnNextCycle.indexOf(Scene) == -1) {\r\n\t\t\t\t\t\t_updateScenesOnNextCycle.push(Scene);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_updateScenesOnNextCycle = sortScenes(_updateScenesOnNextCycle); // sort\r\n\t\t\t\t\tdebounceUpdate();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates the controller params and calls updateScene on every scene, that is attached to the controller. \r\n\t\t * See `Controller.updateScene()` for more information about what this means. \r\n\t\t * In most cases you will not need this function, as it is called constantly, whenever ScrollMagic detects a state change event, like resize or scroll. \r\n\t\t * The only application for this method is when ScrollMagic fails to detect these events. \r\n\t\t * One application is with some external scroll libraries (like iScroll) that move an internal container to a negative offset instead of actually scrolling. In this case the update on the controller needs to be called whenever the child container's position changes.\r\n\t\t * For this case there will also be the need to provide a custom function to calculate the correct scroll position. See `Controller.scrollPos()` for details.\r\n\t\t * @public\r\n\t\t * @example\r\n\t\t * // update the controller on next cycle (saves performance due to elimination of redundant updates)\r\n\t\t * controller.update();\r\n\t\t *\r\n\t\t * // update the controller immediately\r\n\t\t * controller.update(true);\r\n\t\t *\r\n\t\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance)\r\n\t\t * @return {Controller} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.update = function (immediately) {\r\n\t\t\tonChange({\r\n\t\t\t\ttype: \"resize\"\r\n\t\t\t}); // will update size and set _updateScenesOnNextCycle to true\r\n\t\t\tif (immediately) {\r\n\t\t\t\tupdateScenes();\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Scroll to a numeric scroll offset, a DOM element, the start of a scene or provide an alternate method for scrolling. \r\n\t\t * For vertical controllers it will change the top scroll offset and for horizontal applications it will change the left offset.\r\n\t\t * @public\r\n\t\t *\r\n\t\t * @since 1.1.0\r\n\t\t * @example\r\n\t\t * // scroll to an offset of 100\r\n\t\t * controller.scrollTo(100);\r\n\t\t *\r\n\t\t * // scroll to a DOM element\r\n\t\t * controller.scrollTo(\"#anchor\");\r\n\t\t *\r\n\t\t * // scroll to the beginning of a scene\r\n\t\t * var scene = new ScrollMagic.Scene({offset: 200});\r\n\t\t * controller.scrollTo(scene);\r\n\t\t *\r\n\t\t * // define a new scroll position modification function (jQuery animate instead of jump)\r\n\t\t * controller.scrollTo(function (newScrollPos) {\r\n\t\t *\t$(\"html, body\").animate({scrollTop: newScrollPos});\r\n\t\t * });\r\n\t\t * controller.scrollTo(100); // call as usual, but the new function will be used instead\r\n\t\t *\r\n\t\t * // define a new scroll function with an additional parameter\r\n\t\t * controller.scrollTo(function (newScrollPos, message) {\r\n\t\t * console.log(message);\r\n\t\t *\t$(this).animate({scrollTop: newScrollPos});\r\n\t\t * });\r\n\t\t * // call as usual, but supply an extra parameter to the defined custom function\r\n\t\t * controller.scrollTo(100, \"my message\");\r\n\t\t *\r\n\t\t * // define a new scroll function with an additional parameter containing multiple variables\r\n\t\t * controller.scrollTo(function (newScrollPos, options) {\r\n\t\t * someGlobalVar = options.a + options.b;\r\n\t\t *\t$(this).animate({scrollTop: newScrollPos});\r\n\t\t * });\r\n\t\t * // call as usual, but supply an extra parameter containing multiple options\r\n\t\t * controller.scrollTo(100, {a: 1, b: 2});\r\n\t\t *\r\n\t\t * // define a new scroll function with a callback supplied as an additional parameter\r\n\t\t * controller.scrollTo(function (newScrollPos, callback) {\r\n\t\t *\t$(this).animate({scrollTop: newScrollPos}, 400, \"swing\", callback);\r\n\t\t * });\r\n\t\t * // call as usual, but supply an extra parameter, which is used as a callback in the previously defined custom scroll function\r\n\t\t * controller.scrollTo(100, function() {\r\n\t\t *\tconsole.log(\"scroll has finished.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @param {mixed} scrollTarget - The supplied argument can be one of these types:\r\n\t\t * 1. `number` -> The container will scroll to this new scroll offset.\r\n\t\t * 2. `string` or `object` -> Can be a selector or a DOM object. \r\n\t\t * The container will scroll to the position of this element.\r\n\t\t * 3. `ScrollMagic Scene` -> The container will scroll to the start of this scene.\r\n\t\t * 4. `function` -> This function will be used for future scroll position modifications. \r\n\t\t * This provides a way for you to change the behaviour of scrolling and adding new behaviour like animation. The function receives the new scroll position as a parameter and a reference to the container element using `this`. \r\n\t\t * It may also optionally receive an optional additional parameter (see below) \r\n\t\t * _**NOTE:** \r\n\t\t * All other options will still work as expected, using the new function to scroll._\r\n\t\t * @param {mixed} [additionalParameter] - If a custom scroll function was defined (see above 4.), you may want to supply additional parameters to it, when calling it. You can do this using this parameter – see examples for details. Please note, that this parameter will have no effect, if you use the default scrolling function.\r\n\t\t * @returns {Controller} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.scrollTo = function (scrollTarget, additionalParameter) {\r\n\t\t\tif (_util.type.Number(scrollTarget)) { // excecute\r\n\t\t\t\tsetScrollPos.call(_options.container, scrollTarget, additionalParameter);\r\n\t\t\t} else if (scrollTarget instanceof ScrollMagic.Scene) { // scroll to scene\r\n\t\t\t\tif (scrollTarget.controller() === Controller) { // check if the controller is associated with this scene\r\n\t\t\t\t\tController.scrollTo(scrollTarget.scrollOffset(), additionalParameter);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlog(2, \"scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.\", scrollTarget);\r\n\t\t\t\t}\r\n\t\t\t} else if (_util.type.Function(scrollTarget)) { // assign new scroll function\r\n\t\t\t\tsetScrollPos = scrollTarget;\r\n\t\t\t} else { // scroll to element\r\n\t\t\t\tvar elem = _util.get.elements(scrollTarget)[0];\r\n\t\t\t\tif (elem) {\r\n\t\t\t\t\t// if parent is pin spacer, use spacer position instead so correct start position is returned for pinned elements.\r\n\t\t\t\t\twhile (elem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {\r\n\t\t\t\t\t\telem = elem.parentNode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tparam = _options.vertical ? \"top\" : \"left\", // which param is of interest ?\r\n\t\t\t\t\t\tcontainerOffset = _util.get.offset(_options.container), // container position is needed because element offset is returned in relation to document, not in relation to container.\r\n\t\t\t\t\t\telementOffset = _util.get.offset(elem);\r\n\r\n\t\t\t\t\tif (!_isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent\r\n\t\t\t\t\t\tcontainerOffset[param] -= Controller.scrollPos();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tController.scrollTo(elementOffset[param] - containerOffset[param], additionalParameter);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlog(2, \"scrollTo(): The supplied argument is invalid. Scroll cancelled.\", scrollTarget);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** the current scrollPosition or **Set** a new method to calculate it. \r\n\t\t * -> **GET**:\r\n\t\t * When used as a getter this function will return the current scroll position. \r\n\t\t * To get a cached value use Controller.info(\"scrollPos\"), which will be updated in the update cycle. \r\n\t\t * For vertical controllers it will return the top scroll offset and for horizontal applications it will return the left offset.\r\n\t\t *\r\n\t\t * -> **SET**:\r\n\t\t * When used as a setter this method prodes a way to permanently overwrite the controller's scroll position calculation. \r\n\t\t * A typical usecase is when the scroll position is not reflected by the containers scrollTop or scrollLeft values, but for example by the inner offset of a child container. \r\n\t\t * Moving a child container inside a parent is a commonly used method for several scrolling frameworks, including iScroll. \r\n\t\t * By providing an alternate calculation function you can make sure ScrollMagic receives the correct scroll position. \r\n\t\t * Please also bear in mind that your function should return y values for vertical scrolls an x for horizontals.\r\n\t\t *\r\n\t\t * To change the current scroll position please use `Controller.scrollTo()`.\r\n\t\t * @public\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // get the current scroll Position\r\n\t\t * var scrollPos = controller.scrollPos();\r\n\t\t *\r\n\t\t * // set a new scroll position calculation method\r\n\t\t * controller.scrollPos(function () {\r\n\t\t *\treturn this.info(\"vertical\") ? -mychildcontainer.y : -mychildcontainer.x\r\n\t\t * });\r\n\t\t *\r\n\t\t * @param {function} [scrollPosMethod] - The function to be used for the scroll position calculation of the container.\r\n\t\t * @returns {(number|Controller)} Current scroll position or parent object for chaining.\r\n\t\t */\r\n\t\tthis.scrollPos = function (scrollPosMethod) {\r\n\t\t\tif (!arguments.length) { // get\r\n\t\t\t\treturn getScrollPos.call(Controller);\r\n\t\t\t} else { // set\r\n\t\t\t\tif (_util.type.Function(scrollPosMethod)) {\r\n\t\t\t\t\tgetScrollPos = scrollPosMethod;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlog(2, \"Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'.\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** all infos or one in particular about the controller.\r\n\t\t * @public\r\n\t\t * @example\r\n\t\t * // returns the current scroll position (number)\r\n\t\t * var scrollPos = controller.info(\"scrollPos\");\r\n\t\t *\r\n\t\t * // returns all infos as an object\r\n\t\t * var infos = controller.info();\r\n\t\t *\r\n\t\t * @param {string} [about] - If passed only this info will be returned instead of an object containing all. \r\n\t\t \t\t\t\t\t\t\t Valid options are:\r\n\t\t \t\t\t\t\t\t\t ** `\"size\"` => the current viewport size of the container\r\n\t\t \t\t\t\t\t\t\t ** `\"vertical\"` => true if vertical scrolling, otherwise false\r\n\t\t \t\t\t\t\t\t\t ** `\"scrollPos\"` => the current scroll position\r\n\t\t \t\t\t\t\t\t\t ** `\"scrollDirection\"` => the last known direction of the scroll\r\n\t\t \t\t\t\t\t\t\t ** `\"container\"` => the container element\r\n\t\t \t\t\t\t\t\t\t ** `\"isDocument\"` => true if container element is the document.\r\n\t\t * @returns {(mixed|object)} The requested info(s).\r\n\t\t */\r\n\t\tthis.info = function (about) {\r\n\t\t\tvar values = {\r\n\t\t\t\tsize: _viewPortSize, // contains height or width (in regard to orientation);\r\n\t\t\t\tvertical: _options.vertical,\r\n\t\t\t\tscrollPos: _scrollPos,\r\n\t\t\t\tscrollDirection: _scrollDirection,\r\n\t\t\t\tcontainer: _options.container,\r\n\t\t\t\tisDocument: _isDocument\r\n\t\t\t};\r\n\t\t\tif (!arguments.length) { // get all as an object\r\n\t\t\t\treturn values;\r\n\t\t\t} else if (values[about] !== undefined) {\r\n\t\t\t\treturn values[about];\r\n\t\t\t} else {\r\n\t\t\t\tlog(1, \"ERROR: option \\\"\" + about + \"\\\" is not available\");\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the current loglevel option value.\r\n\t\t * @public\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // get the current value\r\n\t\t * var loglevel = controller.loglevel();\r\n\t\t *\r\n\t\t * // set a new value\r\n\t\t * controller.loglevel(3);\r\n\t\t *\r\n\t\t * @param {number} [newLoglevel] - The new loglevel setting of the Controller. `[0-3]`\r\n\t\t * @returns {(number|Controller)} Current loglevel or parent object for chaining.\r\n\t\t */\r\n\t\tthis.loglevel = function (newLoglevel) {\r\n\t\t\tif (!arguments.length) { // get\r\n\t\t\t\treturn _options.loglevel;\r\n\t\t\t} else if (_options.loglevel != newLoglevel) { // set\r\n\t\t\t\t_options.loglevel = newLoglevel;\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the current enabled state of the controller. \r\n\t\t * This can be used to disable all Scenes connected to the controller without destroying or removing them.\r\n\t\t * @public\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // get the current value\r\n\t\t * var enabled = controller.enabled();\r\n\t\t *\r\n\t\t * // disable the controller\r\n\t\t * controller.enabled(false);\r\n\t\t *\r\n\t\t * @param {boolean} [newState] - The new enabled state of the controller `true` or `false`.\r\n\t\t * @returns {(boolean|Controller)} Current enabled state or parent object for chaining.\r\n\t\t */\r\n\t\tthis.enabled = function (newState) {\r\n\t\t\tif (!arguments.length) { // get\r\n\t\t\t\treturn _enabled;\r\n\t\t\t} else if (_enabled != newState) { // set\r\n\t\t\t\t_enabled = !!newState;\r\n\t\t\t\tController.updateScene(_sceneObjects, true);\r\n\t\t\t}\r\n\t\t\treturn Controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Destroy the Controller, all Scenes and everything.\r\n\t\t * @public\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // without resetting the scenes\r\n\t\t * controller = controller.destroy();\r\n\t\t *\r\n\t\t * // with scene reset\r\n\t\t * controller = controller.destroy(true);\r\n\t\t *\r\n\t\t * @param {boolean} [resetScenes=false] - If `true` the pins and tweens (if existent) of all scenes will be reset.\r\n\t\t * @returns {null} Null to unset handler variables.\r\n\t\t */\r\n\t\tthis.destroy = function (resetScenes) {\r\n\t\t\twindow.clearTimeout(_refreshTimeout);\r\n\t\t\tvar i = _sceneObjects.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\t_sceneObjects[i].destroy(resetScenes);\r\n\t\t\t}\r\n\t\t\t_options.container.removeEventListener(\"resize\", onChange);\r\n\t\t\t_options.container.removeEventListener(\"scroll\", onChange);\r\n\t\t\t_util.cAF(_updateTimeout);\r\n\t\t\tlog(3, \"destroyed \" + NAMESPACE + \" (reset: \" + (resetScenes ? \"true\" : \"false\") + \")\");\r\n\t\t\treturn null;\r\n\t\t};\r\n\r\n\t\t// INIT\r\n\t\tconstruct();\r\n\t\treturn Controller;\r\n\t};\r\n\r\n\t// store pagewide controller options\r\n\tvar CONTROLLER_OPTIONS = {\r\n\t\tdefaults: {\r\n\t\t\tcontainer: window,\r\n\t\t\tvertical: true,\r\n\t\t\tglobalSceneOptions: {},\r\n\t\t\tloglevel: 2,\r\n\t\t\trefreshInterval: 100\r\n\t\t}\r\n\t};\r\n\t/*\r\n\t * method used to add an option to ScrollMagic Scenes.\r\n\t */\r\n\tScrollMagic.Controller.addOption = function (name, defaultValue) {\r\n\t\tCONTROLLER_OPTIONS.defaults[name] = defaultValue;\r\n\t};\r\n\t// instance extension function for plugins\r\n\tScrollMagic.Controller.extend = function (extension) {\r\n\t\tvar oldClass = this;\r\n\t\tScrollMagic.Controller = function () {\r\n\t\t\toldClass.apply(this, arguments);\r\n\t\t\tthis.$super = _util.extend({}, this); // copy parent state\r\n\t\t\treturn extension.apply(this, arguments) || this;\r\n\t\t};\r\n\t\t_util.extend(ScrollMagic.Controller, oldClass); // copy properties\r\n\t\tScrollMagic.Controller.prototype = oldClass.prototype; // copy prototype\r\n\t\tScrollMagic.Controller.prototype.constructor = ScrollMagic.Controller; // restore constructor\r\n\t};\r\n\r\n\r\n\t/**\r\n\t * A Scene defines where the controller should react and how.\r\n\t *\r\n\t * @class\r\n\t *\r\n\t * @example\r\n\t * // create a standard scene and add it to a controller\r\n\t * new ScrollMagic.Scene()\r\n\t *\t\t.addTo(controller);\r\n\t *\r\n\t * // create a scene with custom options and assign a handler to it.\r\n\t * var scene = new ScrollMagic.Scene({\r\n\t * \t\tduration: 100,\r\n\t *\t\toffset: 200,\r\n\t *\t\ttriggerHook: \"onEnter\",\r\n\t *\t\treverse: false\r\n\t * });\r\n\t *\r\n\t * @param {object} [options] - Options for the Scene. The options can be updated at any time. \r\n\t \t\t\t\t\t\t\t Instead of setting the options for each scene individually you can also set them globally in the controller as the controllers `globalSceneOptions` option. The object accepts the same properties as the ones below. \r\n\t \t\t\t\t\t\t\t When a scene is added to the controller the options defined using the Scene constructor will be overwritten by those set in `globalSceneOptions`.\r\n\t * @param {(number|string|function)} [options.duration=0] - The duration of the scene. \r\n\t \t\t\t\t\tPlease see `Scene.duration()` for details.\r\n\t * @param {number} [options.offset=0] - Offset Value for the Trigger Position. If no triggerElement is defined this will be the scroll distance from the start of the page, after which the scene will start.\r\n\t * @param {(string|object)} [options.triggerElement=null] - Selector or DOM object that defines the start of the scene. If undefined the scene will start right at the start of the page (unless an offset is set).\r\n\t * @param {(number|string)} [options.triggerHook=\"onCenter\"] - Can be a number between 0 and 1 defining the position of the trigger Hook in relation to the viewport. \r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t Can also be defined using a string:\r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ** `\"onEnter\"` => `1`\r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ** `\"onCenter\"` => `0.5`\r\n\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t ** `\"onLeave\"` => `0`\r\n\t * @param {boolean} [options.reverse=true] - Should the scene reverse, when scrolling up?\r\n\t * @param {number} [options.loglevel=2] - Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic.\r\n\t \t\t\t\t\t\t\t\t\t\t ** `0` => silent\r\n\t \t\t\t\t\t\t\t\t\t\t ** `1` => errors\r\n\t \t\t\t\t\t\t\t\t\t\t ** `2` => errors, warnings\r\n\t \t\t\t\t\t\t\t\t\t\t ** `3` => errors, warnings, debuginfo\r\n\t * \r\n\t */\r\n\tScrollMagic.Scene = function (options) {\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * settings\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tvar\r\n\t\t\tNAMESPACE = 'ScrollMagic.Scene',\r\n\t\t\tSCENE_STATE_BEFORE = 'BEFORE',\r\n\t\t\tSCENE_STATE_DURING = 'DURING',\r\n\t\t\tSCENE_STATE_AFTER = 'AFTER',\r\n\t\t\tDEFAULT_OPTIONS = SCENE_OPTIONS.defaults;\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * private vars\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tvar\r\n\t\t\tScene = this,\r\n\t\t\t_options = _util.extend({}, DEFAULT_OPTIONS, options),\r\n\t\t\t_state = SCENE_STATE_BEFORE,\r\n\t\t\t_progress = 0,\r\n\t\t\t_scrollOffset = {\r\n\t\t\t\tstart: 0,\r\n\t\t\t\tend: 0\r\n\t\t\t}, // reflects the controllers's scroll position for the start and end of the scene respectively\r\n\t\t\t_triggerPos = 0,\r\n\t\t\t_enabled = true,\r\n\t\t\t_durationUpdateMethod,\r\n\t\t\t_controller;\r\n\r\n\t\t/**\r\n\t\t * Internal constructor function of the ScrollMagic Scene\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar construct = function () {\r\n\t\t\tfor (var key in _options) { // check supplied options\r\n\t\t\t\tif (!DEFAULT_OPTIONS.hasOwnProperty(key)) {\r\n\t\t\t\t\tlog(2, \"WARNING: Unknown option \\\"\" + key + \"\\\"\");\r\n\t\t\t\t\tdelete _options[key];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// add getters/setters for all possible options\r\n\t\t\tfor (var optionName in DEFAULT_OPTIONS) {\r\n\t\t\t\taddSceneOption(optionName);\r\n\t\t\t}\r\n\t\t\t// validate all options\r\n\t\t\tvalidateOption();\r\n\t\t};\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * Event Management\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\tvar _listeners = {};\r\n\t\t/**\r\n\t\t * Scene start event. \r\n\t\t * Fires whenever the scroll position its the starting point of the scene. \r\n\t\t * It will also fire when scrolling back up going over the start position of the scene. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.\r\n\t\t *\r\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#start\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"start\", function (event) {\r\n\t\t * \tconsole.log(\"Hit start point of scene.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\r\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"` or `\"DURING\"`\r\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene end event. \r\n\t\t * Fires whenever the scroll position its the ending point of the scene. \r\n\t\t * It will also fire when scrolling back up from after the scene and going over its end position. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback.\r\n\t\t *\r\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#end\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"end\", function (event) {\r\n\t\t * \tconsole.log(\"Hit end point of scene.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\r\n\t\t * @property {string} event.state - The current state of the scene `\"DURING\"` or `\"AFTER\"`\r\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene enter event. \r\n\t\t * Fires whenever the scene enters the \"DURING\" state. \r\n\t\t * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene enters its active scroll timeframe, regardless of the scroll-direction.\r\n\t\t *\r\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#enter\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"enter\", function (event) {\r\n\t\t * \tconsole.log(\"Scene entered.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\r\n\t\t * @property {string} event.state - The current state of the scene - always `\"DURING\"`\r\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene leave event. \r\n\t\t * Fires whenever the scene's state goes from \"DURING\" to either \"BEFORE\" or \"AFTER\". \r\n\t\t * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene leaves its active scroll timeframe, regardless of the scroll-direction.\r\n\t\t *\r\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#leave\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"leave\", function (event) {\r\n\t\t * \tconsole.log(\"Scene left.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\r\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"` or `\"AFTER\"`\r\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene update event. \r\n\t\t * Fires whenever the scene is updated (but not necessarily changes the progress).\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#update\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"update\", function (event) {\r\n\t\t * \tconsole.log(\"Scene updated.\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.startPos - The starting position of the scene (in relation to the conainer)\r\n\t\t * @property {number} event.endPos - The ending position of the scene (in relation to the conainer)\r\n\t\t * @property {number} event.scrollPos - The current scroll position of the container\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene progress event. \r\n\t\t * Fires whenever the progress of the scene changes.\r\n\t\t *\r\n\t\t * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#progress\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"progress\", function (event) {\r\n\t\t * \tconsole.log(\"Scene progress changed to \" + event.progress);\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {number} event.progress - Reflects the current progress of the scene\r\n\t\t * @property {string} event.state - The current state of the scene `\"BEFORE\"`, `\"DURING\"` or `\"AFTER\"`\r\n\t\t * @property {string} event.scrollDirection - Indicates which way we are scrolling `\"PAUSED\"`, `\"FORWARD\"` or `\"REVERSE\"`\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene change event. \r\n\t\t * Fires whenvever a property of the scene is changed.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#change\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"change\", function (event) {\r\n\t\t * \tconsole.log(\"Scene Property \\\"\" + event.what + \"\\\" changed to \" + event.newval);\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {string} event.what - Indicates what value has been changed\r\n\t\t * @property {mixed} event.newval - The new value of the changed property\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene shift event. \r\n\t\t * Fires whenvever the start or end **scroll offset** of the scene change.\r\n\t\t * This happens explicitely, when one of these values change: `offset`, `duration` or `triggerHook`.\r\n\t\t * It will fire implicitly when the `triggerElement` changes, if the new element has a different position (most cases).\r\n\t\t * It will also fire implicitly when the size of the container changes and the triggerHook is anything other than `onLeave`.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#shift\r\n\t\t * @since 1.1.0\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"shift\", function (event) {\r\n\t\t * \tconsole.log(\"Scene moved, because the \" + event.reason + \" has changed.)\");\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {string} event.reason - Indicates why the scene has shifted\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene destroy event. \r\n\t\t * Fires whenvever the scene is destroyed.\r\n\t\t * This can be used to tidy up custom behaviour used in events.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#destroy\r\n\t\t * @since 1.1.0\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"enter\", function (event) {\r\n\t\t * // add custom action\r\n\t\t * $(\"#my-elem\").left(\"200\");\r\n\t\t * })\r\n\t\t * .on(\"destroy\", function (event) {\r\n\t\t * // reset my element to start position\r\n\t\t * if (event.reset) {\r\n\t\t * $(\"#my-elem\").left(\"0\");\r\n\t\t * }\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {boolean} event.reset - Indicates if the destroy method was called with reset `true` or `false`.\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene add event. \r\n\t\t * Fires when the scene is added to a controller.\r\n\t\t * This is mostly used by plugins to know that change might be due.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#add\r\n\t\t * @since 2.0.0\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"add\", function (event) {\r\n\t\t * \tconsole.log('Scene was added to a new controller.');\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t * @property {boolean} event.controller - The controller object the scene was added to.\r\n\t\t */\r\n\t\t/**\r\n\t\t * Scene remove event. \r\n\t\t * Fires when the scene is removed from a controller.\r\n\t\t * This is mostly used by plugins to know that change might be due.\r\n\t\t *\r\n\t\t * @event ScrollMagic.Scene#remove\r\n\t\t * @since 2.0.0\r\n\t\t *\r\n\t\t * @example\r\n\t\t * scene.on(\"remove\", function (event) {\r\n\t\t * \tconsole.log('Scene was removed from its controller.');\r\n\t\t * });\r\n\t\t *\r\n\t\t * @property {object} event - The event Object passed to each callback\r\n\t\t * @property {string} event.type - The name of the event\r\n\t\t * @property {Scene} event.target - The Scene object that triggered this event\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * Add one ore more event listener. \r\n\t\t * The callback function will be fired at the respective event, and an object containing relevant data will be passed to the callback.\r\n\t\t * @method ScrollMagic.Scene#on\r\n\t\t *\r\n\t\t * @example\r\n\t\t * function callback (event) {\r\n\t\t * \t\tconsole.log(\"Event fired! (\" + event.type + \")\");\r\n\t\t * }\r\n\t\t * // add listeners\r\n\t\t * scene.on(\"change update progress start end enter leave\", callback);\r\n\t\t *\r\n\t\t * @param {string} names - The name or names of the event the callback should be attached to.\r\n\t\t * @param {function} callback - A function that should be executed, when the event is dispatched. An event object will be passed to the callback.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.on = function (names, callback) {\r\n\t\t\tif (_util.type.Function(callback)) {\r\n\t\t\t\tnames = names.trim().split(' ');\r\n\t\t\t\tnames.forEach(function (fullname) {\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tnameparts = fullname.split('.'),\r\n\t\t\t\t\t\teventname = nameparts[0],\r\n\t\t\t\t\t\tnamespace = nameparts[1];\r\n\t\t\t\t\tif (eventname != \"*\") { // disallow wildcards\r\n\t\t\t\t\t\tif (!_listeners[eventname]) {\r\n\t\t\t\t\t\t\t_listeners[eventname] = [];\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t_listeners[eventname].push({\r\n\t\t\t\t\t\t\tnamespace: namespace || '',\r\n\t\t\t\t\t\t\tcallback: callback\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\tlog(1, \"ERROR when calling '.on()': Supplied callback for '\" + names + \"' is not a valid function!\");\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove one or more event listener.\r\n\t\t * @method ScrollMagic.Scene#off\r\n\t\t *\r\n\t\t * @example\r\n\t\t * function callback (event) {\r\n\t\t * \t\tconsole.log(\"Event fired! (\" + event.type + \")\");\r\n\t\t * }\r\n\t\t * // add listeners\r\n\t\t * scene.on(\"change update\", callback);\r\n\t\t * // remove listeners\r\n\t\t * scene.off(\"change update\", callback);\r\n\t\t *\r\n\t\t * @param {string} names - The name or names of the event that should be removed.\r\n\t\t * @param {function} [callback] - A specific callback function that should be removed. If none is passed all callbacks to the event listener will be removed.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.off = function (names, callback) {\r\n\t\t\tif (!names) {\r\n\t\t\t\tlog(1, \"ERROR: Invalid event name supplied.\");\r\n\t\t\t\treturn Scene;\r\n\t\t\t}\r\n\t\t\tnames = names.trim().split(' ');\r\n\t\t\tnames.forEach(function (fullname, key) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tnameparts = fullname.split('.'),\r\n\t\t\t\t\teventname = nameparts[0],\r\n\t\t\t\t\tnamespace = nameparts[1] || '',\r\n\t\t\t\t\tremoveList = eventname === '*' ? Object.keys(_listeners) : [eventname];\r\n\t\t\t\tremoveList.forEach(function (remove) {\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tlist = _listeners[remove] || [],\r\n\t\t\t\t\t\ti = list.length;\r\n\t\t\t\t\twhile (i--) {\r\n\t\t\t\t\t\tvar listener = list[i];\r\n\t\t\t\t\t\tif (listener && (namespace === listener.namespace || namespace === '*') && (!callback || callback == listener.callback)) {\r\n\t\t\t\t\t\t\tlist.splice(i, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!list.length) {\r\n\t\t\t\t\t\tdelete _listeners[remove];\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Trigger an event.\r\n\t\t * @method ScrollMagic.Scene#trigger\r\n\t\t *\r\n\t\t * @example\r\n\t\t * this.trigger(\"change\");\r\n\t\t *\r\n\t\t * @param {string} name - The name of the event that should be triggered.\r\n\t\t * @param {object} [vars] - An object containing info that should be passed to the callback.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.trigger = function (name, vars) {\r\n\t\t\tif (name) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tnameparts = name.trim().split('.'),\r\n\t\t\t\t\teventname = nameparts[0],\r\n\t\t\t\t\tnamespace = nameparts[1],\r\n\t\t\t\t\tlisteners = _listeners[eventname];\r\n\t\t\t\tlog(3, 'event fired:', eventname, vars ? \"->\" : '', vars || '');\r\n\t\t\t\tif (listeners) {\r\n\t\t\t\t\tlisteners.forEach(function (listener, key) {\r\n\t\t\t\t\t\tif (!namespace || namespace === listener.namespace) {\r\n\t\t\t\t\t\t\tlistener.callback.call(Scene, new ScrollMagic.Event(eventname, listener.namespace, Scene, vars));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tlog(1, \"ERROR: Invalid event name supplied.\");\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t// set event listeners\r\n\t\tScene\r\n\t\t\t.on(\"change.internal\", function (e) {\r\n\t\t\t\tif (e.what !== \"loglevel\" && e.what !== \"tweenChanges\") { // no need for a scene update scene with these options...\r\n\t\t\t\t\tif (e.what === \"triggerElement\") {\r\n\t\t\t\t\t\tupdateTriggerElementPosition();\r\n\t\t\t\t\t} else if (e.what === \"reverse\") { // the only property left that may have an impact on the current scene state. Everything else is handled by the shift event.\r\n\t\t\t\t\t\tScene.update();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on(\"shift.internal\", function (e) {\r\n\t\t\t\tupdateScrollOffset();\r\n\t\t\t\tScene.update(); // update scene to reflect new position\r\n\t\t\t});\r\n\r\n\t\t/**\r\n\t\t * Send a debug message to the console.\r\n\t\t * @private\r\n\t\t * but provided publicly with _log for plugins\r\n\t\t *\r\n\t\t * @param {number} loglevel - The loglevel required to initiate output for the message.\r\n\t\t * @param {...mixed} output - One or more variables that should be passed to the console.\r\n\t\t */\r\n\t\tvar log = this._log = function (loglevel, output) {\r\n\t\t\tif (_options.loglevel >= loglevel) {\r\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \") ->\");\r\n\t\t\t\t_util.log.apply(window, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Add the scene to a controller. \r\n\t\t * This is the equivalent to `Controller.addScene(scene)`.\r\n\t\t * @method ScrollMagic.Scene#addTo\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // add a scene to a ScrollMagic Controller\r\n\t\t * scene.addTo(controller);\r\n\t\t *\r\n\t\t * @param {ScrollMagic.Controller} controller - The controller to which the scene should be added.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.addTo = function (controller) {\r\n\t\t\tif (!(controller instanceof ScrollMagic.Controller)) {\r\n\t\t\t\tlog(1, \"ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic Controller\");\r\n\t\t\t} else if (_controller != controller) {\r\n\t\t\t\t// new controller\r\n\t\t\t\tif (_controller) { // was associated to a different controller before, so remove it...\r\n\t\t\t\t\t_controller.removeScene(Scene);\r\n\t\t\t\t}\r\n\t\t\t\t_controller = controller;\r\n\t\t\t\tvalidateOption();\r\n\t\t\t\tupdateDuration(true);\r\n\t\t\t\tupdateTriggerElementPosition(true);\r\n\t\t\t\tupdateScrollOffset();\r\n\t\t\t\t_controller.info(\"container\").addEventListener('resize', onContainerResize);\r\n\t\t\t\tcontroller.addScene(Scene);\r\n\t\t\t\tScene.trigger(\"add\", {\r\n\t\t\t\t\tcontroller: _controller\r\n\t\t\t\t});\r\n\t\t\t\tlog(3, \"added \" + NAMESPACE + \" to controller\");\r\n\t\t\t\tScene.update();\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the current enabled state of the scene. \r\n\t\t * This can be used to disable this scene without removing or destroying it.\r\n\t\t * @method ScrollMagic.Scene#enabled\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // get the current value\r\n\t\t * var enabled = scene.enabled();\r\n\t\t *\r\n\t\t * // disable the scene\r\n\t\t * scene.enabled(false);\r\n\t\t *\r\n\t\t * @param {boolean} [newState] - The new enabled state of the scene `true` or `false`.\r\n\t\t * @returns {(boolean|Scene)} Current enabled state or parent object for chaining.\r\n\t\t */\r\n\t\tthis.enabled = function (newState) {\r\n\t\t\tif (!arguments.length) { // get\r\n\t\t\t\treturn _enabled;\r\n\t\t\t} else if (_enabled != newState) { // set\r\n\t\t\t\t_enabled = !!newState;\r\n\t\t\t\tScene.update(true);\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove the scene from the controller. \r\n\t\t * This is the equivalent to `Controller.removeScene(scene)`.\r\n\t\t * The scene will not be updated anymore until you readd it to a controller.\r\n\t\t * To remove the pin or the tween you need to call removeTween() or removePin() respectively.\r\n\t\t * @method ScrollMagic.Scene#remove\r\n\t\t * @example\r\n\t\t * // remove the scene from its controller\r\n\t\t * scene.remove();\r\n\t\t *\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.remove = function () {\r\n\t\t\tif (_controller) {\r\n\t\t\t\t_controller.info(\"container\").removeEventListener('resize', onContainerResize);\r\n\t\t\t\tvar tmpParent = _controller;\r\n\t\t\t\t_controller = undefined;\r\n\t\t\t\ttmpParent.removeScene(Scene);\r\n\t\t\t\tScene.trigger(\"remove\");\r\n\t\t\t\tlog(3, \"removed \" + NAMESPACE + \" from controller\");\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Destroy the scene and everything.\r\n\t\t * @method ScrollMagic.Scene#destroy\r\n\t\t * @example\r\n\t\t * // destroy the scene without resetting the pin and tween to their initial positions\r\n\t\t * scene = scene.destroy();\r\n\t\t *\r\n\t\t * // destroy the scene and reset the pin and tween\r\n\t\t * scene = scene.destroy(true);\r\n\t\t *\r\n\t\t * @param {boolean} [reset=false] - If `true` the pin and tween (if existent) will be reset.\r\n\t\t * @returns {null} Null to unset handler variables.\r\n\t\t */\r\n\t\tthis.destroy = function (reset) {\r\n\t\t\tScene.trigger(\"destroy\", {\r\n\t\t\t\treset: reset\r\n\t\t\t});\r\n\t\t\tScene.remove();\r\n\t\t\tScene.off(\"*.*\");\r\n\t\t\tlog(3, \"destroyed \" + NAMESPACE + \" (reset: \" + (reset ? \"true\" : \"false\") + \")\");\r\n\t\t\treturn null;\r\n\t\t};\r\n\r\n\r\n\t\t/**\r\n\t\t * Updates the Scene to reflect the current state. \r\n\t\t * This is the equivalent to `Controller.updateScene(scene, immediately)`. \r\n\t\t * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. \r\n\t\t * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress.\r\n\t\t * This means an update doesn't necessarily result in a progress change. The `progress` event will be fired if the progress has indeed changed between this update and the last. \r\n\t\t * _**NOTE:** This method gets called constantly whenever ScrollMagic detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._\r\n\t\t * @method ScrollMagic.Scene#update\r\n\t\t * @example\r\n\t\t * // update the scene on next tick\r\n\t\t * scene.update();\r\n\t\t *\r\n\t\t * // update the scene immediately\r\n\t\t * scene.update(true);\r\n\t\t *\r\n\t\t * @fires Scene.update\r\n\t\t *\r\n\t\t * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance).\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.update = function (immediately) {\r\n\t\t\tif (_controller) {\r\n\t\t\t\tif (immediately) {\r\n\t\t\t\t\tif (_controller.enabled() && _enabled) {\r\n\t\t\t\t\t\tvar\r\n\t\t\t\t\t\t\tscrollPos = _controller.info(\"scrollPos\"),\r\n\t\t\t\t\t\t\tnewProgress;\r\n\r\n\t\t\t\t\t\tif (_options.duration > 0) {\r\n\t\t\t\t\t\t\tnewProgress = (scrollPos - _scrollOffset.start) / (_scrollOffset.end - _scrollOffset.start);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tnewProgress = scrollPos >= _scrollOffset.start ? 1 : 0;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tScene.trigger(\"update\", {\r\n\t\t\t\t\t\t\tstartPos: _scrollOffset.start,\r\n\t\t\t\t\t\t\tendPos: _scrollOffset.end,\r\n\t\t\t\t\t\t\tscrollPos: scrollPos\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tScene.progress(newProgress);\r\n\t\t\t\t\t} else if (_pin && _state === SCENE_STATE_DURING) {\r\n\t\t\t\t\t\tupdatePinState(true); // unpin in position\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t_controller.updateScene(Scene, false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates dynamic scene variables like the trigger element position or the duration.\r\n\t\t * This method is automatically called in regular intervals from the controller. See {@link ScrollMagic.Controller} option `refreshInterval`.\r\n\t\t * \r\n\t\t * You can call it to minimize lag, for example when you intentionally change the position of the triggerElement.\r\n\t\t * If you don't it will simply be updated in the next refresh interval of the container, which is usually sufficient.\r\n\t\t *\r\n\t\t * @method ScrollMagic.Scene#refresh\r\n\t\t * @since 1.1.0\r\n\t\t * @example\r\n\t\t * scene = new ScrollMagic.Scene({triggerElement: \"#trigger\"});\r\n\t\t * \r\n\t\t * // change the position of the trigger\r\n\t\t * $(\"#trigger\").css(\"top\", 500);\r\n\t\t * // immediately let the scene know of this change\r\n\t\t * scene.refresh();\r\n\t\t *\r\n\t\t * @fires {@link Scene.shift}, if the trigger element position or the duration changed\r\n\t\t * @fires {@link Scene.change}, if the duration changed\r\n\t\t *\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.refresh = function () {\r\n\t\t\tupdateDuration();\r\n\t\t\tupdateTriggerElementPosition();\r\n\t\t\t// update trigger element position\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the scene's progress. \r\n\t\t * Usually it shouldn't be necessary to use this as a setter, as it is set automatically by scene.update(). \r\n\t\t * The order in which the events are fired depends on the duration of the scene:\r\n\t\t * 1. Scenes with `duration == 0`: \r\n\t\t * Scenes that have no duration by definition have no ending. Thus the `end` event will never be fired. \r\n\t\t * When the trigger position of the scene is passed the events are always fired in this order: \r\n\t\t * `enter`, `start`, `progress` when scrolling forward \r\n\t\t * and \r\n\t\t * `progress`, `start`, `leave` when scrolling in reverse\r\n\t\t * 2. Scenes with `duration > 0`: \r\n\t\t * Scenes with a set duration have a defined start and end point. \r\n\t\t * When scrolling past the start position of the scene it will fire these events in this order: \r\n\t\t * `enter`, `start`, `progress` \r\n\t\t * When continuing to scroll and passing the end point it will fire these events: \r\n\t\t * `progress`, `end`, `leave` \r\n\t\t * When reversing through the end point these events are fired: \r\n\t\t * `enter`, `end`, `progress` \r\n\t\t * And when continuing to scroll past the start position in reverse it will fire: \r\n\t\t * `progress`, `start`, `leave` \r\n\t\t * In between start and end the `progress` event will be called constantly, whenever the progress changes.\r\n\t\t * \r\n\t\t * In short: \r\n\t\t * `enter` events will always trigger **before** the progress update and `leave` envents will trigger **after** the progress update. \r\n\t\t * `start` and `end` will always trigger at their respective position.\r\n\t\t * \r\n\t\t * Please review the event descriptions for details on the events and the event object that is passed to the callback.\r\n\t\t * \r\n\t\t * @method ScrollMagic.Scene#progress\r\n\t\t * @example\r\n\t\t * // get the current scene progress\r\n\t\t * var progress = scene.progress();\r\n\t\t *\r\n\t\t * // set new scene progress\r\n\t\t * scene.progress(0.3);\r\n\t\t *\r\n\t\t * @fires {@link Scene.enter}, when used as setter\r\n\t\t * @fires {@link Scene.start}, when used as setter\r\n\t\t * @fires {@link Scene.progress}, when used as setter\r\n\t\t * @fires {@link Scene.end}, when used as setter\r\n\t\t * @fires {@link Scene.leave}, when used as setter\r\n\t\t *\r\n\t\t * @param {number} [progress] - The new progress value of the scene `[0-1]`.\r\n\t\t * @returns {number} `get` - Current scene progress.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\t\tthis.progress = function (progress) {\r\n\t\t\tif (!arguments.length) { // get\r\n\t\t\t\treturn _progress;\r\n\t\t\t} else { // set\r\n\t\t\t\tvar\r\n\t\t\t\t\tdoUpdate = false,\r\n\t\t\t\t\toldState = _state,\r\n\t\t\t\t\tscrollDirection = _controller ? _controller.info(\"scrollDirection\") : 'PAUSED',\r\n\t\t\t\t\treverseOrForward = _options.reverse || progress >= _progress;\r\n\t\t\t\tif (_options.duration === 0) {\r\n\t\t\t\t\t// zero duration scenes\r\n\t\t\t\t\tdoUpdate = _progress != progress;\r\n\t\t\t\t\t_progress = progress < 1 && reverseOrForward ? 0 : 1;\r\n\t\t\t\t\t_state = _progress === 0 ? SCENE_STATE_BEFORE : SCENE_STATE_DURING;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// scenes with start and end\r\n\t\t\t\t\tif (progress < 0 && _state !== SCENE_STATE_BEFORE && reverseOrForward) {\r\n\t\t\t\t\t\t// go back to initial state\r\n\t\t\t\t\t\t_progress = 0;\r\n\t\t\t\t\t\t_state = SCENE_STATE_BEFORE;\r\n\t\t\t\t\t\tdoUpdate = true;\r\n\t\t\t\t\t} else if (progress >= 0 && progress < 1 && reverseOrForward) {\r\n\t\t\t\t\t\t_progress = progress;\r\n\t\t\t\t\t\t_state = SCENE_STATE_DURING;\r\n\t\t\t\t\t\tdoUpdate = true;\r\n\t\t\t\t\t} else if (progress >= 1 && _state !== SCENE_STATE_AFTER) {\r\n\t\t\t\t\t\t_progress = 1;\r\n\t\t\t\t\t\t_state = SCENE_STATE_AFTER;\r\n\t\t\t\t\t\tdoUpdate = true;\r\n\t\t\t\t\t} else if (_state === SCENE_STATE_DURING && !reverseOrForward) {\r\n\t\t\t\t\t\tupdatePinState(); // in case we scrolled backwards mid-scene and reverse is disabled => update the pin position, so it doesn't move back as well.\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (doUpdate) {\r\n\t\t\t\t\t// fire events\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\teventVars = {\r\n\t\t\t\t\t\t\tprogress: _progress,\r\n\t\t\t\t\t\t\tstate: _state,\r\n\t\t\t\t\t\t\tscrollDirection: scrollDirection\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tstateChanged = _state != oldState;\r\n\r\n\t\t\t\t\tvar trigger = function (eventName) { // tmp helper to simplify code\r\n\t\t\t\t\t\tScene.trigger(eventName, eventVars);\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\tif (stateChanged) { // enter events\r\n\t\t\t\t\t\tif (oldState !== SCENE_STATE_DURING) {\r\n\t\t\t\t\t\t\ttrigger(\"enter\");\r\n\t\t\t\t\t\t\ttrigger(oldState === SCENE_STATE_BEFORE ? \"start\" : \"end\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\ttrigger(\"progress\");\r\n\t\t\t\t\tif (stateChanged) { // leave events\r\n\t\t\t\t\t\tif (_state !== SCENE_STATE_DURING) {\r\n\t\t\t\t\t\t\ttrigger(_state === SCENE_STATE_BEFORE ? \"start\" : \"end\");\r\n\t\t\t\t\t\t\ttrigger(\"leave\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Scene;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\t/**\r\n\t\t * Update the start and end scrollOffset of the container.\r\n\t\t * The positions reflect what the controller's scroll position will be at the start and end respectively.\r\n\t\t * Is called, when:\r\n\t\t * - Scene event \"change\" is called with: offset, triggerHook, duration \r\n\t\t * - scroll container event \"resize\" is called\r\n\t\t * - the position of the triggerElement changes\r\n\t\t * - the controller changes -> addTo()\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updateScrollOffset = function () {\r\n\t\t\t_scrollOffset = {\r\n\t\t\t\tstart: _triggerPos + _options.offset\r\n\t\t\t};\r\n\t\t\tif (_controller && _options.triggerElement) {\r\n\t\t\t\t// take away triggerHook portion to get relative to top\r\n\t\t\t\t_scrollOffset.start -= _controller.info(\"size\") * _options.triggerHook;\r\n\t\t\t}\r\n\t\t\t_scrollOffset.end = _scrollOffset.start + _options.duration;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates the duration if set to a dynamic function.\r\n\t\t * This method is called when the scene is added to a controller and in regular intervals from the controller through scene.refresh().\r\n\t\t * \r\n\t\t * @fires {@link Scene.change}, if the duration changed\r\n\t\t * @fires {@link Scene.shift}, if the duration changed\r\n\t\t *\r\n\t\t * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updateDuration = function (suppressEvents) {\r\n\t\t\t// update duration\r\n\t\t\tif (_durationUpdateMethod) {\r\n\t\t\t\tvar varname = \"duration\";\r\n\t\t\t\tif (changeOption(varname, _durationUpdateMethod.call(Scene)) && !suppressEvents) { // set\r\n\t\t\t\t\tScene.trigger(\"change\", {\r\n\t\t\t\t\t\twhat: varname,\r\n\t\t\t\t\t\tnewval: _options[varname]\r\n\t\t\t\t\t});\r\n\t\t\t\t\tScene.trigger(\"shift\", {\r\n\t\t\t\t\t\treason: varname\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates the position of the triggerElement, if present.\r\n\t\t * This method is called ...\r\n\t\t * - ... when the triggerElement is changed\r\n\t\t * - ... when the scene is added to a (new) controller\r\n\t\t * - ... in regular intervals from the controller through scene.refresh().\r\n\t\t * \r\n\t\t * @fires {@link Scene.shift}, if the position changed\r\n\t\t *\r\n\t\t * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updateTriggerElementPosition = function (suppressEvents) {\r\n\t\t\tvar\r\n\t\t\t\telementPos = 0,\r\n\t\t\t\ttelem = _options.triggerElement;\r\n\t\t\tif (_controller && (telem || _triggerPos > 0)) { // either an element exists or was removed and the triggerPos is still > 0\r\n\t\t\t\tif (telem) { // there currently a triggerElement set\r\n\t\t\t\t\tif (telem.parentNode) { // check if element is still attached to DOM\r\n\t\t\t\t\t\tvar\r\n\t\t\t\t\t\t\tcontrollerInfo = _controller.info(),\r\n\t\t\t\t\t\t\tcontainerOffset = _util.get.offset(controllerInfo.container), // container position is needed because element offset is returned in relation to document, not in relation to container.\r\n\t\t\t\t\t\t\tparam = controllerInfo.vertical ? \"top\" : \"left\"; // which param is of interest ?\r\n\r\n\t\t\t\t\t\t// if parent is spacer, use spacer position instead so correct start position is returned for pinned elements.\r\n\t\t\t\t\t\twhile (telem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) {\r\n\t\t\t\t\t\t\ttelem = telem.parentNode;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar elementOffset = _util.get.offset(telem);\r\n\r\n\t\t\t\t\t\tif (!controllerInfo.isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent\r\n\t\t\t\t\t\t\tcontainerOffset[param] -= _controller.scrollPos();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\telementPos = elementOffset[param] - containerOffset[param];\r\n\r\n\t\t\t\t\t} else { // there was an element, but it was removed from DOM\r\n\t\t\t\t\t\tlog(2, \"WARNING: triggerElement was removed from DOM and will be reset to\", undefined);\r\n\t\t\t\t\t\tScene.triggerElement(undefined); // unset, so a change event is triggered\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar changed = elementPos != _triggerPos;\r\n\t\t\t\t_triggerPos = elementPos;\r\n\t\t\t\tif (changed && !suppressEvents) {\r\n\t\t\t\t\tScene.trigger(\"shift\", {\r\n\t\t\t\t\t\treason: \"triggerElementPosition\"\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Trigger a shift event, when the container is resized and the triggerHook is > 1.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar onContainerResize = function (e) {\r\n\t\t\tif (_options.triggerHook > 0) {\r\n\t\t\t\tScene.trigger(\"shift\", {\r\n\t\t\t\t\treason: \"containerResize\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tvar _validate = _util.extend(SCENE_OPTIONS.validate, {\r\n\t\t\t// validation for duration handled internally for reference to private var _durationMethod\r\n\t\t\tduration: function (val) {\r\n\t\t\t\tif (_util.type.String(val) && val.match(/^(\\.|\\d)*\\d+%$/)) {\r\n\t\t\t\t\t// percentage value\r\n\t\t\t\t\tvar perc = parseFloat(val) / 100;\r\n\t\t\t\t\tval = function () {\r\n\t\t\t\t\t\treturn _controller ? _controller.info(\"size\") * perc : 0;\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif (_util.type.Function(val)) {\r\n\t\t\t\t\t// function\r\n\t\t\t\t\t_durationUpdateMethod = val;\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tval = parseFloat(_durationUpdateMethod.call(Scene));\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tval = -1; // will cause error below\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t// val has to be float\r\n\t\t\t\tval = parseFloat(val);\r\n\t\t\t\tif (!_util.type.Number(val) || val < 0) {\r\n\t\t\t\t\tif (_durationUpdateMethod) {\r\n\t\t\t\t\t\t_durationUpdateMethod = undefined;\r\n\t\t\t\t\t\tthrow [\"Invalid return value of supplied function for option \\\"duration\\\":\", val];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow [\"Invalid value for option \\\"duration\\\":\", val];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t/**\r\n\t\t * Checks the validity of a specific or all options and reset to default if neccessary.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar validateOption = function (check) {\r\n\t\t\tcheck = arguments.length ? [check] : Object.keys(_validate);\r\n\t\t\tcheck.forEach(function (optionName, key) {\r\n\t\t\t\tvar value;\r\n\t\t\t\tif (_validate[optionName]) { // there is a validation method for this option\r\n\t\t\t\t\ttry { // validate value\r\n\t\t\t\t\t\tvalue = _validate[optionName](_options[optionName]);\r\n\t\t\t\t\t} catch (e) { // validation failed -> reset to default\r\n\t\t\t\t\t\tvalue = DEFAULT_OPTIONS[optionName];\r\n\t\t\t\t\t\tvar logMSG = _util.type.String(e) ? [e] : e;\r\n\t\t\t\t\t\tif (_util.type.Array(logMSG)) {\r\n\t\t\t\t\t\t\tlogMSG[0] = \"ERROR: \" + logMSG[0];\r\n\t\t\t\t\t\t\tlogMSG.unshift(1); // loglevel 1 for error msg\r\n\t\t\t\t\t\t\tlog.apply(this, logMSG);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlog(1, \"ERROR: Problem executing validation callback for option '\" + optionName + \"':\", e.message);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} finally {\r\n\t\t\t\t\t\t_options[optionName] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Helper used by the setter/getters for scene options\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar changeOption = function (varname, newval) {\r\n\t\t\tvar\r\n\t\t\t\tchanged = false,\r\n\t\t\t\toldval = _options[varname];\r\n\t\t\tif (_options[varname] != newval) {\r\n\t\t\t\t_options[varname] = newval;\r\n\t\t\t\tvalidateOption(varname); // resets to default if necessary\r\n\t\t\t\tchanged = oldval != _options[varname];\r\n\t\t\t}\r\n\t\t\treturn changed;\r\n\t\t};\r\n\r\n\t\t// generate getters/setters for all options\r\n\t\tvar addSceneOption = function (optionName) {\r\n\t\t\tif (!Scene[optionName]) {\r\n\t\t\t\tScene[optionName] = function (newVal) {\r\n\t\t\t\t\tif (!arguments.length) { // get\r\n\t\t\t\t\t\treturn _options[optionName];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (optionName === \"duration\") { // new duration is set, so any previously set function must be unset\r\n\t\t\t\t\t\t\t_durationUpdateMethod = undefined;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (changeOption(optionName, newVal)) { // set\r\n\t\t\t\t\t\t\tScene.trigger(\"change\", {\r\n\t\t\t\t\t\t\t\twhat: optionName,\r\n\t\t\t\t\t\t\t\tnewval: _options[optionName]\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\tif (SCENE_OPTIONS.shifts.indexOf(optionName) > -1) {\r\n\t\t\t\t\t\t\t\tScene.trigger(\"shift\", {\r\n\t\t\t\t\t\t\t\t\treason: optionName\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn Scene;\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the duration option value.\r\n\t\t *\r\n\t\t * As a **setter** it accepts three types of parameters:\r\n\t\t * 1. `number`: Sets the duration of the scene to exactly this amount of pixels. \r\n\t\t * This means the scene will last for exactly this amount of pixels scrolled. Sub-Pixels are also valid.\r\n\t\t * A value of `0` means that the scene is 'open end' and no end will be triggered. Pins will never unpin and animations will play independently of scroll progress.\r\n\t\t * 2. `string`: Always updates the duration relative to parent scroll container. \r\n\t\t * For example `\"100%\"` will keep the duration always exactly at the inner height of the scroll container.\r\n\t\t * When scrolling vertically the width is used for reference respectively.\r\n\t\t * 3. `function`: The supplied function will be called to return the scene duration.\r\n\t\t * This is useful in setups where the duration depends on other elements who might change size. By supplying a function you can return a value instead of updating potentially multiple scene durations. \r\n\t\t * The scene can be referenced inside the callback using `this`.\r\n\t\t * _**WARNING:** This is an easy way to kill performance, as the callback will be executed every time `Scene.refresh()` is called, which happens a lot. The interval is defined by the controller (see ScrollMagic.Controller option `refreshInterval`). \r\n\t\t * It's recomended to avoid calculations within the function and use cached variables as return values. \r\n\t\t * This counts double if you use the same function for multiple scenes._\r\n\t\t *\r\n\t\t * @method ScrollMagic.Scene#duration\r\n\t\t * @example\r\n\t\t * // get the current duration value\r\n\t\t * var duration = scene.duration();\r\n\t\t *\r\n\t\t * // set a new duration\r\n\t\t * scene.duration(300);\r\n\t\t *\r\n\t\t * // set duration responsively to container size\r\n\t\t * scene.duration(\"100%\");\r\n\t\t *\r\n\t\t * // use a function to randomize the duration for some reason.\r\n\t\t * var durationValueCache;\r\n\t\t * function durationCallback () {\r\n\t\t * return durationValueCache;\r\n\t\t * }\r\n\t\t * function updateDuration () {\r\n\t\t * durationValueCache = Math.random() * 100;\r\n\t\t * }\r\n\t\t * updateDuration(); // set to initial value\r\n\t\t * scene.duration(durationCallback); // set duration callback\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @fires {@link Scene.shift}, when used as setter\r\n\t\t * @param {(number|string|function)} [newDuration] - The new duration setting for the scene.\r\n\t\t * @returns {number} `get` - Current scene duration.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the offset option value.\r\n\t\t * @method ScrollMagic.Scene#offset\r\n\t\t * @example\r\n\t\t * // get the current offset\r\n\t\t * var offset = scene.offset();\r\n\t\t *\r\n\t\t * // set a new offset\r\n\t\t * scene.offset(100);\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @fires {@link Scene.shift}, when used as setter\r\n\t\t * @param {number} [newOffset] - The new offset of the scene.\r\n\t\t * @returns {number} `get` - Current scene offset.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the triggerElement option value.\r\n\t\t * Does **not** fire `Scene.shift`, because changing the trigger Element doesn't necessarily mean the start position changes. This will be determined in `Scene.refresh()`, which is automatically triggered.\r\n\t\t * @method ScrollMagic.Scene#triggerElement\r\n\t\t * @example\r\n\t\t * // get the current triggerElement\r\n\t\t * var triggerElement = scene.triggerElement();\r\n\t\t *\r\n\t\t * // set a new triggerElement using a selector\r\n\t\t * scene.triggerElement(\"#trigger\");\r\n\t\t * // set a new triggerElement using a DOM object\r\n\t\t * scene.triggerElement(document.getElementById(\"trigger\"));\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @param {(string|object)} [newTriggerElement] - The new trigger element for the scene.\r\n\t\t * @returns {(string|object)} `get` - Current triggerElement.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the triggerHook option value.\r\n\t\t * @method ScrollMagic.Scene#triggerHook\r\n\t\t * @example\r\n\t\t * // get the current triggerHook value\r\n\t\t * var triggerHook = scene.triggerHook();\r\n\t\t *\r\n\t\t * // set a new triggerHook using a string\r\n\t\t * scene.triggerHook(\"onLeave\");\r\n\t\t * // set a new triggerHook using a number\r\n\t\t * scene.triggerHook(0.7);\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @fires {@link Scene.shift}, when used as setter\r\n\t\t * @param {(number|string)} [newTriggerHook] - The new triggerHook of the scene. See {@link Scene} parameter description for value options.\r\n\t\t * @returns {number} `get` - Current triggerHook (ALWAYS numerical).\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the reverse option value.\r\n\t\t * @method ScrollMagic.Scene#reverse\r\n\t\t * @example\r\n\t\t * // get the current reverse option\r\n\t\t * var reverse = scene.reverse();\r\n\t\t *\r\n\t\t * // set new reverse option\r\n\t\t * scene.reverse(false);\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @param {boolean} [newReverse] - The new reverse setting of the scene.\r\n\t\t * @returns {boolean} `get` - Current reverse option value.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** or **Set** the loglevel option value.\r\n\t\t * @method ScrollMagic.Scene#loglevel\r\n\t\t * @example\r\n\t\t * // get the current loglevel\r\n\t\t * var loglevel = scene.loglevel();\r\n\t\t *\r\n\t\t * // set new loglevel\r\n\t\t * scene.loglevel(3);\r\n\t\t *\r\n\t\t * @fires {@link Scene.change}, when used as setter\r\n\t\t * @param {number} [newLoglevel] - The new loglevel setting of the scene. `[0-3]`\r\n\t\t * @returns {number} `get` - Current loglevel.\r\n\t\t * @returns {Scene} `set` - Parent object for chaining.\r\n\t\t */\r\n\r\n\t\t/**\r\n\t\t * **Get** the associated controller.\r\n\t\t * @method ScrollMagic.Scene#controller\r\n\t\t * @example\r\n\t\t * // get the controller of a scene\r\n\t\t * var controller = scene.controller();\r\n\t\t *\r\n\t\t * @returns {ScrollMagic.Controller} Parent controller or `undefined`\r\n\t\t */\r\n\t\tthis.controller = function () {\r\n\t\t\treturn _controller;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** the current state.\r\n\t\t * @method ScrollMagic.Scene#state\r\n\t\t * @example\r\n\t\t * // get the current state\r\n\t\t * var state = scene.state();\r\n\t\t *\r\n\t\t * @returns {string} `\"BEFORE\"`, `\"DURING\"` or `\"AFTER\"`\r\n\t\t */\r\n\t\tthis.state = function () {\r\n\t\t\treturn _state;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** the current scroll offset for the start of the scene. \r\n\t\t * Mind, that the scrollOffset is related to the size of the container, if `triggerHook` is bigger than `0` (or `\"onLeave\"`). \r\n\t\t * This means, that resizing the container or changing the `triggerHook` will influence the scene's start offset.\r\n\t\t * @method ScrollMagic.Scene#scrollOffset\r\n\t\t * @example\r\n\t\t * // get the current scroll offset for the start and end of the scene.\r\n\t\t * var start = scene.scrollOffset();\r\n\t\t * var end = scene.scrollOffset() + scene.duration();\r\n\t\t * console.log(\"the scene starts at\", start, \"and ends at\", end);\r\n\t\t *\r\n\t\t * @returns {number} The scroll offset (of the container) at which the scene will trigger. Y value for vertical and X value for horizontal scrolls.\r\n\t\t */\r\n\t\tthis.scrollOffset = function () {\r\n\t\t\treturn _scrollOffset.start;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * **Get** the trigger position of the scene (including the value of the `offset` option). \r\n\t\t * @method ScrollMagic.Scene#triggerPosition\r\n\t\t * @example\r\n\t\t * // get the scene's trigger position\r\n\t\t * var triggerPosition = scene.triggerPosition();\r\n\t\t *\r\n\t\t * @returns {number} Start position of the scene. Top position value for vertical and left position value for horizontal scrolls.\r\n\t\t */\r\n\t\tthis.triggerPosition = function () {\r\n\t\t\tvar pos = _options.offset; // the offset is the basis\r\n\t\t\tif (_controller) {\r\n\t\t\t\t// get the trigger position\r\n\t\t\t\tif (_options.triggerElement) {\r\n\t\t\t\t\t// Element as trigger\r\n\t\t\t\t\tpos += _triggerPos;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// return the height of the triggerHook to start at the beginning\r\n\t\t\t\t\tpos += _controller.info(\"size\") * Scene.triggerHook();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn pos;\r\n\t\t};\r\n\r\n\r\n\t\tvar\r\n\t\t\t_pin,\r\n\t\t\t_pinOptions;\r\n\r\n\t\tScene\r\n\t\t\t.on(\"shift.internal\", function (e) {\r\n\t\t\t\tvar durationChanged = e.reason === \"duration\";\r\n\t\t\t\tif ((_state === SCENE_STATE_AFTER && durationChanged) || (_state === SCENE_STATE_DURING && _options.duration === 0)) {\r\n\t\t\t\t\t// if [duration changed after a scene (inside scene progress updates pin position)] or [duration is 0, we are in pin phase and some other value changed].\r\n\t\t\t\t\tupdatePinState();\r\n\t\t\t\t}\r\n\t\t\t\tif (durationChanged) {\r\n\t\t\t\t\tupdatePinDimensions();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on(\"progress.internal\", function (e) {\r\n\t\t\t\tupdatePinState();\r\n\t\t\t})\r\n\t\t\t.on(\"add.internal\", function (e) {\r\n\t\t\t\tupdatePinDimensions();\r\n\t\t\t})\r\n\t\t\t.on(\"destroy.internal\", function (e) {\r\n\t\t\t\tScene.removePin(e.reset);\r\n\t\t\t});\r\n\t\t/**\r\n\t\t * Update the pin state.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updatePinState = function (forceUnpin) {\r\n\t\t\tif (_pin && _controller) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tcontainerInfo = _controller.info(),\r\n\t\t\t\t\tpinTarget = _pinOptions.spacer.firstChild; // may be pin element or another spacer, if cascading pins\r\n\r\n\t\t\t\tif (!forceUnpin && _state === SCENE_STATE_DURING) { // during scene or if duration is 0 and we are past the trigger\r\n\t\t\t\t\t// pinned state\r\n\t\t\t\t\tif (_util.css(pinTarget, \"position\") != \"fixed\") {\r\n\t\t\t\t\t\t// change state before updating pin spacer (position changes due to fixed collapsing might occur.)\r\n\t\t\t\t\t\t_util.css(pinTarget, {\r\n\t\t\t\t\t\t\t\"position\": \"fixed\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t// update pin spacer\r\n\t\t\t\t\t\tupdatePinDimensions();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tfixedPos = _util.get.offset(_pinOptions.spacer, true), // get viewport position of spacer\r\n\t\t\t\t\t\tscrollDistance = _options.reverse || _options.duration === 0 ?\r\n\t\t\t\t\t\tcontainerInfo.scrollPos - _scrollOffset.start // quicker\r\n\t\t\t\t\t\t:\r\n\t\t\t\t\t\tMath.round(_progress * _options.duration * 10) / 10; // if no reverse and during pin the position needs to be recalculated using the progress\r\n\r\n\t\t\t\t\t// add scrollDistance\r\n\t\t\t\t\tfixedPos[containerInfo.vertical ? \"top\" : \"left\"] += scrollDistance;\r\n\r\n\t\t\t\t\t// set new values\r\n\t\t\t\t\t_util.css(_pinOptions.spacer.firstChild, {\r\n\t\t\t\t\t\ttop: fixedPos.top,\r\n\t\t\t\t\t\tleft: fixedPos.left\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// unpinned state\r\n\t\t\t\t\tvar\r\n\t\t\t\t\t\tnewCSS = {\r\n\t\t\t\t\t\t\tposition: _pinOptions.inFlow ? \"relative\" : \"absolute\",\r\n\t\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tchange = _util.css(pinTarget, \"position\") != newCSS.position;\r\n\r\n\t\t\t\t\tif (!_pinOptions.pushFollowers) {\r\n\t\t\t\t\t\tnewCSS[containerInfo.vertical ? \"top\" : \"left\"] = _options.duration * _progress;\r\n\t\t\t\t\t} else if (_options.duration > 0) { // only concerns scenes with duration\r\n\t\t\t\t\t\tif (_state === SCENE_STATE_AFTER && parseFloat(_util.css(_pinOptions.spacer, \"padding-top\")) === 0) {\r\n\t\t\t\t\t\t\tchange = true; // if in after state but havent updated spacer yet (jumped past pin)\r\n\t\t\t\t\t\t} else if (_state === SCENE_STATE_BEFORE && parseFloat(_util.css(_pinOptions.spacer, \"padding-bottom\")) === 0) { // before\r\n\t\t\t\t\t\t\tchange = true; // jumped past fixed state upward direction\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// set new values\r\n\t\t\t\t\t_util.css(pinTarget, newCSS);\r\n\t\t\t\t\tif (change) {\r\n\t\t\t\t\t\t// update pin spacer if state changed\r\n\t\t\t\t\t\tupdatePinDimensions();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Update the pin spacer and/or element size.\r\n\t\t * The size of the spacer needs to be updated whenever the duration of the scene changes, if it is to push down following elements.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updatePinDimensions = function () {\r\n\t\t\tif (_pin && _controller && _pinOptions.inFlow) { // no spacerresize, if original position is absolute\r\n\t\t\t\tvar\r\n\t\t\t\t\tafter = (_state === SCENE_STATE_AFTER),\r\n\t\t\t\t\tbefore = (_state === SCENE_STATE_BEFORE),\r\n\t\t\t\t\tduring = (_state === SCENE_STATE_DURING),\r\n\t\t\t\t\tvertical = _controller.info(\"vertical\"),\r\n\t\t\t\t\tpinTarget = _pinOptions.spacer.firstChild, // usually the pined element but can also be another spacer (cascaded pins)\r\n\t\t\t\t\tmarginCollapse = _util.isMarginCollapseType(_util.css(_pinOptions.spacer, \"display\")),\r\n\t\t\t\t\tcss = {};\r\n\r\n\t\t\t\t// set new size\r\n\t\t\t\t// if relsize: spacer -> pin | else: pin -> spacer\r\n\t\t\t\tif (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {\r\n\t\t\t\t\tif (during) {\r\n\t\t\t\t\t\t_util.css(_pin, {\r\n\t\t\t\t\t\t\t\"width\": _util.get.width(_pinOptions.spacer)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t_util.css(_pin, {\r\n\t\t\t\t\t\t\t\"width\": \"100%\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// minwidth is needed for cascaded pins.\r\n\t\t\t\t\tcss[\"min-width\"] = _util.get.width(vertical ? _pin : pinTarget, true, true);\r\n\t\t\t\t\tcss.width = during ? css[\"min-width\"] : \"auto\";\r\n\t\t\t\t}\r\n\t\t\t\tif (_pinOptions.relSize.height) {\r\n\t\t\t\t\tif (during) {\r\n\t\t\t\t\t\t// the only padding the spacer should ever include is the duration (if pushFollowers = true), so we need to substract that.\r\n\t\t\t\t\t\t_util.css(_pin, {\r\n\t\t\t\t\t\t\t\"height\": _util.get.height(_pinOptions.spacer) - (_pinOptions.pushFollowers ? _options.duration : 0)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t_util.css(_pin, {\r\n\t\t\t\t\t\t\t\"height\": \"100%\"\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// margin is only included if it's a cascaded pin to resolve an IE9 bug\r\n\t\t\t\t\tcss[\"min-height\"] = _util.get.height(vertical ? pinTarget : _pin, true, !marginCollapse); // needed for cascading pins\r\n\t\t\t\t\tcss.height = during ? css[\"min-height\"] : \"auto\";\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// add space for duration if pushFollowers is true\r\n\t\t\t\tif (_pinOptions.pushFollowers) {\r\n\t\t\t\t\tcss[\"padding\" + (vertical ? \"Top\" : \"Left\")] = _options.duration * _progress;\r\n\t\t\t\t\tcss[\"padding\" + (vertical ? \"Bottom\" : \"Right\")] = _options.duration * (1 - _progress);\r\n\t\t\t\t}\r\n\t\t\t\t_util.css(_pinOptions.spacer, css);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates the Pin state (in certain scenarios)\r\n\t\t * If the controller container is not the document and we are mid-pin-phase scrolling or resizing the main document can result to wrong pin positions.\r\n\t\t * So this function is called on resize and scroll of the document.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updatePinInContainer = function () {\r\n\t\t\tif (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info(\"isDocument\")) {\r\n\t\t\t\tupdatePinState();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Updates the Pin spacer size state (in certain scenarios)\r\n\t\t * If container is resized during pin and relatively sized the size of the pin might need to be updated...\r\n\t\t * So this function is called on resize of the container.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar updateRelativePinSpacer = function () {\r\n\t\t\tif (_controller && _pin && // well, duh\r\n\t\t\t\t_state === SCENE_STATE_DURING && // element in pinned state?\r\n\t\t\t\t( // is width or height relatively sized, but not in relation to body? then we need to recalc.\r\n\t\t\t\t\t((_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) && _util.get.width(window) != _util.get.width(_pinOptions.spacer.parentNode)) ||\r\n\t\t\t\t\t(_pinOptions.relSize.height && _util.get.height(window) != _util.get.height(_pinOptions.spacer.parentNode))\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tupdatePinDimensions();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Is called, when the mousewhel is used while over a pinned element inside a div container.\r\n\t\t * If the scene is in fixed state scroll events would be counted towards the body. This forwards the event to the scroll container.\r\n\t\t * @private\r\n\t\t */\r\n\t\tvar onMousewheelOverPin = function (e) {\r\n\t\t\tif (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info(\"isDocument\")) { // in pin state\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t_controller._setScrollPos(_controller.info(\"scrollPos\") - ((e.wheelDelta || e[_controller.info(\"vertical\") ? \"wheelDeltaY\" : \"wheelDeltaX\"]) / 3 || -e.detail * 30));\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Pin an element for the duration of the scene.\r\n\t\t * If the scene duration is 0 the element will only be unpinned, if the user scrolls back past the start position. \r\n\t\t * Make sure only one pin is applied to an element at the same time.\r\n\t\t * An element can be pinned multiple times, but only successively.\r\n\t\t * _**NOTE:** The option `pushFollowers` has no effect, when the scene duration is 0._\r\n\t\t * @method ScrollMagic.Scene#setPin\r\n\t\t * @example\r\n\t\t * // pin element and push all following elements down by the amount of the pin duration.\r\n\t\t * scene.setPin(\"#pin\");\r\n\t\t *\r\n\t\t * // pin element and keeping all following elements in their place. The pinned element will move past them.\r\n\t\t * scene.setPin(\"#pin\", {pushFollowers: false});\r\n\t\t *\r\n\t\t * @param {(string|object)} element - A Selector targeting an element or a DOM object that is supposed to be pinned.\r\n\t\t * @param {object} [settings] - settings for the pin\r\n\t\t * @param {boolean} [settings.pushFollowers=true] - If `true` following elements will be \"pushed\" down for the duration of the pin, if `false` the pinned element will just scroll past them. \r\n\t\t \t\t\t\t\t\t\t\t\t\t\t\t Ignored, when duration is `0`.\r\n\t\t * @param {string} [settings.spacerClass=\"scrollmagic-pin-spacer\"] - Classname of the pin spacer element, which is used to replace the element.\r\n\t\t *\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.setPin = function (element, settings) {\r\n\t\t\tvar\r\n\t\t\t\tdefaultSettings = {\r\n\t\t\t\t\tpushFollowers: true,\r\n\t\t\t\t\tspacerClass: \"scrollmagic-pin-spacer\"\r\n\t\t\t\t};\r\n\t\t\tvar pushFollowersActivelySet = settings && settings.hasOwnProperty('pushFollowers');\r\n\t\t\tsettings = _util.extend({}, defaultSettings, settings);\r\n\r\n\t\t\t// validate Element\r\n\t\t\telement = _util.get.elements(element)[0];\r\n\t\t\tif (!element) {\r\n\t\t\t\tlog(1, \"ERROR calling method 'setPin()': Invalid pin element supplied.\");\r\n\t\t\t\treturn Scene; // cancel\r\n\t\t\t} else if (_util.css(element, \"position\") === \"fixed\") {\r\n\t\t\t\tlog(1, \"ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'.\");\r\n\t\t\t\treturn Scene; // cancel\r\n\t\t\t}\r\n\r\n\t\t\tif (_pin) { // preexisting pin?\r\n\t\t\t\tif (_pin === element) {\r\n\t\t\t\t\t// same pin we already have -> do nothing\r\n\t\t\t\t\treturn Scene; // cancel\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// kill old pin\r\n\t\t\t\t\tScene.removePin();\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\t_pin = element;\r\n\r\n\t\t\tvar\r\n\t\t\t\tparentDisplay = _pin.parentNode.style.display,\r\n\t\t\t\tboundsParams = [\"top\", \"left\", \"bottom\", \"right\", \"margin\", \"marginLeft\", \"marginRight\", \"marginTop\", \"marginBottom\"];\r\n\r\n\t\t\t_pin.parentNode.style.display = 'none'; // hack start to force css to return stylesheet values instead of calculated px values.\r\n\t\t\tvar\r\n\t\t\t\tinFlow = _util.css(_pin, \"position\") != \"absolute\",\r\n\t\t\t\tpinCSS = _util.css(_pin, boundsParams.concat([\"display\"])),\r\n\t\t\t\tsizeCSS = _util.css(_pin, [\"width\", \"height\"]);\r\n\t\t\t_pin.parentNode.style.display = parentDisplay; // hack end.\r\n\r\n\t\t\tif (!inFlow && settings.pushFollowers) {\r\n\t\t\t\tlog(2, \"WARNING: If the pinned element is positioned absolutely pushFollowers will be disabled.\");\r\n\t\t\t\tsettings.pushFollowers = false;\r\n\t\t\t}\r\n\t\t\twindow.setTimeout(function () { // wait until all finished, because with responsive duration it will only be set after scene is added to controller\r\n\t\t\t\tif (_pin && _options.duration === 0 && pushFollowersActivelySet && settings.pushFollowers) {\r\n\t\t\t\t\tlog(2, \"WARNING: pushFollowers =\", true, \"has no effect, when scene duration is 0.\");\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\r\n\t\t\t// create spacer and insert\r\n\t\t\tvar\r\n\t\t\t\tspacer = _pin.parentNode.insertBefore(document.createElement('div'), _pin),\r\n\t\t\t\tspacerCSS = _util.extend(pinCSS, {\r\n\t\t\t\t\tposition: inFlow ? \"relative\" : \"absolute\",\r\n\t\t\t\t\tboxSizing: \"content-box\",\r\n\t\t\t\t\tmozBoxSizing: \"content-box\",\r\n\t\t\t\t\twebkitBoxSizing: \"content-box\"\r\n\t\t\t\t});\r\n\r\n\t\t\tif (!inFlow) { // copy size if positioned absolutely, to work for bottom/right positioned elements.\r\n\t\t\t\t_util.extend(spacerCSS, _util.css(_pin, [\"width\", \"height\"]));\r\n\t\t\t}\r\n\r\n\t\t\t_util.css(spacer, spacerCSS);\r\n\t\t\tspacer.setAttribute(PIN_SPACER_ATTRIBUTE, \"\");\r\n\t\t\t_util.addClass(spacer, settings.spacerClass);\r\n\r\n\t\t\t// set the pin Options\r\n\t\t\t_pinOptions = {\r\n\t\t\t\tspacer: spacer,\r\n\t\t\t\trelSize: { // save if size is defined using % values. if so, handle spacer resize differently...\r\n\t\t\t\t\twidth: sizeCSS.width.slice(-1) === \"%\",\r\n\t\t\t\t\theight: sizeCSS.height.slice(-1) === \"%\",\r\n\t\t\t\t\tautoFullWidth: sizeCSS.width === \"auto\" && inFlow && _util.isMarginCollapseType(pinCSS.display)\r\n\t\t\t\t},\r\n\t\t\t\tpushFollowers: settings.pushFollowers,\r\n\t\t\t\tinFlow: inFlow, // stores if the element takes up space in the document flow\r\n\t\t\t};\r\n\r\n\t\t\tif (!_pin.___origStyle) {\r\n\t\t\t\t_pin.___origStyle = {};\r\n\t\t\t\tvar\r\n\t\t\t\t\tpinInlineCSS = _pin.style,\r\n\t\t\t\t\tcopyStyles = boundsParams.concat([\"width\", \"height\", \"position\", \"boxSizing\", \"mozBoxSizing\", \"webkitBoxSizing\"]);\r\n\t\t\t\tcopyStyles.forEach(function (val) {\r\n\t\t\t\t\t_pin.___origStyle[val] = pinInlineCSS[val] || \"\";\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// if relative size, transfer it to spacer and make pin calculate it...\r\n\t\t\tif (_pinOptions.relSize.width) {\r\n\t\t\t\t_util.css(spacer, {\r\n\t\t\t\t\twidth: sizeCSS.width\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tif (_pinOptions.relSize.height) {\r\n\t\t\t\t_util.css(spacer, {\r\n\t\t\t\t\theight: sizeCSS.height\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// now place the pin element inside the spacer\t\r\n\t\t\tspacer.appendChild(_pin);\r\n\t\t\t// and set new css\r\n\t\t\t_util.css(_pin, {\r\n\t\t\t\tposition: inFlow ? \"relative\" : \"absolute\",\r\n\t\t\t\tmargin: \"auto\",\r\n\t\t\t\ttop: \"auto\",\r\n\t\t\t\tleft: \"auto\",\r\n\t\t\t\tbottom: \"auto\",\r\n\t\t\t\tright: \"auto\"\r\n\t\t\t});\r\n\r\n\t\t\tif (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) {\r\n\t\t\t\t_util.css(_pin, {\r\n\t\t\t\t\tboxSizing: \"border-box\",\r\n\t\t\t\t\tmozBoxSizing: \"border-box\",\r\n\t\t\t\t\twebkitBoxSizing: \"border-box\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// add listener to document to update pin position in case controller is not the document.\r\n\t\t\twindow.addEventListener('scroll', updatePinInContainer);\r\n\t\t\twindow.addEventListener('resize', updatePinInContainer);\r\n\t\t\twindow.addEventListener('resize', updateRelativePinSpacer);\r\n\t\t\t// add mousewheel listener to catch scrolls over fixed elements\r\n\t\t\t_pin.addEventListener(\"mousewheel\", onMousewheelOverPin);\r\n\t\t\t_pin.addEventListener(\"DOMMouseScroll\", onMousewheelOverPin);\r\n\r\n\t\t\tlog(3, \"added pin\");\r\n\r\n\t\t\t// finally update the pin to init\r\n\t\t\tupdatePinState();\r\n\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove the pin from the scene.\r\n\t\t * @method ScrollMagic.Scene#removePin\r\n\t\t * @example\r\n\t\t * // remove the pin from the scene without resetting it (the spacer is not removed)\r\n\t\t * scene.removePin();\r\n\t\t *\r\n\t\t * // remove the pin from the scene and reset the pin element to its initial position (spacer is removed)\r\n\t\t * scene.removePin(true);\r\n\t\t *\r\n\t\t * @param {boolean} [reset=false] - If `false` the spacer will not be removed and the element's position will not be reset.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.removePin = function (reset) {\r\n\t\t\tif (_pin) {\r\n\t\t\t\tif (_state === SCENE_STATE_DURING) {\r\n\t\t\t\t\tupdatePinState(true); // force unpin at position\r\n\t\t\t\t}\r\n\t\t\t\tif (reset || !_controller) { // if there's no controller no progress was made anyway...\r\n\t\t\t\t\tvar pinTarget = _pinOptions.spacer.firstChild; // usually the pin element, but may be another spacer (cascaded pins)...\r\n\t\t\t\t\tif (pinTarget.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // copy margins to child spacer\r\n\t\t\t\t\t\tvar\r\n\t\t\t\t\t\t\tstyle = _pinOptions.spacer.style,\r\n\t\t\t\t\t\t\tvalues = [\"margin\", \"marginLeft\", \"marginRight\", \"marginTop\", \"marginBottom\"],\r\n\t\t\t\t\t\t\tmargins = {};\r\n\t\t\t\t\t\tvalues.forEach(function (val) {\r\n\t\t\t\t\t\t\tmargins[val] = style[val] || \"\";\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t_util.css(pinTarget, margins);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t_pinOptions.spacer.parentNode.insertBefore(pinTarget, _pinOptions.spacer);\r\n\t\t\t\t\t_pinOptions.spacer.parentNode.removeChild(_pinOptions.spacer);\r\n\t\t\t\t\tif (!_pin.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // if it's the last pin for this element -> restore inline styles\r\n\t\t\t\t\t\t// TODO: only correctly set for first pin (when cascading) - how to fix?\r\n\t\t\t\t\t\t_util.css(_pin, _pin.___origStyle);\r\n\t\t\t\t\t\tdelete _pin.___origStyle;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\twindow.removeEventListener('scroll', updatePinInContainer);\r\n\t\t\t\twindow.removeEventListener('resize', updatePinInContainer);\r\n\t\t\t\twindow.removeEventListener('resize', updateRelativePinSpacer);\r\n\t\t\t\t_pin.removeEventListener(\"mousewheel\", onMousewheelOverPin);\r\n\t\t\t\t_pin.removeEventListener(\"DOMMouseScroll\", onMousewheelOverPin);\r\n\t\t\t\t_pin = undefined;\r\n\t\t\t\tlog(3, \"removed pin (reset: \" + (reset ? \"true\" : \"false\") + \")\");\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\r\n\t\tvar\r\n\t\t\t_cssClasses,\r\n\t\t\t_cssClassElems = [];\r\n\r\n\t\tScene\r\n\t\t\t.on(\"destroy.internal\", function (e) {\r\n\t\t\t\tScene.removeClassToggle(e.reset);\r\n\t\t\t});\r\n\t\t/**\r\n\t\t * Define a css class modification while the scene is active. \r\n\t\t * When the scene triggers the classes will be added to the supplied element and removed, when the scene is over.\r\n\t\t * If the scene duration is 0 the classes will only be removed if the user scrolls back past the start position.\r\n\t\t * @method ScrollMagic.Scene#setClassToggle\r\n\t\t * @example\r\n\t\t * // add the class 'myclass' to the element with the id 'my-elem' for the duration of the scene\r\n\t\t * scene.setClassToggle(\"#my-elem\", \"myclass\");\r\n\t\t *\r\n\t\t * // add multiple classes to multiple elements defined by the selector '.classChange'\r\n\t\t * scene.setClassToggle(\".classChange\", \"class1 class2 class3\");\r\n\t\t *\r\n\t\t * @param {(string|object)} element - A Selector targeting one or more elements or a DOM object that is supposed to be modified.\r\n\t\t * @param {string} classes - One or more Classnames (separated by space) that should be added to the element during the scene.\r\n\t\t *\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.setClassToggle = function (element, classes) {\r\n\t\t\tvar elems = _util.get.elements(element);\r\n\t\t\tif (elems.length === 0 || !_util.type.String(classes)) {\r\n\t\t\t\tlog(1, \"ERROR calling method 'setClassToggle()': Invalid \" + (elems.length === 0 ? \"element\" : \"classes\") + \" supplied.\");\r\n\t\t\t\treturn Scene;\r\n\t\t\t}\r\n\t\t\tif (_cssClassElems.length > 0) {\r\n\t\t\t\t// remove old ones\r\n\t\t\t\tScene.removeClassToggle();\r\n\t\t\t}\r\n\t\t\t_cssClasses = classes;\r\n\t\t\t_cssClassElems = elems;\r\n\t\t\tScene.on(\"enter.internal_class leave.internal_class\", function (e) {\r\n\t\t\t\tvar toggle = e.type === \"enter\" ? _util.addClass : _util.removeClass;\r\n\t\t\t\t_cssClassElems.forEach(function (elem, key) {\r\n\t\t\t\t\ttoggle(elem, _cssClasses);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Remove the class binding from the scene.\r\n\t\t * @method ScrollMagic.Scene#removeClassToggle\r\n\t\t * @example\r\n\t\t * // remove class binding from the scene without reset\r\n\t\t * scene.removeClassToggle();\r\n\t\t *\r\n\t\t * // remove class binding and remove the changes it caused\r\n\t\t * scene.removeClassToggle(true);\r\n\t\t *\r\n\t\t * @param {boolean} [reset=false] - If `false` and the classes are currently active, they will remain on the element. If `true` they will be removed.\r\n\t\t * @returns {Scene} Parent object for chaining.\r\n\t\t */\r\n\t\tthis.removeClassToggle = function (reset) {\r\n\t\t\tif (reset) {\r\n\t\t\t\t_cssClassElems.forEach(function (elem, key) {\r\n\t\t\t\t\t_util.removeClass(elem, _cssClasses);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tScene.off(\"start.internal_class end.internal_class\");\r\n\t\t\t_cssClasses = undefined;\r\n\t\t\t_cssClassElems = [];\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t// INIT\r\n\t\tconstruct();\r\n\t\treturn Scene;\r\n\t};\r\n\r\n\t// store pagewide scene options\r\n\tvar SCENE_OPTIONS = {\r\n\t\tdefaults: {\r\n\t\t\tduration: 0,\r\n\t\t\toffset: 0,\r\n\t\t\ttriggerElement: undefined,\r\n\t\t\ttriggerHook: 0.5,\r\n\t\t\treverse: true,\r\n\t\t\tloglevel: 2\r\n\t\t},\r\n\t\tvalidate: {\r\n\t\t\toffset: function (val) {\r\n\t\t\t\tval = parseFloat(val);\r\n\t\t\t\tif (!_util.type.Number(val)) {\r\n\t\t\t\t\tthrow [\"Invalid value for option \\\"offset\\\":\", val];\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t},\r\n\t\t\ttriggerElement: function (val) {\r\n\t\t\t\tval = val || undefined;\r\n\t\t\t\tif (val) {\r\n\t\t\t\t\tvar elem = _util.get.elements(val)[0];\r\n\t\t\t\t\tif (elem && elem.parentNode) {\r\n\t\t\t\t\t\tval = elem;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthrow [\"Element defined in option \\\"triggerElement\\\" was not found:\", val];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t},\r\n\t\t\ttriggerHook: function (val) {\r\n\t\t\t\tvar translate = {\r\n\t\t\t\t\t\"onCenter\": 0.5,\r\n\t\t\t\t\t\"onEnter\": 1,\r\n\t\t\t\t\t\"onLeave\": 0\r\n\t\t\t\t};\r\n\t\t\t\tif (_util.type.Number(val)) {\r\n\t\t\t\t\tval = Math.max(0, Math.min(parseFloat(val), 1)); // make sure its betweeen 0 and 1\r\n\t\t\t\t} else if (val in translate) {\r\n\t\t\t\t\tval = translate[val];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow [\"Invalid value for option \\\"triggerHook\\\": \", val];\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t},\r\n\t\t\treverse: function (val) {\r\n\t\t\t\treturn !!val; // force boolean\r\n\t\t\t},\r\n\t\t\tloglevel: function (val) {\r\n\t\t\t\tval = parseInt(val);\r\n\t\t\t\tif (!_util.type.Number(val) || val < 0 || val > 3) {\r\n\t\t\t\t\tthrow [\"Invalid value for option \\\"loglevel\\\":\", val];\r\n\t\t\t\t}\r\n\t\t\t\treturn val;\r\n\t\t\t}\r\n\t\t}, // holder for validation methods. duration validation is handled in 'getters-setters.js'\r\n\t\tshifts: [\"duration\", \"offset\", \"triggerHook\"], // list of options that trigger a `shift` event\r\n\t};\r\n\t/*\r\n\t * method used to add an option to ScrollMagic Scenes.\r\n\t * TODO: DOC (private for dev)\r\n\t */\r\n\tScrollMagic.Scene.addOption = function (name, defaultValue, validationCallback, shifts) {\r\n\t\tif (!(name in SCENE_OPTIONS.defaults)) {\r\n\t\t\tSCENE_OPTIONS.defaults[name] = defaultValue;\r\n\t\t\tSCENE_OPTIONS.validate[name] = validationCallback;\r\n\t\t\tif (shifts) {\r\n\t\t\t\tSCENE_OPTIONS.shifts.push(name);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tScrollMagic._util.log(1, \"[static] ScrollMagic.Scene -> Cannot add Scene option '\" + name + \"', because it already exists.\");\r\n\t\t}\r\n\t};\r\n\t// instance extension function for plugins\r\n\t// TODO: DOC (private for dev)\r\n\tScrollMagic.Scene.extend = function (extension) {\r\n\t\tvar oldClass = this;\r\n\t\tScrollMagic.Scene = function () {\r\n\t\t\toldClass.apply(this, arguments);\r\n\t\t\tthis.$super = _util.extend({}, this); // copy parent state\r\n\t\t\treturn extension.apply(this, arguments) || this;\r\n\t\t};\r\n\t\t_util.extend(ScrollMagic.Scene, oldClass); // copy properties\r\n\t\tScrollMagic.Scene.prototype = oldClass.prototype; // copy prototype\r\n\t\tScrollMagic.Scene.prototype.constructor = ScrollMagic.Scene; // restore constructor\r\n\t};\r\n\r\n\r\n\r\n\t/**\r\n\t * TODO: DOCS (private for dev)\r\n\t * @class\r\n\t * @private\r\n\t */\r\n\r\n\tScrollMagic.Event = function (type, namespace, target, vars) {\r\n\t\tvars = vars || {};\r\n\t\tfor (var key in vars) {\r\n\t\t\tthis[key] = vars[key];\r\n\t\t}\r\n\t\tthis.type = type;\r\n\t\tthis.target = this.currentTarget = target;\r\n\t\tthis.namespace = namespace || '';\r\n\t\tthis.timeStamp = this.timestamp = Date.now();\r\n\t\treturn this;\r\n\t};\r\n\r\n\t/*\r\n\t * TODO: DOCS (private for dev)\r\n\t */\r\n\r\n\tvar _util = ScrollMagic._util = (function (window) {\r\n\t\tvar U = {},\r\n\t\t\ti;\r\n\r\n\t\t/**\r\n\t\t * ------------------------------\r\n\t\t * internal helpers\r\n\t\t * ------------------------------\r\n\t\t */\r\n\r\n\t\t// parse float and fall back to 0.\r\n\t\tvar floatval = function (number) {\r\n\t\t\treturn parseFloat(number) || 0;\r\n\t\t};\r\n\t\t// get current style IE safe (otherwise IE would return calculated values for 'auto')\r\n\t\tvar _getComputedStyle = function (elem) {\r\n\t\t\treturn elem.currentStyle ? elem.currentStyle : window.getComputedStyle(elem);\r\n\t\t};\r\n\r\n\t\t// get element dimension (width or height)\r\n\t\tvar _dimension = function (which, elem, outer, includeMargin) {\r\n\t\t\telem = (elem === document) ? window : elem;\r\n\t\t\tif (elem === window) {\r\n\t\t\t\tincludeMargin = false;\r\n\t\t\t} else if (!_type.DomElement(elem)) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\t\t\twhich = which.charAt(0).toUpperCase() + which.substr(1).toLowerCase();\r\n\t\t\tvar dimension = (outer ? elem['offset' + which] || elem['outer' + which] : elem['client' + which] || elem['inner' + which]) || 0;\r\n\t\t\tif (outer && includeMargin) {\r\n\t\t\t\tvar style = _getComputedStyle(elem);\r\n\t\t\t\tdimension += which === 'Height' ? floatval(style.marginTop) + floatval(style.marginBottom) : floatval(style.marginLeft) + floatval(style.marginRight);\r\n\t\t\t}\r\n\t\t\treturn dimension;\r\n\t\t};\r\n\t\t// converts 'margin-top' into 'marginTop'\r\n\t\tvar _camelCase = function (str) {\r\n\t\t\treturn str.replace(/^[^a-z]+([a-z])/g, '$1').replace(/-([a-z])/g, function (g) {\r\n\t\t\t\treturn g[1].toUpperCase();\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * ------------------------------\r\n\t\t * external helpers\r\n\t\t * ------------------------------\r\n\t\t */\r\n\r\n\t\t// extend obj – same as jQuery.extend({}, objA, objB)\r\n\t\tU.extend = function (obj) {\r\n\t\t\tobj = obj || {};\r\n\t\t\tfor (i = 1; i < arguments.length; i++) {\r\n\t\t\t\tif (!arguments[i]) {\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t\tfor (var key in arguments[i]) {\r\n\t\t\t\t\tif (arguments[i].hasOwnProperty(key)) {\r\n\t\t\t\t\t\tobj[key] = arguments[i][key];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t};\r\n\r\n\t\t// check if a css display type results in margin-collapse or not\r\n\t\tU.isMarginCollapseType = function (str) {\r\n\t\t\treturn [\"block\", \"flex\", \"list-item\", \"table\", \"-webkit-box\"].indexOf(str) > -1;\r\n\t\t};\r\n\r\n\t\t// implementation of requestAnimationFrame\r\n\t\t// based on https://gist.github.com/paulirish/1579671\r\n\t\tvar\r\n\t\t\tlastTime = 0,\r\n\t\t\tvendors = ['ms', 'moz', 'webkit', 'o'];\r\n\t\tvar _requestAnimationFrame = window.requestAnimationFrame;\r\n\t\tvar _cancelAnimationFrame = window.cancelAnimationFrame;\r\n\t\t// try vendor prefixes if the above doesn't work\r\n\t\tfor (i = 0; !_requestAnimationFrame && i < vendors.length; ++i) {\r\n\t\t\t_requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame'];\r\n\t\t\t_cancelAnimationFrame = window[vendors[i] + 'CancelAnimationFrame'] || window[vendors[i] + 'CancelRequestAnimationFrame'];\r\n\t\t}\r\n\r\n\t\t// fallbacks\r\n\t\tif (!_requestAnimationFrame) {\r\n\t\t\t_requestAnimationFrame = function (callback) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tcurrTime = new Date().getTime(),\r\n\t\t\t\t\ttimeToCall = Math.max(0, 16 - (currTime - lastTime)),\r\n\t\t\t\t\tid = window.setTimeout(function () {\r\n\t\t\t\t\t\tcallback(currTime + timeToCall);\r\n\t\t\t\t\t}, timeToCall);\r\n\t\t\t\tlastTime = currTime + timeToCall;\r\n\t\t\t\treturn id;\r\n\t\t\t};\r\n\t\t}\r\n\t\tif (!_cancelAnimationFrame) {\r\n\t\t\t_cancelAnimationFrame = function (id) {\r\n\t\t\t\twindow.clearTimeout(id);\r\n\t\t\t};\r\n\t\t}\r\n\t\tU.rAF = _requestAnimationFrame.bind(window);\r\n\t\tU.cAF = _cancelAnimationFrame.bind(window);\r\n\r\n\t\tvar\r\n\t\t\tloglevels = [\"error\", \"warn\", \"log\"],\r\n\t\t\tconsole = window.console || {};\r\n\r\n\t\tconsole.log = console.log || function () {}; // no console log, well - do nothing then...\r\n\t\t// make sure methods for all levels exist.\r\n\t\tfor (i = 0; i < loglevels.length; i++) {\r\n\t\t\tvar method = loglevels[i];\r\n\t\t\tif (!console[method]) {\r\n\t\t\t\tconsole[method] = console.log; // prefer .log over nothing\r\n\t\t\t}\r\n\t\t}\r\n\t\tU.log = function (loglevel) {\r\n\t\t\tif (loglevel > loglevels.length || loglevel <= 0) loglevel = loglevels.length;\r\n\t\t\tvar now = new Date(),\r\n\t\t\t\ttime = (\"0\" + now.getHours()).slice(-2) + \":\" + (\"0\" + now.getMinutes()).slice(-2) + \":\" + (\"0\" + now.getSeconds()).slice(-2) + \":\" + (\"00\" + now.getMilliseconds()).slice(-3),\r\n\t\t\t\tmethod = loglevels[loglevel - 1],\r\n\t\t\t\targs = Array.prototype.splice.call(arguments, 1),\r\n\t\t\t\tfunc = Function.prototype.bind.call(console[method], console);\r\n\t\t\targs.unshift(time);\r\n\t\t\tfunc.apply(console, args);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * ------------------------------\r\n\t\t * type testing\r\n\t\t * ------------------------------\r\n\t\t */\r\n\r\n\t\tvar _type = U.type = function (v) {\r\n\t\t\treturn Object.prototype.toString.call(v).replace(/^\\[object (.+)\\]$/, \"$1\").toLowerCase();\r\n\t\t};\r\n\t\t_type.String = function (v) {\r\n\t\t\treturn _type(v) === 'string';\r\n\t\t};\r\n\t\t_type.Function = function (v) {\r\n\t\t\treturn _type(v) === 'function';\r\n\t\t};\r\n\t\t_type.Array = function (v) {\r\n\t\t\treturn Array.isArray(v);\r\n\t\t};\r\n\t\t_type.Number = function (v) {\r\n\t\t\treturn !_type.Array(v) && (v - parseFloat(v) + 1) >= 0;\r\n\t\t};\r\n\t\t_type.DomElement = function (o) {\r\n\t\t\treturn (\r\n\t\t\t\ttypeof HTMLElement === \"object\" || typeof HTMLElement === \"function\" ? o instanceof HTMLElement || o instanceof SVGElement : //DOM2\r\n\t\t\t\to && typeof o === \"object\" && o !== null && o.nodeType === 1 && typeof o.nodeName === \"string\"\r\n\t\t\t);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * ------------------------------\r\n\t\t * DOM Element info\r\n\t\t * ------------------------------\r\n\t\t */\r\n\t\t// always returns a list of matching DOM elements, from a selector, a DOM element or an list of elements or even an array of selectors\r\n\t\tvar _get = U.get = {};\r\n\t\t_get.elements = function (selector) {\r\n\t\t\tvar arr = [];\r\n\t\t\tif (_type.String(selector)) {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tselector = document.querySelectorAll(selector);\r\n\t\t\t\t} catch (e) { // invalid selector\r\n\t\t\t\t\treturn arr;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (_type(selector) === 'nodelist' || _type.Array(selector) || selector instanceof NodeList) {\r\n\t\t\t\tfor (var i = 0, ref = arr.length = selector.length; i < ref; i++) { // list of elements\r\n\t\t\t\t\tvar elem = selector[i];\r\n\t\t\t\t\tarr[i] = _type.DomElement(elem) ? elem : _get.elements(elem); // if not an element, try to resolve recursively\r\n\t\t\t\t}\r\n\t\t\t} else if (_type.DomElement(selector) || selector === document || selector === window) {\r\n\t\t\t\tarr = [selector]; // only the element\r\n\t\t\t}\r\n\t\t\treturn arr;\r\n\t\t};\r\n\t\t// get scroll top value\r\n\t\t_get.scrollTop = function (elem) {\r\n\t\t\treturn (elem && typeof elem.scrollTop === 'number') ? elem.scrollTop : window.pageYOffset || 0;\r\n\t\t};\r\n\t\t// get scroll left value\r\n\t\t_get.scrollLeft = function (elem) {\r\n\t\t\treturn (elem && typeof elem.scrollLeft === 'number') ? elem.scrollLeft : window.pageXOffset || 0;\r\n\t\t};\r\n\t\t// get element height\r\n\t\t_get.width = function (elem, outer, includeMargin) {\r\n\t\t\treturn _dimension('width', elem, outer, includeMargin);\r\n\t\t};\r\n\t\t// get element width\r\n\t\t_get.height = function (elem, outer, includeMargin) {\r\n\t\t\treturn _dimension('height', elem, outer, includeMargin);\r\n\t\t};\r\n\r\n\t\t// get element position (optionally relative to viewport)\r\n\t\t_get.offset = function (elem, relativeToViewport) {\r\n\t\t\tvar offset = {\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: 0\r\n\t\t\t};\r\n\t\t\tif (elem && elem.getBoundingClientRect) { // check if available\r\n\t\t\t\tvar rect = elem.getBoundingClientRect();\r\n\t\t\t\toffset.top = rect.top;\r\n\t\t\t\toffset.left = rect.left;\r\n\t\t\t\tif (!relativeToViewport) { // clientRect is by default relative to viewport...\r\n\t\t\t\t\toffset.top += _get.scrollTop();\r\n\t\t\t\t\toffset.left += _get.scrollLeft();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn offset;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * ------------------------------\r\n\t\t * DOM Element manipulation\r\n\t\t * ------------------------------\r\n\t\t */\r\n\r\n\t\tU.addClass = function (elem, classname) {\r\n\t\t\tif (classname) {\r\n\t\t\t\tif (elem.classList)\r\n\t\t\t\t\telem.classList.add(classname);\r\n\t\t\t\telse\r\n\t\t\t\t\telem.className += ' ' + classname;\r\n\t\t\t}\r\n\t\t};\r\n\t\tU.removeClass = function (elem, classname) {\r\n\t\t\tif (classname) {\r\n\t\t\t\tif (elem.classList)\r\n\t\t\t\t\telem.classList.remove(classname);\r\n\t\t\t\telse\r\n\t\t\t\t\telem.className = elem.className.replace(new RegExp('(^|\\\\b)' + classname.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\r\n\t\t\t}\r\n\t\t};\r\n\t\t// if options is string -> returns css value\r\n\t\t// if options is array -> returns object with css value pairs\r\n\t\t// if options is object -> set new css values\r\n\t\tU.css = function (elem, options) {\r\n\t\t\tif (_type.String(options)) {\r\n\t\t\t\treturn _getComputedStyle(elem)[_camelCase(options)];\r\n\t\t\t} else if (_type.Array(options)) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tobj = {},\r\n\t\t\t\t\tstyle = _getComputedStyle(elem);\r\n\t\t\t\toptions.forEach(function (option, key) {\r\n\t\t\t\t\tobj[option] = style[_camelCase(option)];\r\n\t\t\t\t});\r\n\t\t\t\treturn obj;\r\n\t\t\t} else {\r\n\t\t\t\tfor (var option in options) {\r\n\t\t\t\t\tvar val = options[option];\r\n\t\t\t\t\tif (val == parseFloat(val)) { // assume pixel for seemingly numerical values\r\n\t\t\t\t\t\tval += 'px';\r\n\t\t\t\t\t}\r\n\t\t\t\t\telem.style[_camelCase(option)] = val;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn U;\r\n\t}(window || {}));\r\n\r\n\r\n\tScrollMagic.Scene.prototype.addIndicators = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling addIndicators() due to missing Plugin \\'debug.addIndicators\\'. Please make sure to include plugins/debug.addIndicators.js');\r\n\t\treturn this;\r\n\t}\r\n\tScrollMagic.Scene.prototype.removeIndicators = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeIndicators() due to missing Plugin \\'debug.addIndicators\\'. Please make sure to include plugins/debug.addIndicators.js');\r\n\t\treturn this;\r\n\t}\r\n\tScrollMagic.Scene.prototype.setTween = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin \\'animation.gsap\\'. Please make sure to include plugins/animation.gsap.js');\r\n\t\treturn this;\r\n\t}\r\n\tScrollMagic.Scene.prototype.removeTween = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeTween() due to missing Plugin \\'animation.gsap\\'. Please make sure to include plugins/animation.gsap.js');\r\n\t\treturn this;\r\n\t}\r\n\tScrollMagic.Scene.prototype.setVelocity = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setVelocity() due to missing Plugin \\'animation.velocity\\'. Please make sure to include plugins/animation.velocity.js');\r\n\t\treturn this;\r\n\t}\r\n\tScrollMagic.Scene.prototype.removeVelocity = function () {\r\n\t\tScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeVelocity() due to missing Plugin \\'animation.velocity\\'. Please make sure to include plugins/animation.velocity.js');\r\n\t\treturn this;\r\n\t}\r\n\r\n\treturn ScrollMagic;\r\n}));","!function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).LazyLoad=t()}(this,(function(){\"use strict\";function n(){return n=Object.assign||function(n){for(var t=1;t1,r={elements_selector:\".lazy\",container:e||t?document:null,threshold:300,thresholds:null,data_src:\"src\",data_srcset:\"srcset\",data_sizes:\"sizes\",data_bg:\"bg\",data_bg_hidpi:\"bg-hidpi\",data_bg_multi:\"bg-multi\",data_bg_multi_hidpi:\"bg-multi-hidpi\",data_bg_set:\"bg-set\",data_poster:\"poster\",class_applied:\"applied\",class_loading:\"loading\",class_loaded:\"loaded\",class_error:\"error\",class_entered:\"entered\",class_exited:\"exited\",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1,restore_on_error:!1},c=function(t){return n({},r,t)},l=function(n,t){var e,i=\"LazyLoad::Initialized\",o=new n(t);try{e=new CustomEvent(i,{detail:{instance:o}})}catch(n){(e=document.createEvent(\"CustomEvent\")).initCustomEvent(i,!1,!1,{instance:o})}window.dispatchEvent(e)},u=\"src\",s=\"srcset\",d=\"sizes\",f=\"poster\",_=\"llOriginalAttrs\",g=\"data\",v=\"loading\",b=\"loaded\",m=\"applied\",p=\"error\",h=\"native\",E=\"data-\",I=\"ll-status\",y=function(n,t){return n.getAttribute(E+t)},k=function(n){return y(n,I)},w=function(n,t){return function(n,t,e){var i=\"data-ll-status\";null!==e?n.setAttribute(i,e):n.removeAttribute(i)}(n,0,t)},A=function(n){return w(n,null)},L=function(n){return null===k(n)},O=function(n){return k(n)===h},x=[v,b,m,p],C=function(n,t,e,i){n&&(void 0===i?void 0===e?n(t):n(t,e):n(t,e,i))},N=function(n,t){o?n.classList.add(t):n.className+=(n.className?\" \":\"\")+t},M=function(n,t){o?n.classList.remove(t):n.className=n.className.replace(new RegExp(\"(^|\\\\s+)\"+t+\"(\\\\s+|$)\"),\" \").replace(/^\\s+/,\"\").replace(/\\s+$/,\"\")},z=function(n){return n.llTempImage},T=function(n,t){if(t){var e=t._observer;e&&e.unobserve(n)}},R=function(n,t){n&&(n.loadingCount+=t)},G=function(n,t){n&&(n.toLoadCount=t)},j=function(n){for(var t,e=[],i=0;t=n.children[i];i+=1)\"SOURCE\"===t.tagName&&e.push(t);return e},D=function(n,t){var e=n.parentNode;e&&\"PICTURE\"===e.tagName&&j(e).forEach(t)},H=function(n,t){j(n).forEach(t)},V=[u],F=[u,f],B=[u,s,d],J=[g],P=function(n){return!!n[_]},S=function(n){return n[_]},U=function(n){return delete n[_]},$=function(n,t){if(!P(n)){var e={};t.forEach((function(t){e[t]=n.getAttribute(t)})),n[_]=e}},q=function(n,t){if(P(n)){var e=S(n);t.forEach((function(t){!function(n,t,e){e?n.setAttribute(t,e):n.removeAttribute(t)}(n,t,e[t])}))}},K=function(n,t,e){N(n,t.class_applied),w(n,m),e&&(t.unobserve_completed&&T(n,t),C(t.callback_applied,n,e))},Q=function(n,t,e){N(n,t.class_loading),w(n,v),e&&(R(e,1),C(t.callback_loading,n,e))},W=function(n,t,e){e&&n.setAttribute(t,e)},X=function(n,t){W(n,d,y(n,t.data_sizes)),W(n,s,y(n,t.data_srcset)),W(n,u,y(n,t.data_src))},Y={IMG:function(n,t){D(n,(function(n){$(n,B),X(n,t)})),$(n,B),X(n,t)},IFRAME:function(n,t){$(n,V),W(n,u,y(n,t.data_src))},VIDEO:function(n,t){H(n,(function(n){$(n,V),W(n,u,y(n,t.data_src))})),$(n,F),W(n,f,y(n,t.data_poster)),W(n,u,y(n,t.data_src)),n.load()},OBJECT:function(n,t){$(n,J),W(n,g,y(n,t.data_src))}},Z=[\"IMG\",\"IFRAME\",\"VIDEO\",\"OBJECT\"],nn=function(n,t){!t||function(n){return n.loadingCount>0}(t)||function(n){return n.toLoadCount>0}(t)||C(n.callback_finish,t)},tn=function(n,t,e){n.addEventListener(t,e),n.llEvLisnrs[t]=e},en=function(n,t,e){n.removeEventListener(t,e)},on=function(n){return!!n.llEvLisnrs},an=function(n){if(on(n)){var t=n.llEvLisnrs;for(var e in t){var i=t[e];en(n,e,i)}delete n.llEvLisnrs}},rn=function(n,t,e){!function(n){delete n.llTempImage}(n),R(e,-1),function(n){n&&(n.toLoadCount-=1)}(e),M(n,t.class_loading),t.unobserve_completed&&T(n,e)},cn=function(n,t,e){var i=z(n)||n;on(i)||function(n,t,e){on(n)||(n.llEvLisnrs={});var i=\"VIDEO\"===n.tagName?\"loadeddata\":\"load\";tn(n,i,t),tn(n,\"error\",e)}(i,(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_loaded),w(t,b),C(e.callback_loaded,t,i),o||nn(e,i)}(0,n,t,e),an(i)}),(function(o){!function(n,t,e,i){var o=O(t);rn(t,e,i),N(t,e.class_error),w(t,p),C(e.callback_error,t,i),e.restore_on_error&&q(t,B),o||nn(e,i)}(0,n,t,e),an(i)}))},ln=function(n,t,e){!function(n){return Z.indexOf(n.tagName)>-1}(n)?function(n,t,e){!function(n){n.llTempImage=document.createElement(\"IMG\")}(n),cn(n,t,e),function(n){P(n)||(n[_]={backgroundImage:n.style.backgroundImage})}(n),function(n,t,e){var i=y(n,t.data_bg),o=y(n,t.data_bg_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage='url(\"'.concat(r,'\")'),z(n).setAttribute(u,r),Q(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_multi),o=y(n,t.data_bg_multi_hidpi),r=a&&o?o:i;r&&(n.style.backgroundImage=r,K(n,t,e))}(n,t,e),function(n,t,e){var i=y(n,t.data_bg_set);if(i){var o=i.split(\"|\"),a=o.map((function(n){return\"image-set(\".concat(n,\")\")}));n.style.backgroundImage=a.join(),\"\"===n.style.backgroundImage&&(a=o.map((function(n){return\"-webkit-image-set(\".concat(n,\")\")})),n.style.backgroundImage=a.join()),K(n,t,e)}}(n,t,e)}(n,t,e):function(n,t,e){cn(n,t,e),function(n,t,e){var i=Y[n.tagName];i&&(i(n,t),Q(n,t,e))}(n,t,e)}(n,t,e)},un=function(n){n.removeAttribute(u),n.removeAttribute(s),n.removeAttribute(d)},sn=function(n){D(n,(function(n){q(n,B)})),q(n,B)},dn={IMG:sn,IFRAME:function(n){q(n,V)},VIDEO:function(n){H(n,(function(n){q(n,V)})),q(n,F),n.load()},OBJECT:function(n){q(n,J)}},fn=function(n,t){(function(n){var t=dn[n.tagName];t?t(n):function(n){if(P(n)){var t=S(n);n.style.backgroundImage=t.backgroundImage}}(n)})(n),function(n,t){L(n)||O(n)||(M(n,t.class_entered),M(n,t.class_exited),M(n,t.class_applied),M(n,t.class_loading),M(n,t.class_loaded),M(n,t.class_error))}(n,t),A(n),U(n)},_n=[\"IMG\",\"IFRAME\",\"VIDEO\"],gn=function(n){return n.use_native&&\"loading\"in HTMLImageElement.prototype},vn=function(n,t,e){n.forEach((function(n){return function(n){return n.isIntersecting||n.intersectionRatio>0}(n)?function(n,t,e,i){var o=function(n){return x.indexOf(k(n))>=0}(n);w(n,\"entered\"),N(n,e.class_entered),M(n,e.class_exited),function(n,t,e){t.unobserve_entered&&T(n,e)}(n,e,i),C(e.callback_enter,n,t,i),o||ln(n,e,i)}(n.target,n,t,e):function(n,t,e,i){L(n)||(N(n,e.class_exited),function(n,t,e,i){e.cancel_on_exit&&function(n){return k(n)===v}(n)&&\"IMG\"===n.tagName&&(an(n),function(n){D(n,(function(n){un(n)})),un(n)}(n),sn(n),M(n,e.class_loading),R(i,-1),A(n),C(e.callback_cancel,n,t,i))}(n,t,e,i),C(e.callback_exit,n,t,i))}(n.target,n,t,e)}))},bn=function(n){return Array.prototype.slice.call(n)},mn=function(n){return n.container.querySelectorAll(n.elements_selector)},pn=function(n){return function(n){return k(n)===p}(n)},hn=function(n,t){return function(n){return bn(n).filter(L)}(n||mn(t))},En=function(n,e){var o=c(n);this._settings=o,this.loadingCount=0,function(n,t){i&&!gn(n)&&(t._observer=new IntersectionObserver((function(e){vn(e,n,t)}),function(n){return{root:n.container===document?null:n.container,rootMargin:n.thresholds||n.threshold+\"px\"}}(n)))}(o,this),function(n,e){t&&(e._onlineHandler=function(){!function(n,t){var e;(e=mn(n),bn(e).filter(pn)).forEach((function(t){M(t,n.class_error),A(t)})),t.update()}(n,e)},window.addEventListener(\"online\",e._onlineHandler))}(o,this),this.update(e)};return En.prototype={update:function(n){var t,o,a=this._settings,r=hn(n,a);G(this,r.length),!e&&i?gn(a)?function(n,t,e){n.forEach((function(n){-1!==_n.indexOf(n.tagName)&&function(n,t,e){n.setAttribute(\"loading\",\"lazy\"),cn(n,t,e),function(n,t){var e=Y[n.tagName];e&&e(n,t)}(n,t),w(n,h)}(n,t,e)})),G(e,0)}(r,a,this):(o=r,function(n){n.disconnect()}(t=this._observer),function(n,t){t.forEach((function(t){n.observe(t)}))}(t,o)):this.loadAll(r)},destroy:function(){this._observer&&this._observer.disconnect(),t&&window.removeEventListener(\"online\",this._onlineHandler),mn(this._settings).forEach((function(n){U(n)})),delete this._observer,delete this._settings,delete this._onlineHandler,delete this.loadingCount,delete this.toLoadCount},loadAll:function(n){var t=this,e=this._settings;hn(n,e).forEach((function(n){T(n,t),ln(n,e,t)}))},restoreAll:function(){var n=this._settings;mn(n).forEach((function(t){fn(t,n)}))}},En.load=function(n,t){var e=c(t);ln(n,e)},En.resetStatus=function(n){A(n)},t&&function(n,t){if(t)if(t.length)for(var e,i=0;e=t[i];i+=1)l(n,e);else l(n,t)}(En,window.lazyLoadOptions),En}));\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","/* eslint-disable */\nclass Header {\n\tconstructor() {\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\t// Load Jquery animations\n\t\twindow.loadJS(\n\t\t\t\"/wp-content/themes/arta-capital/js/vendor/jquery-3.6.0.js\",\n\t\t\t() => {\n\t\t\t\twindow.loadJS(\"/wp-content/themes/arta-capital/js/header.js\", () => {});\n\t\t\t}\n\t\t);\n\t}\n}\n\nexport default Header;\n","/* eslint-disable */\nclass LottieAnimations {\n\tconstructor() {\n\t\tthis.animatedElementsContainers =\n\t\t\tdocument.getElementsByClassName(\"js-lottie\");\n\t\tif (this.animatedElementsContainers) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tconst loadAnimations = this.loadAnimations;\n\t\tif (window.lottie === undefined) {\n\t\t\twindow.loadJS(\n\t\t\t\t\"/wp-content/themes/arta-capital/js/vendor/lottie.js\",\n\t\t\t\t() => {\n\t\t\t\t\tArray.prototype.forEach.call(\n\t\t\t\t\t\tthis.animatedElementsContainers,\n\t\t\t\t\t\tfunction (animatedElementContainer) {\n\t\t\t\t\t\t\tloadAnimations(animatedElementContainer);\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tArray.prototype.forEach.call(\n\t\t\t\tthis.animatedElementsContainers,\n\t\t\t\tfunction (animatedElementContainer) {\n\t\t\t\t\tloadAnimations(animatedElementContainer);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\tloadAnimations(animatedElementContainer) {\n\t\tconst animationPath = animatedElementContainer.getAttribute(\n\t\t\t\"data-animation-path\"\n\t\t);\n\t\tconst loop =\n\t\t\tanimatedElementContainer.getAttribute(\"data-animation-loop\") === \"true\";\n\t\tconst menu = animatedElementContainer.getAttribute(\"data-menu\") === \"true\";\n\t\tconst fullsection =\n\t\t\tanimatedElementContainer.getAttribute(\"data-fullsection\") === \"true\";\n\t\tif (animationPath !== undefined && animationPath !== null) {\n\t\t\tif (menu) {\n\t\t\t\tglobalThis.animenu = window.lottie.loadAnimation({\n\t\t\t\t\tcontainer: animatedElementContainer, // the dom element that will contain the animation\n\t\t\t\t\trenderer: \"svg\",\n\t\t\t\t\tloop: loop,\n\t\t\t\t\tautoplay: true,\n\t\t\t\t\tpath: animationPath, // the path to the animation json\n\t\t\t\t\trendererSettings: {\n\t\t\t\t\t\tscaleMode: \"noScale\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tanimenu.goToAndStop(0);\n\t\t\t} else if (fullsection) {\n\t\t\t\tglobalThis.animfullsection = window.lottie.loadAnimation({\n\t\t\t\t\tcontainer: animatedElementContainer, // the dom element that will contain the animation\n\t\t\t\t\trenderer: \"svg\",\n\t\t\t\t\tloop: loop,\n\t\t\t\t\tautoplay: true,\n\t\t\t\t\tpath: animationPath, // the path to the animation json\n\t\t\t\t\trendererSettings: {\n\t\t\t\t\t\tscaleMode: \"noScale\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tanimfullsection.goToAndStop(0);\n\t\t\t} else {\n\t\t\t\tglobalThis.anim = window.lottie.loadAnimation({\n\t\t\t\t\tcontainer: animatedElementContainer, // the dom element that will contain the animation\n\t\t\t\t\trenderer: \"svg\",\n\t\t\t\t\tloop: loop,\n\t\t\t\t\tautoplay: true,\n\t\t\t\t\tpath: animationPath, // the path to the animation json\n\t\t\t\t\trendererSettings: {\n\t\t\t\t\t\tscaleMode: \"noScale\",\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tanim.goToAndStop(0);\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default LottieAnimations;\n","/* eslint-disable */\nimport ScrollMagic from \"scrollmagic\";\n\nclass AnimationScenes {\n\tconstructor() {\n\t\treturn this.animationScenes;\n\t}\n\n\tanimationScenes(scrollMagicController) {\n\t\tconst animatableElements = [\n\t\t\t\".grid\",\n\t\t\t\".grid__card\",\n\t\t\t\".hero\",\n\t\t\t\".facts\",\n\t\t\t\".featured-links\",\n\t\t\t\".timeline\",\n\t\t\t\".banner\",\n\t\t\t\".text\",\n\t\t\t\".post-content\",\n\t\t\t\".highlighted-text\",\n\t\t\t\".accordion\",\n\t\t\t\".image\",\n\t\t\t\".links\",\n\t\t\t\".brands\",\n\t\t\t\".downloads\",\n\t\t\t\".logos-grid\",\n\t\t\t\".map\",\n\t\t\t\".customers-feedback\",\n\t\t\t\".slider-gallery\",\n\t\t\t\".text-cards\",\n\t\t\t\".sustainable-development-goals\",\n\t\t\t\".text-with-sidebar\",\n\t\t\t\".video\",\n\t\t];\n\n\t\t// Set animation classes to all the elements that will use them.\n\t\tfor (const el of Array.from(\n\t\t\tdocument.querySelectorAll(animatableElements.join(\",\"))\n\t\t)) {\n\t\t\tnew ScrollMagic.Scene({\n\t\t\t\ttriggerElement: el,\n\t\t\t\ttriggerHook: 0.75,\n\t\t\t\treverse: false,\n\t\t\t})\n\t\t\t\t.setClassToggle(el, \"animated\")\n\t\t\t\t.addTo(scrollMagicController);\n\t\t}\n\n\t\t// Set animation behavior for elements with scroll-based parallax effect.\n\t\tconst scrollAnimatableElements = [\".js-animatable-scroll\"];\n\t\tconst scrollAnimatableHook = 0.7;\n\n\t\tconst scrollAnimatableProgressCallback = (evt, el) => {\n\t\t\tif (el.children.length > 0) {\n\t\t\t\tel.style.setProperty(\"overflow\", \"hidden\", \"important\");\n\t\t\t\tel.children[0].style.setProperty(\n\t\t\t\t\t\"transition\",\n\t\t\t\t\t\"transform 0.8s cubic-bezier(0.34, 1, 0.64, 1)\"\n\t\t\t\t);\n\t\t\t\tel.children[0].style.setProperty(\n\t\t\t\t\t\"transform\",\n\t\t\t\t\t\"scale3d(\" +\n\t\t\t\t\t\t(1 + evt.progress / 4) +\n\t\t\t\t\t\t\", \" +\n\t\t\t\t\t\t(1 + evt.progress / 4) +\n\t\t\t\t\t\t\", 1)\",\n\t\t\t\t\t\"important\"\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tconst style = window.getComputedStyle(el, null);\n\t\t\t\tif (typeof style.transition === \"undefined\") {\n\t\t\t\t\tel.style.setProperty(\n\t\t\t\t\t\t\"transition\",\n\t\t\t\t\t\t\"background-size 0.8s cubic-bezier(0.34, 1, 0.64, 1)\"\n\t\t\t\t\t);\n\t\t\t\t} else if (style.transition.indexOf(\"background-size\") === -1) {\n\t\t\t\t\tel.style.setProperty(\n\t\t\t\t\t\t\"transition\",\n\t\t\t\t\t\tstyle.transition +\n\t\t\t\t\t\t\t\", background-size 0.8s cubic-bezier(0.34, 1, 0.64, 1)\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tel.style.setProperty(\n\t\t\t\t\t\"background-size\",\n\t\t\t\t\t100 + evt.progress * 25 + \"% auto\",\n\t\t\t\t\t\"important\"\n\t\t\t\t);\n\t\t\t}\n\t\t};\n\n\t\tfor (const el of Array.from(\n\t\t\tdocument.querySelectorAll(scrollAnimatableElements.join(\",\"))\n\t\t)) {\n\t\t\tlet waitingForAnimation = false;\n\n\t\t\tconst scene = new ScrollMagic.Scene({\n\t\t\t\ttriggerElement: el,\n\t\t\t\ttriggerHook: scrollAnimatableHook,\n\t\t\t\tduration:\n\t\t\t\t\tdocument.documentElement.clientHeight +\n\t\t\t\t\tdocument.documentElement.clientHeight * scrollAnimatableHook,\n\t\t\t})\n\t\t\t\t.on(\"progress\", (evt) => {\n\t\t\t\t\tif (!waitingForAnimation) {\n\t\t\t\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\t\t\t\tscrollAnimatableProgressCallback(evt, el);\n\t\t\t\t\t\t\twaitingForAnimation = false;\n\t\t\t\t\t\t});\n\t\t\t\t\t\twaitingForAnimation = true;\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.addTo(scrollMagicController);\n\n\t\t\t// On window resize, update the duration.\n\t\t\twindow.addEventListener(\n\t\t\t\t\"resize\",\n\t\t\t\twindow.throttle((evt) => {\n\t\t\t\t\tscene.duration(\n\t\t\t\t\t\tdocument.documentElement.clientHeight +\n\t\t\t\t\t\t\tdocument.documentElement.clientHeight * scrollAnimatableHook\n\t\t\t\t\t);\n\t\t\t\t}, 500)\n\t\t\t);\n\t\t}\n\t}\n}\n\nexport default AnimationScenes;\n","/* eslint-disable class-methods-use-this */\nimport LazyLoad from \"vanilla-lazyload\";\n\nclass LazyLoading {\n\tconstructor() {\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tthis.imgs = document.body.querySelectorAll(\"noscript\");\n\t\tthis.replaceSources();\n\t\tthis.removeNoscript();\n\t\tthis.loadImages();\n\t}\n\n\t// Replace images original sources.\n\treplaceSources() {\n\t\tconst images = this.imgs;\n\n\t\tfor (let k = 0; k < images.length; k += 1) {\n\t\t\tconst noscriptContentToReplace = images[k].textContent;\n\t\t\tconst imgObjects = noscriptContentToReplace.match(/]*\\/?>/g);\n\n\t\t\tif (imgObjects && imgObjects.length > 0) {\n\t\t\t\tconst imgObject = imgObjects[0];\n\t\t\t\tlet replacedImgObject = imgObject;\n\n\t\t\t\t// Replace original src attribute with data-src.\n\t\t\t\treplacedImgObject = replacedImgObject.replace(\"src\", \"data-src\");\n\n\t\t\t\t// Replace original srcset attribute with data-srcset.\n\t\t\t\treplacedImgObject = replacedImgObject.replace(\"srcset\", \"data-srcset\");\n\n\t\t\t\t// Replace original sizes attribte with data-sizes.\n\t\t\t\treplacedImgObject = replacedImgObject.replace(\"sizes\", \"data-sizes\");\n\n\t\t\t\tconst replacedNoscriptContent = noscriptContentToReplace.replace(\n\t\t\t\t\timgObject,\n\t\t\t\t\treplacedImgObject\n\t\t\t\t);\n\n\t\t\t\timages[k].textContent = replacedNoscriptContent;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove images noscript wrappers.\n\tremoveNoscript() {\n\t\tconst images = this.imgs;\n\t\tlet img;\n\t\tlet parent;\n\n\t\tfor (let i = 0; i < images.length; i += 1) {\n\t\t\tif (images[i].textContent.includes(\"data-src\")) {\n\t\t\t\timg = document.importNode(\n\t\t\t\t\tnew DOMParser().parseFromString(images[i].textContent, \"text/html\")\n\t\t\t\t\t\t.body.firstChild,\n\t\t\t\t\ttrue\n\t\t\t\t); /* eslint-disable-line */\n\t\t\t\tparent = images[i].parentElement;\n\t\t\t\tparent.replaceChild(img, images[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Lazy load images.\n\tloadImages() {\n\t\tif (\"lazyLoad\" in window) {\n\t\t\twindow.lazyLoad.update();\n\t\t} else {\n\t\t\twindow.lazyLoad = new LazyLoad({ elements_selector: \".lazy\" });\n\t\t}\n\t}\n}\n\nexport default LazyLoading;\n","/* eslint-disable */\nimport FsLightbox from \"fslightbox\"; // eslint-disable-line\n\nclass Cta {\n\tconstructor() {\n\t\tthis.videoPlayButton = document.getElementsByClassName(\"js-video-play\")[0];\n\t\tif (this.videoPlayButton) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tconst videoPlayButtons = document.getElementsByClassName(\"js-video-play\");\n\n\t\trefreshFsLightbox(); // eslint-disable-line\n\n\t\tArray.prototype.forEach.call(videoPlayButtons, function (videoPlayButton) {\n\t\t\tconst lightboxDataAttribute = videoPlayButton.dataset.fslightbox;\n\t\t\t// Autoplay popup video\n\t\t\tfsLightboxInstances[lightboxDataAttribute].props.onOpen = function (\n\t\t\t\tFsLightbox\n\t\t\t) {\n\t\t\t\t// eslint-disable-line\n\t\t\t\tfunction playWhenReady() {\n\t\t\t\t\tif (document.querySelectorAll(\".fslightbox-container video\")[0]) {\n\t\t\t\t\t\tdocument.querySelectorAll(\".fslightbox-container video\")[0].play();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetTimeout(playWhenReady, 500);\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn playWhenReady();\n\t\t\t};\n\t\t});\n\t}\n}\n\nexport default Cta;\n","/* eslint-disable */\nclass Pagination {\n\tconstructor() {\n\t\tthis.loadMoreButtons = document.getElementsByClassName(\n\t\t\t\"js-pagination-load-more\"\n\t\t);\n\t\twindow.loading = false;\n\n\t\tif (this.loadMoreButtons[0]) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tconst pageNumbers = [];\n\t\tconst loadMorePosts = this.loadMorePosts;\n\t\tlet loadMoreButtonsCounter = 0;\n\n\t\tArray.prototype.forEach.call(\n\t\t\tthis.loadMoreButtons,\n\t\t\tfunction (loadMoreButton) {\n\t\t\t\tloadMoreButtonsCounter++;\n\t\t\t\tpageNumbers[loadMoreButtonsCounter] = 0;\n\n\t\t\t\t// Add a data attribute to identify each button\n\t\t\t\tloadMoreButton.parentElement.dataset.loadMoreButtonNumber =\n\t\t\t\t\tloadMoreButtonsCounter;\n\n\t\t\t\tloadMoreButton.addEventListener(\"click\", function (event) {\n\t\t\t\t\tconst parent = this.parentElement;\n\t\t\t\t\tconst maxPages = parent.dataset.maxPages;\n\t\t\t\t\tconst titleLength = this.dataset.titleLength;\n\t\t\t\t\tconst columns = parent.dataset.columns;\n\t\t\t\t\tconst queryArgs = parent.dataset.queryArgs;\n\t\t\t\t\tconst loadMoreButtonNumber = parent.dataset.loadMoreButtonNumber;\n\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tif (window.loading === false) {\n\t\t\t\t\t\t// Lock load more button\n\t\t\t\t\t\twindow.loading = true;\n\n\t\t\t\t\t\t// Increase page number\n\t\t\t\t\t\tpageNumbers[loadMoreButtonNumber]++;\n\n\t\t\t\t\t\t// Load posts\n\t\t\t\t\t\tloadMorePosts(\n\t\t\t\t\t\t\tpageNumbers[loadMoreButtonNumber],\n\t\t\t\t\t\t\tmaxPages,\n\t\t\t\t\t\t\ttitleLength,\n\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t\tqueryArgs,\n\t\t\t\t\t\t\tparent\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t);\n\t}\n\n\tloadMorePosts(\n\t\tpageNumber,\n\t\tmaxPages,\n\t\ttitleLength,\n\t\tcolumns,\n\t\tqueryArgs,\n\t\tloadMorePostsButton\n\t) {\n\t\tconst request = window.ajaxReq();\n\t\tconst url = encodeURI(scripts_ajax_variables.ajax_url); // eslint-disable-line\n\t\tconst data =\n\t\t\t\"action=load_more_posts\" +\n\t\t\t\"&query=\" +\n\t\t\tqueryArgs +\n\t\t\t\"&page=\" +\n\t\t\tpageNumber +\n\t\t\t\"&title-length=\" +\n\t\t\ttitleLength +\n\t\t\t\"&columns=\" +\n\t\t\tcolumns +\n\t\t\t\"&nonce=\" +\n\t\t\tscripts_ajax_variables.nonce; // eslint-disable-line\n\n\t\t// AJAX request\n\t\trequest.open(\"POST\", url, true); // set true for async, false for sync request\n\t\trequest.setRequestHeader(\n\t\t\t\"Content-type\",\n\t\t\t\"application/x-www-form-urlencoded\"\n\t\t);\n\t\trequest.send(data); // or null, if no parameters are passed\n\n\t\t// On success append data\n\t\trequest.onreadystatechange = function () {\n\t\t\tif (request.readyState === 4 && request.status === 200) {\n\t\t\t\ttry {\n\t\t\t\t\t// Append data\n\t\t\t\t\tloadMorePostsButton.insertAdjacentHTML(\n\t\t\t\t\t\t\"beforebegin\",\n\t\t\t\t\t\trequest.responseText\n\t\t\t\t\t);\n\n\t\t\t\t\t// Remove load more button if no more posts exist\n\t\t\t\t\tif (parseInt(pageNumber) + 1 >= parseInt(maxPages)) {\n\t\t\t\t\t\tloadMorePostsButton.innerHTML = \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trigger lazy loading\n\t\t\t\t\twindow.lazyLoading.init();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t}\n\t\t\t\t// Unlock load more button\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.loading = false;\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t};\n\t}\n}\n\nexport default Pagination;\n","/* eslint-disable */\nimport Pagination from \"../components/pagination.js\";\n\nclass Filters {\n\tconstructor() {\n\t\tthis.filtersButtons = document.getElementsByClassName(\"js-filters\");\n\n\t\tif (this.filtersButtons[0]) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tconst filterPosts = this.filterPosts;\n\t\tconst removeElementsByClass = this.removeElementsByClass;\n\t\tArray.prototype.forEach.call(this.filtersButtons, function (filterButton) {\n\t\t\tfilterButton.addEventListener(\"click\", function (event) {\n\t\t\t\tconst old_filters =\n\t\t\t\t\tthis.parentNode.parentNode.getElementsByClassName(\"filter-select\");\n\t\t\t\tconsole.log(\n\t\t\t\t\t\"test:\" +\n\t\t\t\t\t\tthis.closest(\".titulofiltro\").getElementsByClassName(\n\t\t\t\t\t\t\t\"tit-filter\"\n\t\t\t\t\t\t)[0].innerHTML\n\t\t\t\t);\n\t\t\t\tthis.closest(\".titulofiltro\").getElementsByClassName(\n\t\t\t\t\t\"tit-filter\"\n\t\t\t\t)[0].innerHTML = this.innerHTML;\n\t\t\t\tif (old_filters.length > 0) {\n\t\t\t\t\told_filters[0].classList.remove(\"filter-select\");\n\t\t\t\t}\n\t\t\t\tthis.classList.add(\"filter-select\");\n\t\t\t\tconst filters = document.getElementsByClassName(\"filter-select\");\n\t\t\t\tlet taxonomy = [];\n\t\t\t\tlet term = [];\n\t\t\t\tfor (var i = 0; i < filters.length; i++) {\n\t\t\t\t\ttaxonomy.push(filters[i].dataset.taxonomy);\n\t\t\t\t\tterm.push(filters[i].dataset.term);\n\t\t\t\t}\n\n\t\t\t\tconst postType = this.dataset.postType;\n\t\t\t\tconst columns = this.dataset.columns;\n\t\t\t\tconst titleLength = this.dataset.titleLength;\n\t\t\t\tconst pagination = this.dataset.pagination;\n\t\t\t\tconst viewAll = this.dataset.viewAll;\n\t\t\t\tconst maxPosts = this.dataset.maxPosts;\n\n\t\t\t\tevent.preventDefault();\n\t\t\t\tfilterPosts(\n\t\t\t\t\tpostType,\n\t\t\t\t\ttaxonomy,\n\t\t\t\t\tterm,\n\t\t\t\t\ttitleLength,\n\t\t\t\t\tpagination,\n\t\t\t\t\tviewAll,\n\t\t\t\t\tmaxPosts,\n\t\t\t\t\tcolumns,\n\t\t\t\t\tthis,\n\t\t\t\t\tremoveElementsByClass\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t}\n\n\tfilterPosts(\n\t\tpostType,\n\t\ttaxonomy,\n\t\tterm,\n\t\ttitleLength,\n\t\tpagination,\n\t\tviewAll,\n\t\tmaxPosts,\n\t\tcolumns,\n\t\telement,\n\t\tremoveElementsByClass\n\t) {\n\t\tlet taxonomy1 = taxonomy[0];\n\t\tlet taxonomy2 = taxonomy[1];\n\t\tlet term1 = term[0];\n\t\tlet term2 = term[1];\n\t\tconst request = window.ajaxReq();\n\t\tlet url = encodeURI(scripts_ajax_variables.ajax_url); // eslint-disable-line\n\t\tconst data =\n\t\t\t\"action=filter_posts\" +\n\t\t\t\"&post-type=\" +\n\t\t\tpostType +\n\t\t\t\"&taxonomy1=\" +\n\t\t\ttaxonomy1 +\n\t\t\t\"&term1=\" +\n\t\t\tterm1 +\n\t\t\t\"&taxonomy2=\" +\n\t\t\ttaxonomy2 +\n\t\t\t\"&term2=\" +\n\t\t\tterm2 +\n\t\t\t\"&title-length=\" +\n\t\t\ttitleLength +\n\t\t\t\"&pagination=\" +\n\t\t\tpagination +\n\t\t\t\"&view-all=\" +\n\t\t\tviewAll +\n\t\t\t\"&max-posts=\" +\n\t\t\tmaxPosts +\n\t\t\t\"&columns=\" +\n\t\t\tcolumns +\n\t\t\t\"&nonce=\" +\n\t\t\tscripts_ajax_variables.nonce; // eslint-disable-line\n\t\trequest.open(\"POST\", url, true); // set true for async, false for sync request\n\t\trequest.setRequestHeader(\n\t\t\t\"Content-type\",\n\t\t\t\"application/x-www-form-urlencoded\"\n\t\t);\n\t\trequest.send(data); // or null, if no parameters are passed\n\n\t\t// On success append data\n\t\trequest.onreadystatechange = function () {\n\t\t\tif (request.readyState === 4 && request.status === 200) {\n\t\t\t\ttry {\n\t\t\t\t\tconst grid = element.closest(\".grid\");\n\t\t\t\t\tconst gridCards = grid.getElementsByClassName(\"js-grid-cards\")[0];\n\n\t\t\t\t\t// Remove current data\n\t\t\t\t\tremoveElementsByClass(gridCards, \"grid__card\");\n\n\t\t\t\t\t// Append data\n\t\t\t\t\tgridCards.innerHTML = request.responseText;\n\n\t\t\t\t\t// Reload load more button\n\t\t\t\t\tresetPos();\n\t\t\t\t\twindow.pagination = new Pagination();\n\n\t\t\t\t\t// Trigger lazy loading\n\t\t\t\t\twindow.lazyLoading.init();\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\n\tremoveElementsByClass(element, className) {\n\t\tvar elements = element.getElementsByClassName(className);\n\n\t\twhile (elements.length > 0) {\n\t\t\telements[0].parentNode.removeChild(elements[0]);\n\t\t}\n\t}\n}\n\nexport default Filters;\n","/* eslint-disable */\nclass ContactForm {\n\tconstructor() {\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\tthis.firstForm = document.getElementById(\"contact-form\");\n\t\tthis.firstFormPrivacyPolicy = document.getElementById(\"input-form\");\n\t\tthis.firstFormSendButton =\n\t\t\tdocument.getElementsByClassName(\"contact-button\")[0];\n\t\tthis.closeNotificationButton =\n\t\t\tdocument.getElementById(\"close-notification\");\n\t\tif (this.firstForm) {\n\t\t\tthis.newForm();\n\t\t}\n\t}\n\n\tnewForm() {\n\t\t// Load Re-captcha V3 or throw an error\n\t\tif (googleRecaptchaWebKey) {\n\t\t\t// eslint-disable-line\n\t\t\tvar script = document.createElement(\"script\");\n\t\t\tscript.setAttribute(\"type\", \"text/javascript\");\n\t\t\tscript.setAttribute(\n\t\t\t\t\"src\",\n\t\t\t\t\"https://www.google.com/recaptcha/api.js?render=\" +\n\t\t\t\t\tgoogleRecaptchaWebKey\n\t\t\t); // eslint-disable-line\n\t\t\tdocument.getElementsByTagName(\"head\")[0].appendChild(script);\n\n\t\t\t// Make sure the privacy policy value is unchecked\n\t\t\tthis.firstFormPrivacyPolicy.checked = false;\n\t\t\tthis.firstFormPrivacyPolicy.value = \"unchecked\";\n\n\t\t\t// Listen for privacy policy checkbox changes\n\t\t\tthis.firstFormPrivacyPolicy.addEventListener(\n\t\t\t\t\"change\",\n\t\t\t\tthis.privacyPolicyCheckboxToogle\n\t\t\t);\n\n\t\t\t// Prevent form submit\n\t\t\tthis.firstForm.addEventListener(\"submit\", this.preventFormSubmit);\n\n\t\t\t// Form validations and submit\n\t\t\tthis.firstFormSendButton.addEventListener(\n\t\t\t\t\"click\",\n\t\t\t\tthis.submitValidateForm\n\t\t\t);\n\n\t\t\t// Close notificacion banner\n\t\t\tthis.closeNotificationButton.addEventListener(\n\t\t\t\t\"click\",\n\t\t\t\tthis.closeNotificationBanner\n\t\t\t);\n\n\t\t\t// Enable submit button\n\t\t\tthis.firstFormSendButton.disabled = false;\n\t\t} else {\n\t\t\tconsole.error(\"Set up the Google ReCaptcha V3 keys\");\n\t\t}\n\t}\n\n\tprivacyPolicyCheckboxToogle(privacyPolicyCheckbox) {\n\t\tif (privacyPolicyCheckbox.srcElement.value === \"unchecked\") {\n\t\t\tprivacyPolicyCheckbox.srcElement.value = \"checked\";\n\t\t} else {\n\t\t\tprivacyPolicyCheckbox.srcElement.value = \"unchecked\";\n\t\t}\n\t}\n\n\tpreventFormSubmit(evt) {\n\t\tevt.preventDefault();\n\t}\n\n\tsubmitValidateForm(evt) {\n\t\t// Get the form parameters\n\t\tvar action = \"contact_form\";\n\t\tvar firstName = document.getElementsByName(\"first_name\")[0];\n\t\tvar lastName = document.getElementsByName(\"last_name\")[0];\n\t\tvar email = document.getElementsByName(\"email\")[0];\n\t\tvar message = document.getElementsByName(\"message\")[0];\n\t\tvar privacyPolicy = document.getElementsByName(\"privacy_policy\")[0];\n\t\tvar successMessage = document.getElementsByName(\"success_message\")[0];\n\t\tvar errorMessage = document.getElementsByName(\"error_message\")[0];\n\t\tvar notificationsBanner = document.getElementById(\"notification-banner\");\n\t\tvar notificationMessage =\n\t\t\tdocument.getElementsByClassName(\"notification-text\")[0];\n\n\t\t// Disable and animate the submit button\n\t\tevt.srcElement.disabled = true;\n\t\tevt.srcElement.classList.add(\"validating\");\n\n\t\t// Recaptcha validation\n\t\tgrecaptcha.ready(function () {\n\t\t\t// eslint-disable-line\n\t\t\tgrecaptcha\n\t\t\t\t.execute(googleRecaptchaWebKey, { action: action })\n\t\t\t\t.then(function (token) {\n\t\t\t\t\t// eslint-disable-line\n\n\t\t\t\t\t// Ajax form submit\n\t\t\t\t\tvar xmlhttp = window.ajaxReq();\n\t\t\t\t\tvar url = encodeURI(scripts_ajax_variables.ajax_url); // eslint-disable-line\n\t\t\t\t\tvar currentLanguage = encodeURI(\n\t\t\t\t\t\tscripts_ajax_variables.current_language\n\t\t\t\t\t); // eslint-disable-line\n\t\t\t\t\tvar defaultLanguage = encodeURI(\n\t\t\t\t\t\tscripts_ajax_variables.default_language\n\t\t\t\t\t); // eslint-disable-line\n\t\t\t\t\tvar params =\n\t\t\t\t\t\t\"action=\" +\n\t\t\t\t\t\taction +\n\t\t\t\t\t\t\"&first_name=\" +\n\t\t\t\t\t\tfirstName.value +\n\t\t\t\t\t\t\"&last_name=\" +\n\t\t\t\t\t\tlastName.value +\n\t\t\t\t\t\t\"&email=\" +\n\t\t\t\t\t\temail.value +\n\t\t\t\t\t\t\"&message=\" +\n\t\t\t\t\t\tmessage.value +\n\t\t\t\t\t\t\"&privacy_policy=\" +\n\t\t\t\t\t\tprivacyPolicy.value +\n\t\t\t\t\t\t\"&token=\" +\n\t\t\t\t\t\ttoken +\n\t\t\t\t\t\t\"¤t_language=\" +\n\t\t\t\t\t\tcurrentLanguage +\n\t\t\t\t\t\t\"&default_language=\" +\n\t\t\t\t\t\tdefaultLanguage;\n\t\t\t\t\txmlhttp.open(\"POST\", url, true); // set true for async, false for sync request\n\t\t\t\t\txmlhttp.setRequestHeader(\n\t\t\t\t\t\t\"Content-type\",\n\t\t\t\t\t\t\"application/x-www-form-urlencoded\"\n\t\t\t\t\t);\n\t\t\t\t\txmlhttp.send(params); // or null, if no parameters are passed\n\n\t\t\t\t\t// Validation\n\t\t\t\t\txmlhttp.onreadystatechange = function () {\n\t\t\t\t\t\tif (xmlhttp.readyState === 4 && xmlhttp.status === 200) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tvar data = JSON.parse(xmlhttp.responseText);\n\n\t\t\t\t\t\t\t\t// Hide previous errors\n\t\t\t\t\t\t\t\tfirstName.classList.remove(\"show-error\");\n\t\t\t\t\t\t\t\tlastName.classList.remove(\"show-error\");\n\t\t\t\t\t\t\t\temail.classList.remove(\"show-error\");\n\t\t\t\t\t\t\t\tmessage.classList.remove(\"show-error\");\n\t\t\t\t\t\t\t\tprivacyPolicy.classList.remove(\"show-error\");\n\n\t\t\t\t\t\t\t\tif (data.validation === false) {\n\t\t\t\t\t\t\t\t\t// Show errors\n\t\t\t\t\t\t\t\t\tif (data.first_name) {\n\t\t\t\t\t\t\t\t\t\tfirstName.classList.add(\"show-error\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (data.last_name) {\n\t\t\t\t\t\t\t\t\t\tlastName.classList.add(\"show-error\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (data.email) {\n\t\t\t\t\t\t\t\t\t\temail.classList.add(\"show-error\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (data.message) {\n\t\t\t\t\t\t\t\t\t\tmessage.classList.add(\"show-error\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (data.privacy_policy) {\n\t\t\t\t\t\t\t\t\t\tprivacyPolicy.classList.add(\"show-error\");\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (data.success === false) {\n\t\t\t\t\t\t\t\t\t// Error notification message\n\t\t\t\t\t\t\t\t\tnotificationMessage.innerHTML = errorMessage.value;\n\n\t\t\t\t\t\t\t\t\t// Show notification\n\t\t\t\t\t\t\t\t\tnotificationsBanner.classList.add(\"active\");\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// Success notification message\n\t\t\t\t\t\t\t\t\tnotificationMessage.innerHTML = successMessage.value;\n\n\t\t\t\t\t\t\t\t\t// Clear the form\n\t\t\t\t\t\t\t\t\tevt.srcElement.form.reset();\n\n\t\t\t\t\t\t\t\t\t// Show notification\n\t\t\t\t\t\t\t\t\tnotificationsBanner.classList.add(\"active\");\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Enable and stop the submit button animation\n\t\t\t\t\t\t\t\tevt.srcElement.disabled = false;\n\t\t\t\t\t\t\t\tevt.srcElement.classList.remove(\"validating\");\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\t// Show notification\n\t\t\t\t\t\t\t\tnotificationsBanner.classList.add(\"active\");\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t});\n\t}\n\n\tcloseNotificationBanner(evt) {\n\t\tevt.preventDefault();\n\t\tevt.srcElement.parentNode.classList.remove(\"active\");\n\t}\n}\n\nexport default ContactForm;\n","/* eslint-disable */\nclass Facts {\n\tconstructor() {\n\t\tthis.facts = document.getElementsByClassName(\"facts\")[0];\n\t\tif (this.facts) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\tfunction resetNumbers() {\n\t\t\tvar factsSections = document.getElementsByClassName(\"facts\");\n\t\t\tArray.prototype.forEach.call(factsSections, function (factsSection) {\n\t\t\t\tvar factsListItems =\n\t\t\t\t\tfactsSection.getElementsByClassName(\"js-facts-list-item\");\n\t\t\t\tfor (var i = 0; i < factsListItems.length; i++) {\n\t\t\t\t\tvar factsListItemNumber = factsListItems\n\t\t\t\t\t\t.item(i)\n\t\t\t\t\t\t.getElementsByClassName(\"js-facts-number\")[0];\n\t\t\t\t\tfactsListItemNumber.getElementsByTagName(\"span\")[0].innerHTML = 0;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction startNumbersAnimation() {\n\t\t\tvar factsSections = document.getElementsByClassName(\"facts\");\n\n\t\t\tfunction getRandomArbitrary(min, max) {\n\t\t\t\treturn Math.random() * (max - min) + min;\n\t\t\t}\n\n\t\t\tfunction numbersAnimation(elem, endNumber) {\n\t\t\t\tvar number = 0;\n\t\t\t\tvar randomNumber = getRandomArbitrary(1, 10);\n\t\t\t\tvar acceleration = endNumber / 20 + randomNumber;\n\n\t\t\t\tif (acceleration < 1) {\n\t\t\t\t\tacceleration = 1;\n\t\t\t\t}\n\n\t\t\t\tfunction frame() {\n\t\t\t\t\tif (number + acceleration > endNumber) {\n\t\t\t\t\t\tnumber = endNumber;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnumber = number + acceleration;\n\t\t\t\t\t}\n\t\t\t\t\telem.innerHTML = Math.floor(number); // show frame\n\t\t\t\t\tif (number >= endNumber) {\n\t\t\t\t\t\tclearInterval(id);\n\t\t\t\t\t} // check finish condition\n\t\t\t\t}\n\t\t\t\tvar id = setInterval(frame, 70); // draw every 1ms\n\t\t\t}\n\n\t\t\tArray.prototype.forEach.call(factsSections, function (factsSection) {\n\t\t\t\tif (factsSection.classList.contains(\"animated\")) {\n\t\t\t\t\tvar factsListItems =\n\t\t\t\t\t\tfactsSection.getElementsByClassName(\"js-facts-list-item\");\n\t\t\t\t\tfor (var i = 0; i < factsListItems.length; i++) {\n\t\t\t\t\t\tvar factsListItemNumber = factsListItems\n\t\t\t\t\t\t\t.item(i)\n\t\t\t\t\t\t\t.getElementsByClassName(\"js-facts-number\")[0];\n\t\t\t\t\t\tvar dataCount = factsListItemNumber.dataset.count;\n\t\t\t\t\t\tvar dataAnimation = factsListItemNumber.dataset.animation;\n\t\t\t\t\t\tif (dataAnimation === \"false\") {\n\t\t\t\t\t\t\tnumbersAnimation(\n\t\t\t\t\t\t\t\tfactsListItemNumber.getElementsByTagName(\"span\")[0],\n\t\t\t\t\t\t\t\tdataCount\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tfactsListItemNumber.dataset.animation = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tresetNumbers();\n\t\twindow.addEventListener(\"scroll\", startNumbersAnimation);\n\t}\n}\n\nexport default Facts;\n","/* eslint-disable */\nclass FullScreen {\n\tconstructor() {\n\t\tthis.fullScreen = document.getElementsByClassName(\"fullscreen-section\")[0];\n\t\tif (this.fullScreen) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\twindow.loadJS(\"/wp-content/themes/arta-capital/js/full-screen.js\", () => {\n\t\t\twindow.jQueryFullScreen();\n\t\t});\n\t}\n}\n\nexport default FullScreen;\n","/* eslint-disable */\nclass Map {\n\tconstructor() {\n\t\twindow.googleapi = false;\n\t\tthis.mapContainer = document.getElementsByClassName(\"map\")[0];\n\t\tthis.cookiesConsent = (document.cookie.match(\n\t\t\t/^(?:.*;)?\\s*cookies_consent\\s*=\\s*([^;]+)(?:.*)?$/\n\t\t) || [null])[1];\n\n\t\tif (\n\t\t\tthis.cookiesConsent &&\n\t\t\tthis.cookiesConsent.includes(\"true\") &&\n\t\t\tthis.mapContainer !== undefined\n\t\t) {\n\t\t\t/* eslint-disable-line */\n\t\t\tif (window.googleapi === false) {\n\t\t\t\twindow.loadJS(\n\t\t\t\t\t\"https://maps.googleapis.com/maps/api/js?key=\" +\n\t\t\t\t\t\tgoogleMapsKey +\n\t\t\t\t\t\t\"&callback=window.map.init\"\n\t\t\t\t); /* eslint-disable-line */\n\t\t\t\twindow.googleapi = true;\n\t\t\t}\n\t\t}\n\t}\n\n\tinit() {\n\t\tconst mapContainer = document.getElementsByClassName(\"map__container\")[0];\n\t\tconst locationLatitude = mapContainer.dataset.lat;\n\t\tconst locationLongitude = mapContainer.dataset.lng;\n\t\tconst zoom = mapContainer.dataset.zoom;\n\t\tlet height = new google.maps.LatLng(\n\t\t\tlocationLatitude,\n\t\t\tlocationLongitude\n\t\t); /* eslint-disable-line */\n\t\tconst mapOptions = {\n\t\t\tzoom: parseInt(zoom),\n\t\t\tzoomControl: false,\n\t\t\tmapTypeControl: false,\n\t\t\tscaleControl: false,\n\t\t\tstreetViewControl: false,\n\t\t\trotateControl: false,\n\t\t\tfullscreenControl: false,\n\t\t\tcenter: height,\n\t\t};\n\t\tlet map = new google.maps.Map(\n\t\t\tmapContainer,\n\t\t\tmapOptions\n\t\t); /* eslint-disable-line */\n\t\tlet directionsDisplay =\n\t\t\tnew google.maps.DirectionsRenderer(); /* eslint-disable-line */\n\t\tconst marker = new google.maps.Marker({\n\t\t\t/* eslint-disable-line */ position: height,\n\t\t\tmap: map,\n\t\t\ttitle: \"Artá Capital Theme\",\n\t\t});\n\n\t\tmapContainer.classList.remove(\"u-visually-hidden\");\n\t\tdirectionsDisplay.setMap(map);\n\n\t\t// please note,\n\t\t// that IE11 now returns undefined again for window.chrome\n\t\t// and new Opera 30 outputs true for window.chrome\n\t\t// and new IE Edge outputs to true now for window.chrome\n\t\t// and if not iOS Chrome check\n\t\t// so use the below updated condition\n\t\tconst isChromium = window.chrome;\n\t\tconst winNav = window.navigator;\n\t\tconst vendorName = winNav.vendor;\n\t\tconst isOpera = winNav.userAgent.indexOf(\"OPR\") > -1;\n\t\tconst isIEedge = winNav.userAgent.indexOf(\"Edge\") > -1;\n\t\tconst isIOSChrome = winNav.userAgent.match(\"CriOS\");\n\n\t\tif (isIOSChrome) {\n\t\t\t// is Google Chrome on IOS\n\t\t} else if (\n\t\t\t(isChromium !== null &&\n\t\t\t\tisChromium !== undefined &&\n\t\t\t\tvendorName === \"Google Inc.\" &&\n\t\t\t\tisOpera === false &&\n\t\t\t\tisIEedge === false) ||\n\t\t\tnavigator.userAgent.indexOf(\"Safari\") !== -1\n\t\t) {\n\t\t\t// is Google Chrome or Safari\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", function (event) {\n\t\t\t\tdocument.getElementById(\"panel\").style.display = \"none\";\n\t\t\t});\n\t\t} else {\n\t\t\t// not Google Chrome\n\t\t}\n\t}\n}\n\nexport default Map;\n","/* eslint-disable */\nclass Numbers {\n\tconstructor() {\n\t\tthis.numbers = document.getElementsByClassName(\"numbers\")[0];\n\t\tif (this.numbers) {\n\t\t\tthis.init();\n\t\t}\n\t}\n\n\tinit() {\n\t\twindow.loadJS(\"/wp-content/themes/arta-capital/js/numbers.js\", () => {\n\t\t\twindow.jQueryNumbers();\n\t\t});\n\t}\n}\n\nexport default Numbers;\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\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\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n return swiper.slideTo(swiper.slides.length - 1, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(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 const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\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}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","export default function appendSlide(slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n let newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n const baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n const slidesBuffer = [];\n\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n const swiper = this;\n const {\n params,\n $wrapperEl,\n activeIndex\n } = swiper;\n let activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.observer) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n const swiper = this;\n const slidesIndexes = [];\n\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","export default function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n}","export default function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n}","export default function effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides\n}) {\n const {\n slides,\n activeIndex,\n $wrapperEl\n } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (let i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n}","import $ from './dom.js';\nexport default function createShadow(params, $slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\n\n if (!$shadowEl.length) {\n $shadowEl = $(`
`);\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n}","/**\n * Swiper 7.4.1\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: December 24, 2021\n */\n\nimport Swiper from './core/core.js';\nexport { default as Swiper, default } from './core/core.js';\nimport Virtual from './modules/virtual/virtual.js';\nimport Keyboard from './modules/keyboard/keyboard.js';\nimport Mousewheel from './modules/mousewheel/mousewheel.js';\nimport Navigation from './modules/navigation/navigation.js';\nimport Pagination from './modules/pagination/pagination.js';\nimport Scrollbar from './modules/scrollbar/scrollbar.js';\nimport Parallax from './modules/parallax/parallax.js';\nimport Zoom from './modules/zoom/zoom.js';\nimport Lazy from './modules/lazy/lazy.js';\nimport Controller from './modules/controller/controller.js';\nimport A11y from './modules/a11y/a11y.js';\nimport History from './modules/history/history.js';\nimport HashNavigation from './modules/hash-navigation/hash-navigation.js';\nimport Autoplay from './modules/autoplay/autoplay.js';\nimport Thumbs from './modules/thumbs/thumbs.js';\nimport FreeMode from './modules/free-mode/free-mode.js';\nimport Grid from './modules/grid/grid.js';\nimport Manipulation from './modules/manipulation/manipulation.js';\nimport EffectFade from './modules/effect-fade/effect-fade.js';\nimport EffectCube from './modules/effect-cube/effect-cube.js';\nimport EffectFlip from './modules/effect-flip/effect-flip.js';\nimport EffectCoverflow from './modules/effect-coverflow/effect-coverflow.js';\nimport EffectCreative from './modules/effect-creative/effect-creative.js';\nimport EffectCards from './modules/effect-cards/effect-cards.js';\n\n// Swiper Class\nconst modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, Thumbs, FreeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\nSwiper.use(modules);\n","import $ from '../../shared/dom.js';\nimport { setCSSProperty } from '../../shared/utils.js';\nexport default function Virtual({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n const $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(`
${slide}
`);\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides\n } = swiper.params;\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n }\n\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, `${offset}px`);\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n const prependIndexes = [];\n const appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`).remove();\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n if (i >= from && i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(i);\n } else {\n if (i > previousTo) appendIndexes.push(i);\n if (i < previousFrom) prependIndexes.push(i);\n }\n }\n }\n\n appendIndexes.forEach(index => {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort((a, b) => b - a).forEach(index => {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\n onRendered();\n }\n\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const $cachedEl = cache[cachedIndex];\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Keyboard({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 && swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n\n const $el = swiper.$el;\n const swiperWidth = $el[0].clientWidth;\n const swiperHeight = $el[0].clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}","/* eslint-disable consistent-return */\nimport { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now, nextTick } from '../../shared/utils.js';\nexport default function Mousewheel({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n }\n\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n\n function events(method) {\n let target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Scrollbar({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl,\n progress\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\n $dragEl[0].style.width = `${newSize}px`;\n } else {\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\n $dragEl[0].style.height = `${newSize}px`;\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(() => {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n $dragEl,\n $el\n } = scrollbar;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = `${dragSize}px`;\n } else {\n $dragEl[0].style.height = `${dragSize}px`;\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n $el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el,\n $dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n $wrapperEl\n } = swiper;\n const {\n $el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n const {\n scrollbar,\n touchEventsTouch,\n touchEventsDesktop,\n params,\n support\n } = swiper;\n const $el = scrollbar.$el;\n const target = $el[0];\n const activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n const {\n scrollbar,\n $el: $swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\n\n if ($dragEl.length === 0) {\n $dragEl = $(`
`);\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el,\n el: $el[0],\n $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', () => {\n init();\n updateSize();\n setTranslate();\n });\n on('update resize observerUpdate lock unlock', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.scrollbar;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', () => {\n destroy();\n });\n Object.assign(swiper.scrollbar, {\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}","import $ from '../../shared/dom.js';\nexport default function Parallax({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const $el = $(el);\n const rtlFactor = rtl ? -1 : 1;\n const p = $el.attr('data-swiper-parallax') || '0';\n let x = $el.attr('data-swiper-parallax-x');\n let y = $el.attr('data-swiper-parallax-y');\n const scale = $el.attr('data-swiper-parallax-scale');\n const opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\n } else {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\n }\n };\n\n const setTranslate = () => {\n const {\n $el,\n slides,\n progress,\n snapGrid\n } = swiper;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, progress);\n });\n slides.each((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(el => {\n setTransform(el, slideProgress);\n });\n });\n };\n\n const setTransition = (duration = swiper.params.speed) => {\n const {\n $el\n } = swiper;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(parallaxEl => {\n const $parallaxEl = $(parallaxEl);\n let parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { getTranslate } from '../../shared/utils.js';\nexport default function Zoom({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let gesturesEnabled;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n const x1 = e.targetTouches[0].pageX;\n const y1 = e.targetTouches[0].pageY;\n const x2 = e.targetTouches[1].pageX;\n const y2 = e.targetTouches[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function onGestureEnd(e) {\n const device = swiper.device;\n const support = swiper.support;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\n }\n\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(`translate3d(${translateX}px, ${translateY}px,0)`);\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\n }\n\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(`.${params.containerClass}`).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0);\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n const support = swiper.support;\n const passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return `.${swiper.params.slideClass}`;\n }\n\n function toggleGestures(method) {\n const {\n passiveListener\n } = getListeners();\n const slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const support = swiper.support;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n const support = swiper.support;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n const slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, `.${swiper.params.zoom.containerClass}`, onTouchMove, activeListenerWithCapture);\n }\n\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd(e);\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = slidesPerView;\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + slidesPerView; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","import classesToSelector from '../../shared/classes-to-selector.js';\nimport $ from '../../shared/dom.js';\nexport default function A11y({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n let liveRegion = null;\n\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber(size = 16) {\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.each(bulletEl => {\n const $bulletEl = $(bulletEl);\n\n if (swiper.params.pagination.clickable) {\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n }\n\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\n $bulletEl.attr('aria-current', 'true');\n } else {\n $bulletEl.removeAttr('aria-current');\n }\n });\n }\n\n const initNavEl = ($el, wrapperId, message) => {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n const params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n const $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n const $wrapperEl = swiper.$wrapperEl;\n const wrapperId = $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n const slidesLength = swiper.params.loop ? swiper.slides.filter(el => !el.classList.contains(swiper.params.slideDuplicateClass)).length : swiper.slides.length;\n swiper.slides.each((slideEl, index) => {\n const $slideEl = $(slideEl);\n const slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n let $nextEl;\n let $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasClickablePagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', () => {\n liveRegion = $(``);\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}","import { getWindow } from 'ssr-window';\nexport default function History({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n });\n let initialized = false;\n let paths = {};\n\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n const slide = swiper.slides.eq(index);\n let value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key}/${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key}/${value}`;\n }\n\n const currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHistory = slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, swiper.paths.value, false);\n };\n\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n const destroy = () => {\n const window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function HashNavigation({\n swiper,\n extendParams,\n emit,\n on\n}) {\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '');\n emit('hashSet');\n } else {\n const slide = swiper.slides.eq(swiper.activeIndex);\n const hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n\n if (hash) {\n const speed = 0;\n\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides.eq(i);\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n const index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}","/* eslint no-underscore-dangle: \"off\" */\n\n/* eslint no-use-before-define: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick } from '../../shared/utils.js';\nexport default function Autoplay({\n swiper,\n extendParams,\n on,\n emit\n}) {\n let timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n let delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(timeout);\n timeout = nextTick(() => {\n let autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n const document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(event => {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n start();\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', () => {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause,\n run,\n start,\n stop\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","import { now } from '../../shared/utils.js';\nexport default function freeMode({\n swiper,\n extendParams,\n emit,\n once\n}) {\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n const {\n touchEventsData: data,\n touches\n } = swiper; // Velocity\n\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n\n function onTouchEnd({\n currentPos\n }) {\n const {\n params,\n $wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper; // Time diff\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove,\n onTouchEnd\n }\n });\n}","export default function Grid({\n swiper,\n extendParams\n}) {\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n\n const initSlides = slidesLength => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\n const {\n slidesPerGroup,\n spaceBetween\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid; // Set slides order\n\n let newSlideOrderIndex;\n let column;\n let row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && `${spaceBetween}px` : '');\n };\n\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\n const {\n spaceBetween,\n centeredSlides,\n roundLengths\n } = swiper.params;\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`\n });\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push(...newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides,\n updateSlide,\n updateWrapperSize\n };\n}","import appendSlide from './methods/appendSlide.js';\nimport prependSlide from './methods/prependSlide.js';\nimport addSlide from './methods/addSlide.js';\nimport removeSlide from './methods/removeSlide.js';\nimport removeAllSlides from './methods/removeAllSlides.js';\nexport default function Manipulation({\n swiper\n}) {\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n}","import effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFade({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.fadeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import $ from '../../shared/dom.js';\nimport effectInit from '../../shared/effect-init.js';\nexport default function EffectCube({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n const setTranslate = () => {\n const {\n $el,\n $wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: `${swiperWidth}px`\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${isHorizontal ? slideAngle : 0}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(transform);\n\n if (params.slideShadows) {\n // 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\n if (shadowBefore.length === 0) {\n shadowBefore = $(`
`);\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(`
`);\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\n 'transform-origin': `50% 50% -${swiperSize / 2}px`\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(`translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`);\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n $cubeShadowEl.transform(`scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-90deg)`);\n }\n }\n\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(`translate3d(0px,0,${zFactor}px) rotateX(${swiper.isHorizontal() ? 0 : wrapperRotate}deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`);\n };\n\n const setTransition = duration => {\n const {\n $el,\n slides\n } = swiper;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectFlip({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n let progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // 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\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.flipEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nexport default function EffectCoverflow({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth; // Each slide offset from center\n\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideSize = slidesSizesGrid[i];\n const slideOffset = $slideEl[0].swiperSlideOffset;\n const offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n let $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.coverflowEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCreative({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n\n const setTranslate = () => {\n const {\n slides,\n $wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\n }\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress);\n }\n\n const offset = $slideEl[0].swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n }); // set rotates\n\n r.forEach((value, index) => {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`; // Set shadows\n\n if (custom && data.shadow || !custom) {\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.creativeEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","import createShadow from '../../shared/create-shadow.js';\nimport effectInit from '../../shared/effect-init.js';\nimport effectTarget from '../../shared/effect-target.js';\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\nexport default function EffectCards({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null\n }\n });\n\n const setTranslate = () => {\n const {\n slides,\n activeIndex\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = swiper.translate;\n\n for (let i = 0; i < slides.length; i += 1) {\n const $slideEl = slides.eq(i);\n const slideProgress = $slideEl[0].progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -2 * progress;\n let tXAdd = 8 - Math.abs(progress) * 0.75;\n const isSwipeToNext = (i === activeIndex || i === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (i === activeIndex || i === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n\n if (progress < 0) {\n // next\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${rotate}deg)\n scale(${scaleString})\n `;\n\n if (params.slideShadows) {\n // Set shadows\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform);\n }\n };\n\n const setTransition = duration => {\n const {\n transformEl\n } = swiper.params.cardsEffect;\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}","/* eslint-disable */\nimport Swiper from \"swiper/bundle\";\n\nclass Slider {\n\tconstructor() {\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\t// Image gallery\n\t\tconst sliderGallery = document.querySelector(\".slider-gallery__container\");\n\t\tconst columns = sliderGallery\n\t\t\t? parseFloat(sliderGallery.dataset.columns.replace(/,/g, \".\"))\n\t\t\t: 2;\n\t\tconst offset = sliderGallery && +sliderGallery.dataset.shownext ? 0.5 : 0;\n\t\tconst spaceBetweenMobile = sliderGallery\n\t\t\t? +sliderGallery.dataset.spacebetweenmobile\n\t\t\t: 30;\n\t\tconst spaceBetweenDesktop = sliderGallery\n\t\t\t? +sliderGallery.dataset.spacebetweendesktop\n\t\t\t: 30;\n\t\tconst sliderSection = new Swiper(\".slider-gallery .swiper-container\", {\n\t\t\t// eslint-disable-line\n\t\t\t// Optional parameters\n\t\t\tdirection: \"horizontal\",\n\t\t\tloop: false,\n\t\t\tslidesPerView: 1.25,\n\t\t\tspaceBetween: spaceBetweenMobile,\n\t\t\t// Responsive\n\t\t\tbreakpoints: {\n\t\t\t\t992: {\n\t\t\t\t\tslidesPerView: columns + offset,\n\t\t\t\t\tspaceBetween: spaceBetweenDesktop,\n\t\t\t\t},\n\t\t\t},\n\n\t\t\t// Navigation arrows\n\t\t\tnavigation: {\n\t\t\t\tnextEl: \".js-swiper-next\",\n\t\t\t\tprevEl: \".js-swiper-prev\",\n\t\t\t},\n\t\t});\n\n\t\t// Customers feedback\n\t\tconst customersFeedbackSection = new Swiper(\n\t\t\t\".customers-feedback .swiper-container\",\n\t\t\t{\n\t\t\t\t// eslint-disable-line\n\t\t\t\t// Optional parameters\n\t\t\t\tdirection: \"horizontal\",\n\t\t\t\tloop: false,\n\t\t\t\tslidesPerView: 1,\n\t\t\t\tspaceBetween: 50,\n\n\t\t\t\t// Navigation arrows\n\t\t\t\tnavigation: {\n\t\t\t\t\tnextEl: \".js-customers-feedback-swiper-next\",\n\t\t\t\t\tprevEl: \".js-customers-feedback-swiper-prev\",\n\t\t\t\t},\n\n\t\t\t\t// Events\n\t\t\t\tpagination: {\n\t\t\t\t\tel: \".customers-feedback__pagination\",\n\t\t\t\t},\n\t\t\t}\n\t\t);\n\t\t// Timeline section freemode slider.\n\t\tfor (const el of Array.from(document.querySelectorAll(\".timeline\"))) {\n\t\t\tnew Swiper(el.querySelector(\".timeline-swiper-container\"), {\n\t\t\t\t// eslint-disable-line\n\t\t\t\tfreeMode: true,\n\t\t\t\tgrabCursor: true,\n\t\t\t\tslidesPerView: \"auto\",\n\t\t\t\t// Navigation arrows\n\t\t\t\tnavigation: {\n\t\t\t\t\tnextEl: el.querySelector(\".js-swiper-button-next\"),\n\t\t\t\t\tprevEl: el.querySelector(\".js-swiper-button-prev\"),\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n}\n\nexport default Slider;\n","/* eslint-disable */\nimport LottieAnimations from \"./lib/lottie\";\nimport AnimationScenes from \"./template-parts/common/animationScenes\";\nimport LazyLoading from \"./lib/lazy-loading\";\nimport Cta from \"./template-parts/components/cta\";\nimport Filters from \"./template-parts/components/filters\";\nimport Pagination from \"./template-parts/components/pagination\";\nimport ContactForm from \"./template-parts/sections/contact-form\";\nimport Facts from \"./template-parts/sections/facts\";\nimport FullScreen from \"./template-parts/sections/full-screen-section\";\nimport Map from \"./template-parts/sections/map\";\nimport Numbers from \"./template-parts/sections/numbers\";\nimport Slider from \"./template-parts/sections/slider\";\n\nexport default class ModulesLoader {\n\tconstructor(el = document) {\n\t\tthis.el = el;\n\t}\n\n\tloadModules() {\n\t\twindow.lottieAnimations = new LottieAnimations();\n\t\twindow.animationScenes = new AnimationScenes();\n\t\twindow.lazyLoading = new LazyLoading();\n\t\twindow.cta = new Cta();\n\t\twindow.filters = new Filters();\n\t\twindow.pagination = new Pagination();\n\t\twindow.contactForm = new ContactForm();\n\t\twindow.facts = new Facts();\n\t\twindow.fullScreen = new FullScreen();\n\t\twindow.map = new Map();\n\t\twindow.numbers = new Numbers();\n\t\twindow.slider = new Slider();\n\t}\n}\n","/* eslint-disable no-unused-vars, consistent-return, no-unused-vars, no-restricted-syntax, class-methods-use-this, strict */\nimport barba from \"@barba/core\";\nimport ScrollMagic from \"scrollmagic\";\n\nclass Barba {\n\tconstructor() {\n\t\tthis.initBarba();\n\t}\n\n\tinitBarba() {\n\t\tconst htmlDocument = document.getElementsByTagName(\"html\")[0];\n\n\t\tbarba.init({\n\t\t\tdebug: false,\n\t\t\tcacheIgnore: false,\n\t\t\tprefetchIgnore: false,\n\t\t\ttimeout: 5000,\n\t\t\ttransitions: [\n\t\t\t\t{\n\t\t\t\t\tname: \"default\",\n\t\t\t\t\tbeforeLeave({ current, next, trigger }) {\n\t\t\t\t\t\tconst async = this.async();\n\n\t\t\t\t\t\t// Transition animation\n\t\t\t\t\t\twindow.slideDown(\"loader\"); // Show loader\n\t\t\t\t\t\tcurrent.container.classList.remove(\"barba-container--fadein\");\n\t\t\t\t\t\tcurrent.container.classList.toggle(\"barba-container--fadeout\");\n\n\t\t\t\t\t\t// Transition duration\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t// Make sure menu is closed\n\t\t\t\t\t\t\t$(\"#js-header-navigation\").hide(); // eslint-disable-line\n\t\t\t\t\t\t\tanimenu.goToAndStop(0); // eslint-disable-line\n\n\t\t\t\t\t\t\tasync();\n\t\t\t\t\t\t}, 800);\n\t\t\t\t\t},\n\t\t\t\t\tbeforeEnter({ current, next, trigger }) {\n\t\t\t\t\t\t// Scroll to top\n\t\t\t\t\t\thtmlDocument.style.scrollBehavior = \"auto\";\n\t\t\t\t\t\thtmlDocument.scrollIntoView({\n\t\t\t\t\t\t\tblock: \"start\",\n\t\t\t\t\t\t\tbehavior: \"auto\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tenter({ current, next, trigger }) {\n\t\t\t\t\t\tnext.container.classList.remove(\"barba-container--fadeout\");\n\t\t\t\t\t\tnext.container.classList.toggle(\"barba-container--fadein\");\n\t\t\t\t\t\twindow.slideUp(\"loader\"); // Remove loader\n\t\t\t\t\t\tdocument.body.classList.remove(\"u-mobile-block-scroll\"); // Remove scroll block\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tprevent: ({ el }) => {\n\t\t\t\tconst ignoreClasses = [\"ab-item\", \"another-class-here\"]; // Additional (besides .js-barba-prevent) ignore links with these classes (ab-item is for wp admin toolbar links)\n\t\t\t\tif (/.pdf/.test(el.href.toLowerCase())) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (el.classList && el.classList.contains(\"js-barba-prevent\")) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (el.dataset && el.dataset.lightbox) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tfor (let i = 0; i < ignoreClasses.length; i += 1) {\n\t\t\t\t\tif (el.classList.contains(ignoreClasses[i])) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\trequestError: (trigger, action, url, response) => {\n\t\t\t\tconsole.log(\"REQUEST ERROR\"); // eslint-disable-line no-console\n\t\t\t\tconsole.log(url); // eslint-disable-line no-console\n\t\t\t\tconsole.log(response); // eslint-disable-line no-console\n\t\t\t},\n\t\t});\n\t\t// Global enter hook\n\t\tbarba.hooks.enter(({ current, next, trigger }) => {\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\tthis.setBodyClasses(next.container);\n\t\t\t\tthis.setTranslationLinks(next.container);\n\t\t\t\tthis.mobileMenu();\n\t\t\t\tthis.updateCurrentHighlightedMenu(next.html);\n\n\t\t\t\t// Modules\n\t\t\t\twindow.modulesLoader.loadModules();\n\n\t\t\t\t// Animations\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\twindow.animationScenes(new ScrollMagic.Controller());\n\t\t\t\t}, 300);\n\n\t\t\t\t// Link anchor\n\t\t\t\tthis.triggerLinkAnchor();\n\n\t\t\t\t// Wysiwyg\n\t\t\t\tthis.fixWysiwyg();\n\n\t\t\t\t// Google Analytics\n\t\t\t\tif (typeof window.ga === \"function\") {\n\t\t\t\t\twindow.ga(\"send\", \"pageview\", window.location.pathname);\n\t\t\t\t}\n\n\t\t\t\t// WP admin bar\n\t\t\t\tthis.fixWpAdminBar();\n\n\t\t\t\t// Make sure scroll is restored\n\t\t\t\twindow.disableScroll.enableScroll();\n\t\t\t\thtmlDocument.style.overflow = \"initial\";\n\t\t\t\thtmlDocument.style.scrollBehavior = \"smooth\";\n\t\t\t\tdocument.getElementsByTagName(\"body\")[0].style.overflow = \"initial\";\n\t\t\t});\n\t\t});\n\t}\n\n\tsetBodyClasses(e) {\n\t\tconst skipClasses = [\"\"]; // Add the classes you want to skip\n\t\tconst currentBodyClasses = document.querySelector(\"body\").classList;\n\t\tconst newBodyClasses = e.querySelector(\"#body-classes\").value;\n\t\tconst splittedNewBodyClasses = newBodyClasses.split(\" \");\n\t\tfor (let i = 0; i < currentBodyClasses.length; i += 1) {\n\t\t\tif (newBodyClasses.indexOf(currentBodyClasses[i]) > -1) {\n\t\t\t\tskipClasses.push(currentBodyClasses[i]);\n\t\t\t}\n\t\t}\n\t\tArray.from(currentBodyClasses).forEach((bodyClass) => {\n\t\t\t// Don't remove class if it exists in skipClasses\n\t\t\tif (!skipClasses.includes(bodyClass)) {\n\t\t\t\tcurrentBodyClasses.remove(bodyClass);\n\t\t\t}\n\t\t});\n\t\tfor (let s = 0; s < splittedNewBodyClasses.length; s += 1) {\n\t\t\tdocument.querySelector(\"body\").classList.add(splittedNewBodyClasses[s]);\n\t\t}\n\t}\n\n\tsetTranslationLinks(e) {\n\t\t\"use strict\";\n\n\t\tconst linksData = e.getAttribute(\"data-translation-links\");\n\t\tif (linksData && linksData !== \"null\") {\n\t\t\tconst links = JSON.parse(linksData);\n\t\t\tif (links.constructor === Array && links.length > 0) {\n\t\t\t\tfor (let s = 0; s < links.length; s += 1) {\n\t\t\t\t\tconst li = document.querySelector(\n\t\t\t\t\t\t`.header__languages ul li:nth-child( ${s + 1}`\n\t\t\t\t\t);\n\t\t\t\t\tif (li !== null) {\n\t\t\t\t\t\tli.setAttribute(\"href\", links[s]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tmobileMenu() {\n\t\tconst mobileMenuToogler = document.getElementById(\"main-menu-toggler\");\n\t\tif (mobileMenuToogler) {\n\t\t\tmobileMenuToogler.checked = false;\n\t\t}\n\t}\n\n\t/**\n\t * Parses the DOM structure of the BarbaJS fetch, and applies same classes on the header in DOM.\n\t * @param {String} htmlString - The new page html in string format from barbaJs\n\t */\n\tupdateCurrentHighlightedMenu(htmlString) {\n\t\tconst html = new window.DOMParser().parseFromString(\n\t\t\thtmlString,\n\t\t\t\"text/html\"\n\t\t);\n\t\tif (\"body\" in html === false || html.body.childNodes.length < 1) {\n\t\t\t// Why the length check?\n\t\t\treturn;\n\t\t}\n\t\t// First remove current classes from all menu items and sub menus.\n\t\tfor (const el of Array.from(document.querySelectorAll(\".menu-item\"))) {\n\t\t\tel.classList.remove(\"current-menu-item\");\n\t\t\tel.classList.remove(\"current-menu-parent\");\n\t\t\tel.classList.remove(\"current-menu-ancestor\");\n\t\t}\n\t\t// Get the new current menu items and parents and set the appropiate classes.\n\t\tlet newEl;\n\t\tfor (const el of Array.from(html.querySelectorAll(\".current-menu-item\"))) {\n\t\t\tif (el.id) {\n\t\t\t\tnewEl = document.querySelector(`#${el.id}`);\n\t\t\t\tif (newEl !== null) {\n\t\t\t\t\tnewEl.classList.add(\"current-menu-item\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const el of Array.from(\n\t\t\thtml.querySelectorAll(\".current-menu-parent\")\n\t\t)) {\n\t\t\tif (el.id) {\n\t\t\t\tnewEl = document.querySelector(`#${el.id}`);\n\t\t\t\tif (newEl !== null) {\n\t\t\t\t\tnewEl.classList.add(\"current-menu-parent\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (const el of Array.from(\n\t\t\thtml.querySelectorAll(\".current-menu-ancestor\")\n\t\t)) {\n\t\t\tif (el.id) {\n\t\t\t\tnewEl = document.querySelector(`#${el.id}`);\n\t\t\t\tif (newEl !== null) {\n\t\t\t\t\tnewEl.classList.add(\"current-menu-ancestor\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\ttriggerLinkAnchor() {\n\t\tif (window.location.hash) {\n\t\t\tconst anchorId = window.location.hash;\n\t\t\tconst anchorIdWithoutHash = anchorId.replace(\"#\", \"\");\n\t\t\tconst elementToScrollTo = document.getElementById(anchorIdWithoutHash);\n\n\t\t\t// Scroll to the link anchored element.\n\t\t\telementToScrollTo.scrollIntoView({\n\t\t\t\talignToTop: true,\n\t\t\t\tbehavior: \"smooth\",\n\t\t\t});\n\t\t}\n\t}\n\n\tloadWysiwygVideoScripts() {\n\t\tif (window.wp) {\n\t\t\t// Remove existing script\n\t\t\tconst existingScript = document.querySelector(\n\t\t\t\t'script[src=\"/wp-includes/js/mediaelement/mediaelement-and-player.js\"]'\n\t\t\t);\n\t\t\tif (existingScript) {\n\t\t\t\texistingScript.remove();\n\t\t\t}\n\t\t}\n\t\twindow.loadJS(\n\t\t\t\"/wp-includes/js/mediaelement/mediaelement-and-player.js\",\n\t\t\t() => {\n\t\t\t\tif (window.wp) {\n\t\t\t\t\t// Remove existing script\n\t\t\t\t\tconst existingScript = document.querySelector(\n\t\t\t\t\t\t'script[src=\"/wp-includes/js/mediaelement/mediaelement-migrate.js\"]'\n\t\t\t\t\t);\n\t\t\t\t\tif (existingScript) {\n\t\t\t\t\t\texistingScript.remove();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\twindow.loadJS(\n\t\t\t\t\t\"/wp-includes/js/mediaelement/mediaelement-migrate.js\",\n\t\t\t\t\t() => {\n\t\t\t\t\t\tif (window.wp) {\n\t\t\t\t\t\t\t// Remove existing script\n\t\t\t\t\t\t\tconst existingScript = document.querySelector(\n\t\t\t\t\t\t\t\t'script[src=\"/wp-includes/js/mediaelement/wp-mediaelement.js\"]'\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tif (existingScript) {\n\t\t\t\t\t\t\t\texistingScript.remove();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\twindow.loadJS(\n\t\t\t\t\t\t\t\"/wp-includes/js/mediaelement/wp-mediaelement.js\",\n\t\t\t\t\t\t\t() => {\n\t\t\t\t\t\t\t\tif (window.wp) {\n\t\t\t\t\t\t\t\t\t// Remove existing script\n\t\t\t\t\t\t\t\t\tconst existingScript = document.querySelector(\n\t\t\t\t\t\t\t\t\t\t'script[src=\"/wp-includes/js/mediaelement/renderers/vimeo.min.js\"]'\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tif (existingScript) {\n\t\t\t\t\t\t\t\t\t\texistingScript.remove();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.loadJS(\n\t\t\t\t\t\t\t\t\t\"/wp-includes/js/mediaelement/renderers/vimeo.min.js\",\n\t\t\t\t\t\t\t\t\t() => {}\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t);\n\t}\n\n\tfixWysiwyg() {\n\t\tconst wpVideo = document.querySelectorAll(\".wp-video\");\n\t\tif (wpVideo !== null) {\n\t\t\tif (undefined === window.jQuery) {\n\t\t\t\twindow.loadJS(\"/wp-includes/js/jquery/jquery.min.js\", () => {\n\t\t\t\t\tthis.loadWysiwygVideoScripts();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.loadWysiwygVideoScripts();\n\t\t\t}\n\t\t\tif (undefined === window.wp) {\n\t\t\t\twindow.loadCSS(\n\t\t\t\t\t\"/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css\",\n\t\t\t\t\t() => {}\n\t\t\t\t);\n\t\t\t\twindow.loadCSS(\n\t\t\t\t\t\"/wp-includes/js/mediaelement/wp-mediaelement.css\",\n\t\t\t\t\t() => {}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tfixWpAdminBar() {\n\t\tif (!document.querySelector(\"#wpadminbar\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst xmlhttp = ajaxReq(); // eslint-disable-line\n\t\tconst url = encodeURI(scripts_ajax_variables.ajax_url); // eslint-disable-line\n\t\tconst params = `action=art_fix_barbajs_wp_admin&location=${window.location.href}`;\n\n\t\txmlhttp.open(\"POST\", url, true); // set true for async, false for sync request\n\t\txmlhttp.setRequestHeader(\n\t\t\t\"Content-type\",\n\t\t\t\"application/x-www-form-urlencoded\"\n\t\t);\n\t\txmlhttp.send(params); // or null, if no parameters are passed\n\t\txmlhttp.onreadystatechange = function () {\n\t\t\tif (xmlhttp.readyState === 4 && xmlhttp.status === 200) {\n\t\t\t\ttry {\n\t\t\t\t\tconst response = JSON.parse(xmlhttp.responseText);\n\t\t\t\t\tif (response && response.success === true) {\n\t\t\t\t\t\tconst adminMenuLinks = Array.from(\n\t\t\t\t\t\t\tdocument.querySelector(\".ab-top-menu\").querySelectorAll(\"a\")\n\t\t\t\t\t\t);\n\t\t\t\t\t\tfor (const adminLink of adminMenuLinks) {\n\t\t\t\t\t\t\tconst mregex = /post=(\\d+)&/g;\n\t\t\t\t\t\t\tadminLink.classList.add(\"js-barba-prevent\");\n\t\t\t\t\t\t\tconst href = adminLink.getAttribute(\"href\");\n\t\t\t\t\t\t\tconst groups = mregex.exec(href);\n\t\t\t\t\t\t\tif (groups && groups.length >= 2) {\n\t\t\t\t\t\t\t\tadminLink.setAttribute(\n\t\t\t\t\t\t\t\t\t\"href\",\n\t\t\t\t\t\t\t\t\thref.replace(groups[1], response.pageId)\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tconst chunks = href.split(\"?url=\");\n\t\t\t\t\t\t\t\tconst encodedWindowLocationHref = encodeURIComponent(\n\t\t\t\t\t\t\t\t\twindow.location.href\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tif (chunks.length === 2) {\n\t\t\t\t\t\t\t\t\tadminLink.setAttribute(\n\t\t\t\t\t\t\t\t\t\t\"href\",\n\t\t\t\t\t\t\t\t\t\t`${chunks[0]}?url=${encodedWindowLocationHref}`\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.log(error);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n}\n\nexport default Barba;\n","/* eslint-disable */\nimport ready from \"mf-js/modules/dom/ready\";\n\nconst consentUI = (options) => {\n\tconst { hashtag, getText } = Object.assign(\n\t\t{\n\t\t\thashtag: \"#cookies-consent\",\n\t\t},\n\t\toptions\n\t);\n\n\tconst STATUS_WAIT = \"wait\";\n\tconst STATUS_TRUE = \"true\";\n\tconst STATUS_FALSE = \"false\";\n\n\t/**************************************************\n\t * MANAGER\n\t **************************************************/\n\n\tlet manager = false;\n\n\tconst setManager = (m) => {\n\t\tmanager = m;\n\t\treturn manager;\n\t};\n\n\t/**************************************************\n\t * BANNERS\n\t **************************************************/\n\n\tconst banner = document.createElement(\"div\");\n\n\tconst closeBanner = () => {\n\t\twindow.disableScroll.enableScroll(); // Unlock scroll\n\t\tif (banner.parentNode) {\n\t\t\tbanner.className = \"cookies-banner\";\n\t\t}\n\t};\n\n\tconst createBanner = () => {\n\t\tbanner.className = \"cookies-banner\";\n\n\t\tsetTimeout(function () {\n\t\t\tbanner.className = \"cookies-banner cookies-banner--active\";\n\t\t}, 500);\n\n\t\t// Banner Wrapper\n\t\tconst bannerWrapper = document.createElement(\"div\");\n\t\tbannerWrapper.className = \"wrapper\";\n\t\tbanner.appendChild(bannerWrapper);\n\n\t\t// Banner Text\n\t\tconst bannerText = document.createElement(\"div\");\n\t\tbannerText.className = \"cookies-banner__text\";\n\t\tbannerWrapper.appendChild(bannerText);\n\n\t\tbannerText.innerHTML = getText(\"banner\");\n\n\t\t// Banner Actions\n\t\tconst bannerActions = document.createElement(\"div\");\n\t\tbannerActions.className = \"cookies-banner__actions\";\n\t\tbannerWrapper.appendChild(bannerActions);\n\n\t\tconst acceptAllButton = document.createElement(\"button\");\n\t\tacceptAllButton.className = \"accept\";\n\t\tacceptAllButton.type = \"button\";\n\t\tacceptAllButton.tabIndex = \"0\";\n\t\tacceptAllButton.innerHTML = getText(\"accept\");\n\t\tbannerActions.appendChild(acceptAllButton);\n\n\t\tacceptAllButton.addEventListener(\"click\", () => {\n\t\t\tmanager.acceptAll();\n\t\t\tcloseBanner();\n\t\t});\n\n\t\tconst detailsButton = document.createElement(\"button\");\n\t\tdetailsButton.className = \"details\";\n\t\tdetailsButton.type = \"button\";\n\t\tdetailsButton.tabIndex = \"0\";\n\t\tdetailsButton.innerHTML = getText(\"customise\");\n\t\tbannerActions.appendChild(detailsButton);\n\n\t\tdetailsButton.addEventListener(\"click\", () => {\n\t\t\tcreateDetails();\n\t\t});\n\n\t\tconst rejectButton = document.createElement(\"button\");\n\t\trejectButton.className = \"reject\";\n\t\trejectButton.type = \"button\";\n\t\trejectButton.tabIndex = \"0\";\n\t\trejectButton.innerHTML = getText(\"deny\");\n\t\tbannerActions.appendChild(rejectButton);\n\n\t\trejectButton.addEventListener(\"click\", () => {\n\t\t\tmanager.denyAll();\n\t\t\tcloseBanner();\n\t\t});\n\n\t\t// Banner close\n\t\tconst closeButton = document.createElement(\"div\");\n\t\tcloseButton.className = \"cookies-banner__close\";\n\t\tcloseButton.role = \"button\";\n\t\tcloseButton.tabIndex = \"0\";\n\t\tcloseButton.ariaPressed = \"false\";\n\t\tcloseButton.innerHTML =\n\t\t\t'' +\n\t\t\tcookiesCloseButtonText +\n\t\t\t'Pulsa este botón para cerrar el banner de cookies';\n\t\tbannerActions.appendChild(closeButton);\n\n\t\tcloseButton.addEventListener(\"click\", () => {\n\t\t\tcloseBanner();\n\t\t});\n\n\t\t// Init\n\t\tready(() => document.body.appendChild(banner));\n\t};\n\n\tconst createModificationBanner = () => {\n\t\tconst banner = document.createElement(\"div\");\n\t\tbanner.id = \"cookiesalert\";\n\t\tbanner.style.display = \"none\";\n\n\t\tconst closeBanner = () => {\n\t\t\tif (banner.parentNode) {\n\t\t\t\tbanner.className = \"cookies-banner\";\n\t\t\t}\n\t\t};\n\n\t\t// Banner Content\n\t\tconst bannerContent = document.createElement(\"div\");\n\t\tbannerContent.className = \"box\";\n\t\tbanner.appendChild(bannerContent);\n\n\t\t// Banner Actions\n\t\tconst bannerActions = document.createElement(\"div\");\n\t\tconst modifyConfigButton = document.getElementById(\n\t\t\t\"cookies-configuration-button\"\n\t\t);\n\t\tif (modifyConfigButton) {\n\t\t\tmodifyConfigButton.addEventListener(\"click\", () => {\n\t\t\t\tcreateDetails();\n\t\t\t\tcloseBanner();\n\t\t\t});\n\t\t}\n\n\t\t// Banner close\n\t\tconst closeButton = document.createElement(\"div\");\n\t\tcloseButton.className = \"cookies-banner__close\";\n\t\tcloseButton.role = \"button\";\n\t\tcloseButton.tabIndex = \"0\";\n\t\tcloseButton.ariaPressed = \"false\";\n\t\tcloseButton.innerHTML =\n\t\t\t'' +\n\t\t\tcookiesCloseButtonText +\n\t\t\t'Pulsa este botón para cerrar el banner de cookies';\n\t\tbannerActions.appendChild(closeButton);\n\n\t\tcloseButton.addEventListener(\"click\", () => {\n\t\t\tcloseBanner();\n\t\t});\n\n\t\t// Init\n\t\tready(() => document.body.appendChild(banner));\n\t};\n\n\t/**************************************************\n\t * DETAILS\n\t **************************************************/\n\n\tconst createDetails = () => {\n\t\tconst details = document.createElement(\"div\");\n\t\tdetails.className = \"cookies-banner__details\";\n\n\t\tconst closeDetails = () => {\n\t\t\tdocument.body.removeChild(details);\n\t\t\twindow.removeEventListener(\"keydown\", keyListener, false);\n\n\t\t\tif (hashtag !== \"\" && document.location.hash === hashtag) {\n\t\t\t\tdocument.location.hash = \"\";\n\t\t\t}\n\t\t};\n\n\t\t// Background\n\t\tconst detailsBackground = document.createElement(\"div\");\n\t\tdetailsBackground.className = \"cookies-banner__background\";\n\t\tdetails.appendChild(detailsBackground);\n\n\t\tdetailsBackground.addEventListener(\"click\", () => {\n\t\t\tmanager.deleteCookie();\n\t\t\tcloseDetails();\n\t\t});\n\n\t\t// Modal\n\t\tconst detailsModal = document.createElement(\"div\");\n\t\tdetailsModal.className = \"cookies-banner__modal\";\n\t\tdetails.appendChild(detailsModal);\n\n\t\t// Details Text\n\t\tconst detailsText = document.createElement(\"div\");\n\t\tdetailsText.className = \"modal__text\";\n\t\tdetailsModal.appendChild(detailsText);\n\n\t\tdetailsText.innerHTML = getText(\"details\");\n\n\t\tconst createItem = (options) => {\n\t\t\tconst { status, label, accept } = options;\n\n\t\t\tconst item = document.createElement(\"div\");\n\t\t\titem.className = \"cookies-banner__item\";\n\t\t\titem.setAttribute(\"data-status\", status);\n\n\t\t\t// Label\n\t\t\tconst itemLabel = document.createElement(\"div\");\n\t\t\titemLabel.className = \"cookies-banner__item__label\";\n\t\t\titemLabel.innerHTML = label;\n\t\t\titem.appendChild(itemLabel);\n\n\t\t\t// Choices\n\t\t\tconst itemChoices = document.createElement(\"div\");\n\t\t\titemChoices.className = \"cookies-banner__item__choices\";\n\t\t\titem.appendChild(itemChoices);\n\n\t\t\t// Accept\n\t\t\tconst itemAccept = document.createElement(\"div\");\n\t\t\titemAccept.className = \"cookies-banner__item__accept\";\n\t\t\titemChoices.appendChild(itemAccept);\n\n\t\t\tconst acceptButton = document.createElement(\"label\");\n\t\t\tacceptButton.className = \"cookies-banner__item__switch\";\n\t\t\tacceptButton.innerHTML =\n\t\t\t\t'';\n\t\t\titemAccept.appendChild(acceptButton);\n\n\t\t\tacceptButton.addEventListener(\"click\", () => {\n\t\t\t\titem.setAttribute(\"data-status\", STATUS_TRUE);\n\t\t\t\taccept();\n\t\t\t});\n\n\t\t\treturn item;\n\t\t};\n\n\t\tconst services = manager.services();\n\n\t\t// Items All\n\t\tconst detailsAll = document.createElement(\"div\");\n\t\tdetailsAll.className = \"cookies-banner__details--all\";\n\t\tdetailsModal.appendChild(detailsAll);\n\n\t\tdetailsAll.appendChild(\n\t\t\tcreateItem({\n\t\t\t\tstatus: services.reduce((status, item) => {\n\t\t\t\t\tswitch (item.status) {\n\t\t\t\t\t\tcase STATUS_TRUE:\n\t\t\t\t\t\t\tif (status === \"\" || status === STATUS_TRUE) {\n\t\t\t\t\t\t\t\treturn STATUS_TRUE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tcase STATUS_FALSE:\n\t\t\t\t\t\t\tif (status === \"\" || status === STATUS_FALSE) {\n\t\t\t\t\t\t\t\treturn STATUS_FALSE;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\treturn STATUS_WAIT;\n\t\t\t\t\t}\n\t\t\t\t}, \"\"),\n\t\t\t\tlabel: getText(\"allServices\"),\n\t\t\t\taccept: () => {\n\t\t\t\t\tmanager.acceptAll();\n\t\t\t\t},\n\t\t\t})\n\t\t);\n\n\t\t// Items\n\t\tconst detailsItems = document.createElement(\"div\");\n\t\tdetailsItems.className = \"cookies-banner__details--items\";\n\t\tdetailsModal.appendChild(detailsItems);\n\n\t\tservices.forEach((item) =>\n\t\t\tdetailsItems.appendChild(\n\t\t\t\tcreateItem({\n\t\t\t\t\tstatus: item.status,\n\t\t\t\t\tlabel:\n\t\t\t\t\t\titem.service[0].name +\n\t\t\t\t\t\t(item.service[0].uri\n\t\t\t\t\t\t\t? `
${getText(\n\t\t\t\t\t\t\t\t\t\"policyLinkLabel\"\n\t\t\t\t\t\t\t )}`\n\t\t\t\t\t\t\t: \"\"),\n\t\t\t\t\taccept: () => manager.accept(item.key),\n\t\t\t\t})\n\t\t\t)\n\t\t);\n\n\t\t// Details close\n\t\tconst closeButton = document.createElement(\"div\");\n\t\tcloseButton.className = \"cookies-banner__close cookies-banner__close--dark\";\n\t\tcloseButton.tabIndex = \"0\";\n\t\tcloseButton.role = \"button\";\n\t\tcloseButton.ariaPressed = \"false\";\n\t\tcloseButton.innerHTML =\n\t\t\t'' +\n\t\t\tcookiesCloseButtonText +\n\t\t\t'Pulsa este botón para cerrar el banner de cookies';\n\t\tdetailsModal.appendChild(closeButton);\n\n\t\tcloseButton.addEventListener(\"click\", () => {\n\t\t\tmanager.deleteCookie();\n\t\t\tcloseDetails();\n\t\t});\n\n\t\tconst keyListener = (evt) => {\n\t\t\tif (evt.keyCode === 27) {\n\t\t\t\tmanager.deleteCookie();\n\t\t\t\tcloseDetails();\n\t\t\t}\n\t\t};\n\n\t\t// Save\n\t\tconst itemSave = document.createElement(\"div\");\n\t\titemSave.className = \"cookies-banner__save\";\n\t\tdetailsModal.appendChild(itemSave);\n\n\t\tconst saveButton = document.createElement(\"button\");\n\t\tsaveButton.className = \"save\";\n\t\tsaveButton.type = \"button\";\n\t\tsaveButton.innerHTML = getText(\"save\");\n\t\titemSave.appendChild(saveButton);\n\n\t\tsaveButton.addEventListener(\"click\", () => {\n\t\t\tcloseDetails();\n\t\t\tcloseBanner();\n\t\t\tservices.forEach((item) => {\n\t\t\t\tmanager.save(item.key);\n\t\t\t});\n\t\t});\n\n\t\twindow.addEventListener(\"keydown\", keyListener, false);\n\n\t\t// Init\n\t\tready(() => document.body.appendChild(details));\n\t};\n\n\t/**************************************************\n\t * EVENTS\n\t **************************************************/\n\n\tconst requireConsent = () => createBanner(manager);\n\tconst modifyConsent = () => createModificationBanner(manager);\n\n\tif (hashtag !== \"\") {\n\t\twindow.addEventListener(\n\t\t\t\"hashchange\",\n\t\t\t() => {\n\t\t\t\tif (document.location.hash === hashtag) {\n\t\t\t\t\tcreateDetails();\n\t\t\t\t}\n\t\t\t},\n\t\t\tfalse\n\t\t);\n\n\t\tif (document.location.hash === hashtag) {\n\t\t\tready(() => createDetails());\n\t\t}\n\t}\n\n\tconst o = {\n\t\tsetManager,\n\t\trequireConsent,\n\t\tmodifyConsent,\n\t};\n\n\treturn o;\n};\n\nexport default consentUI;\n","/* eslint-disable */\nimport cookie from \"mf-js/modules/cookies/cookie\";\n\nconst consentManager = (options = {}) => {\n\tconst { cookieName } = Object.assign(\n\t\t{ cookieName: \"cookies_consent\" },\n\t\toptions\n\t);\n\n\tconst STATUS_WAIT = \"wait\";\n\tconst STATUS_TRUE = \"true\";\n\tconst STATUS_FALSE = \"false\";\n\n\tconst cookies = (cookie(cookieName) || \"\")\n\t\t.split(\"!\")\n\t\t.filter((item) => item)\n\t\t.map((item) => item.split(\"=\"))\n\t\t.map((item) => ({ key: item[0], status: item[1] }));\n\n\tconst servicesStatus = {};\n\tcookies.forEach(({ key, status }) => {\n\t\tswitch (status) {\n\t\t\tcase STATUS_TRUE:\n\t\t\tcase STATUS_FALSE:\n\t\t\t\tservicesStatus[key] = status;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tservicesStatus[key] = STATUS_WAIT;\n\t\t}\n\t});\n\n\tconst writeCookie = () =>\n\t\tcookie(\n\t\t\tcookieName,\n\t\t\tservicesList.reduce(\n\t\t\t\t(curry, key) => curry + \"!\" + key + \"=\" + servicesStatus[key],\n\t\t\t\t\"\"\n\t\t\t),\n\t\t\t{ expires: 365, path: \"/\" }\n\t\t);\n\n\tconst deleteCookie = () => {\n\t\tdocument.cookie = cookieName + \"=;expires=Thu; 01 Jan 1970\";\n\n\t\treturn manager;\n\t};\n\n\t/**************************************************\n\t * SERVICES\n\t **************************************************/\n\n\tconst services = {};\n\tconst servicesList = [];\n\tconst servicesWaiting = [];\n\n\tconst register = (service, key = false) => {\n\t\tkey = key || service.key;\n\n\t\tconst status = (servicesStatus[key] = servicesStatus[key] || STATUS_WAIT);\n\n\t\tservicesList.push(key);\n\t\tservices[key] = services[key] ? [...services[key], service] : [service];\n\n\t\tservice.init(manager);\n\n\t\tif (status === STATUS_FALSE) {\n\t\t\tservice.refuse();\n\t\t} else if (status === STATUS_TRUE) {\n\t\t\tservice.accept(manager);\n\t\t} else {\n\t\t\tservicesWaiting.push(service);\n\t\t}\n\n\t\treturn manager;\n\t};\n\n\tconst accept = (key) => {\n\t\tif (servicesStatus[key] !== STATUS_TRUE) {\n\t\t\tservicesStatus[key] = STATUS_TRUE;\n\t\t\tservices[key].forEach((service) => service.accept(manager));\n\t\t\twriteCookie();\n\t\t}\n\t\twindow.disableScroll.enableScroll(); // Unlock scroll\n\t};\n\n\tconst deny = (key) => {\n\t\tservicesStatus[key] = STATUS_FALSE;\n\t\twriteCookie();\n\n\t\tconst domain = window.location.hostname.split(\".\");\n\t\twhile (domain.length > 1) {\n\t\t\tconst d = domain.join(\".\");\n\n\t\t\tservices[key].forEach((service) =>\n\t\t\t\tservice.cookies.forEach((cookieName) => {\n\t\t\t\t\tcookie(cookieName, null, { path: \"/\", expires: -1, domain: \".\" + d });\n\t\t\t\t\tcookie(cookieName, null, { path: \"/\", expires: -1, domain: d });\n\t\t\t\t})\n\t\t\t);\n\n\t\t\tdomain.shift();\n\t\t}\n\n\t\twindow.disableScroll.enableScroll(); // Unlock scroll\n\t};\n\n\tconst acceptAll = () => servicesList.forEach((key) => accept(key));\n\tconst denyAll = () => servicesList.forEach((key) => deny(key));\n\n\tconst save = (key) => {\n\t\tif (servicesStatus[key] === STATUS_TRUE) {\n\t\t\taccept(key);\n\t\t} else {\n\t\t\tdeny(key);\n\t\t}\n\t};\n\n\t/**************************************************\n\t * UI\n\t **************************************************/\n\n\tlet consentUI = false;\n\n\tconst setUI = (u) => {\n\t\tconsentUI = u;\n\n\t\tconsentUI.setManager(manager);\n\n\t\treturn manager;\n\t};\n\n\t/**************************************************\n\t * LAUNCH\n\t **************************************************/\n\n\tconst launch = () => {\n\t\twriteCookie();\n\n\t\tif (consentUI && servicesWaiting.length > 0) {\n\t\t\twindow.disableScroll.disableScroll(); // Block scroll\n\t\t\tconsentUI.requireConsent();\n\t\t} else if (consentUI) {\n\t\t\tconsentUI.modifyConsent();\n\t\t}\n\n\t\treturn manager;\n\t};\n\n\tconst manager = {\n\t\tsetUI,\n\t\tdeleteCookie,\n\t\tregister,\n\t\tlaunch,\n\t\taccept,\n\t\tdeny,\n\t\tacceptAll,\n\t\tdenyAll,\n\t\tsave,\n\t\tservices: () =>\n\t\t\tservicesList.map((key) => ({\n\t\t\t\tkey,\n\t\t\t\tservice: services[key],\n\t\t\t\tstatus: servicesStatus[key],\n\t\t\t})),\n\t};\n\n\treturn manager;\n};\n\nexport default consentManager;\n","export default function addScript( url, id, callback, execute, attrName, attrVal ) {\n \"use strict\";\n let script,\n done = false;\n \n if ( execute === false ) {\n if ( typeof callback === 'function' ) {\n callback();\n }\n }\n else {\n script = document.createElement( 'script' );\n script.type = 'text/javascript';\n script.id = (id !== undefined) ? id : '';\n script.async = true;\n script.src = url;\n \n if ( attrName !== undefined && attrVal !== undefined ) {\n script.setAttribute( attrName, attrVal );\n }\n \n if ( typeof callback === 'function' ) {\n script.onreadystatechange = script.onload = function () {\n const state = script.readyState;\n if ( !done && (!state || /loaded|complete/.test( state )) ) {\n done = true;\n callback();\n }\n };\n }\n \n document.getElementsByTagName( 'head' )[ 0 ].appendChild( script );\n }\n};\n","import addScript from \"../utils/addscript\";\n\nexport const gtagService = ( UA, configOptions = { 'anonymize_ip': true }, more = () => true ) => ({\n 'key': 'gtag',\n 'type': 'analytic',\n 'name': 'Google Analytics (gtag.js)',\n 'uri': 'https://support.google.com/analytics/answer/6004245',\n 'cookies': [ '_ga', '_gat', '_gid', '__utma', '__utmb', '__utmc', '__utmt', '__utmz', ('_gat_gtag_' + UA).replace( /-/g, '_' ) ],\n 'init': () => {\n window.dataLayer = window.dataLayer || [];\n \n window.gtag = function gtag() {\n window.dataLayer.push( arguments );\n };\n \n gtag( 'js', new Date() );\n gtag( 'config', UA, configOptions );\n \n more();\n },\n 'accept': () => addScript( 'https://www.googletagmanager.com/gtag/js?id=' + UA ),\n 'refuse': () => true,\n});\n\nexport default gtagService;\n","/*\nServices. Check https://github.com/AmauriC/tarteaucitron.js/blob/master/tarteaucitron.services.js if you need to add more services.\nThen adapt the service taking https://github.com/zemax/tartemeringuee/tree/master/services as an example.\n*/\n\n/* eslint-disable */\n\nimport consentUI from \"../../lib/cookies/consent-ui\";\nimport consentManager from \"../../lib/cookies/consent-manager\";\nimport gtag from \"tartemeringuee/services/gtag\";\n\nclass Cookies {\n\tconstructor() {\n\t\tif (typeof cookiesPolicyLink !== \"undefined\") {\n\t\t\t/* eslint-disable */\n\t\t\tconst consent = consentManager();\n\t\t\tif (\n\t\t\t\ttypeof googleAnalyticsId !== \"undefined\" &&\n\t\t\t\tgoogleAnalyticsId !== \"\"\n\t\t\t) {\n\t\t\t\tconsent\n\t\t\t\t\t.register(gtag(googleAnalyticsId))\n\t\t\t\t\t.setUI(\n\t\t\t\t\t\tconsentUI({\n\t\t\t\t\t\t\tgetText: getText({ privacyURL: cookiesPolicyLink }),\n\t\t\t\t\t\t})\n\t\t\t\t\t)\n\t\t\t\t\t.launch();\n\t\t\t}\n\t\t}\n\t}\n}\n\nexport default Cookies;\n","/* eslint-disable */\nclass DisableScroll {\n\tconstructor() {\n\t\tthis.body = document.body;\n\t}\n\n\t// Call this to disable scroll\n\tdisableScroll() {\n\t\tthis.body.classList.add(\"u-block-scroll\");\n\t}\n\n\t// Call this to enable scroll\n\tenableScroll() {\n\t\tthis.body.classList.remove(\"u-block-scroll\");\n\t}\n}\n\nexport default DisableScroll;\n","/* eslint-disable */\nimport \"./scss/style.scss\";\nimport Header from \"./js/template-parts/common/header.js\";\nimport ModulesLoader from \"./js/modules-loader.js\";\nimport Barba from \"./js/lib/barba.js\";\nimport Cookies from \"./js/template-parts/popups/cookies.js\";\nimport ScrollMagic from \"scrollmagic\";\nimport DisableScroll from \"./js/lib/disable-scroll\";\n\n// Ajax requests\nwindow.ajaxReq = function ajaxReq() {\n\tif (window.XMLHttpRequest) {\n\t\treturn new XMLHttpRequest(); // eslint-disable-line\n\t} else if (window.ActiveXObject) {\n\t\treturn new ActiveXObject(\"Microsoft.XMLHTTP\"); // eslint-disable-line\n\t} else {\n\t\tconsole.log(\"Browser does not support XMLHTTP.\");\n\t\treturn false;\n\t}\n};\n\n// Load objects\ndocument.addEventListener(\"DOMContentLoaded\", function (event) {\n\t// Load JS scripts\n\twindow.loadJS = function loadJS(file, callback) {\n\t\t// DOM: Create the script element\n\t\tvar jsElm = document.createElement(\"script\");\n\t\t// set the type attribute\n\t\tjsElm.type = \"application/javascript\";\n\t\t// make the script element load file\n\t\tjsElm.src = file;\n\t\t// add a callback\n\t\tjsElm.addEventListener(\"load\", callback);\n\t\t// finally insert the element to the body element in order to load the script\n\t\tdocument.body.appendChild(jsElm);\n\t};\n\n\t// Load CSS styles\n\twindow.loadCSS = function loadJS(file, callback) {\n\t\t// DOM: Create the script element\n\t\tconst jsElm = document.createElement(\"link\");\n\t\t// set the rel attribute\n\t\tjsElm.rel = \"stylesheet\";\n\t\t// set the media attribute\n\t\tjsElm.media = \"all\";\n\t\t// make the script element load file\n\t\tjsElm.href = file;\n\t\t// add a callback\n\t\tjsElm.addEventListener(\"load\", callback);\n\t\t// finally insert the element to the body element in order to load the script\n\t\tdocument.body.appendChild(jsElm);\n\t};\n\n\t// Header\n\twindow.header = new Header();\n\n\t// BarbaJS\n\twindow.barba = new Barba();\n});\n\nwindow.addEventListener(\"load\", function (event) {\n\twindow.slideDown = function (el) {\n\t\tvar elem = document.getElementById(el);\n\t\telem.style.height = \"100vh\";\n\t};\n\n\twindow.slideUp = function (el) {\n\t\tvar elem = document.getElementById(el);\n\t\telem.style.height = \"0px\";\n\t};\n\n\t// Disable scroll\n\twindow.disableScroll = new DisableScroll();\n\n\t// Modules loader\n\twindow.modulesLoader = new ModulesLoader();\n\twindow.modulesLoader.loadModules();\n\n\t// Cookies banner\n\twindow.cookies = new Cookies();\n\n\t// Animations\n\twindow.animationScenes(new ScrollMagic.Controller());\n});\n"],"names":["module","exports","t","n","r","length","e","enumerable","configurable","writable","Object","defineProperty","key","prototype","assign","arguments","hasOwnProperty","call","apply","this","create","constructor","__proto__","i","setPrototypeOf","getPrototypeOf","o","u","Reflect","construct","sham","Proxy","Date","toString","push","Function","bind","f","Map","indexOf","TypeError","has","get","set","value","s","then","Symbol","iterator","asyncIterator","c","a","h","off","error","warning","info","debug","v","l","getLevel","setLevel","Array","console","warn","log","concat","d","O","m","E","p","g","w","x","b","T","y","P","RegExp","join","delimiter","whitelist","exec","index","slice","name","prefix","optional","repeat","pattern","A","k","substr","decode","decodeURIComponent","split","map","path","params","R","encode","encodeURIComponent","validate","isArray","test","String","replace","sensitive","strict","start","end","endsWith","source","match","regexpToFunction","parse","compile","tokensToFunction","tokensToRegExp","S","container","history","namespace","prevent","wrapper","j","DOMParser","outerHTML","toDocument","parseFromString","toElement","document","createElement","innerHTML","getHtml","documentElement","getWrapper","querySelector","getContainer","removeContainer","body","contains","parentNode","removeChild","addContainer","appendChild","getNamespace","getAttribute","getHref","tagName","toLowerCase","href","resolveUrl","baseVal","Error","getElementsByTagName","insertBefore","firstChild","nextSibling","M","init","ns","scroll","window","scrollX","scrollY","url","from","states","replaceState","change","state","add","size","pushState","update","remove","splice","pop","clear","hasAttribute","Math","abs","L","next","html","Promise","resolve","title","reject","$","_","nextTick","requestAnimationFrame","pathToRegexp","q","location","origin","B","U","port","substring","parseInt","D","hash","query","reduce","F","H","getOrigin","getPort","getPath","parseQuery","clean","I","XMLHttpRequest","onreadystatechange","readyState","DONE","status","responseText","statusText","ontimeout","onerror","open","timeout","setRequestHeader","send","C","N","async","X","logger","all","registered","forEach","Set","ctx","fn","do","catch","help","z","checkHref","some","G","action","request","getRequest","getAction","delete","Q","W","el","J","event","which","metaKey","ctrlKey","shiftKey","altKey","K","target","V","protocol","hostname","Y","Z","tt","nt","Boolean","closest","rt","et","suite","tests","run","checkLink","it","label","captureStackTrace","ReferenceError","ot","page","once","type","position","filter","self","find","reverse","to","keys","sort","priority","leave","enter","current","pow","ut","store","doOnce","data","transition","doPage","sync","message","route","ft","names","byNamespace","Element","matches","msMatchesSelector","webkitMatchesSelector","parentElement","nodeType","st","version","schemaPage","Logger","plugins","hooks","dom","helpers","use","install","transitions","views","schema","requestError","cacheIgnore","prefetchIgnore","preventRunning","logLevel","setAttribute","cache","trigger","destroy","force","go","isRunning","hasSelf","stopPropagation","preventDefault","hasOnce","onRequestError","shouldWait","prefetch","addEventListener","removeEventListener","isCallable","tryToString","$TypeError","argument","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","undefined","charAt","unicode","isPrototypeOf","Prototype","isObject","toObject","toAbsoluteIndex","lengthOfArrayLike","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","callbackfn","callWithSafeIterationClosing","isArrayIteratorMethod","isConstructor","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","result","step","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","includes","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","boundFunction","every","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","array","foo","method","aCallable","IS_RIGHT","memo","left","right","DESCRIPTORS","getOwnPropertyDescriptor","SILENT_ON_NON_WRITABLE_LENGTH_SET","max","fin","arraySlice","floor","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","originalArray","arraySpeciesConstructor","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","object","uncurryThisRaw","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","MATCH","regexp","error1","error2","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","makeBuiltIn","descriptor","getter","setter","defineGlobalProperty","options","simple","global","unsafe","nonConfigurable","nonWritable","defineBuiltIn","src","documentAll","IS_HTMLDDA","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","firefox","UA","classof","process","getBuiltIn","userAgent","Deno","versions","v8","webkit","createNonEnumerableProperty","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","regexpExec","RegExpPrototype","KEY","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","methods","nativeMethod","str","arg2","forceStringMethod","uncurriedNativeMethod","$exec","NATIVE_BIND","FunctionPrototype","$Function","factories","argsLength","args","list","partArgs","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","getMethod","isNullOrUndefined","Iterators","usingIterator","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","captures","namedCaptures","replacement","tailPos","symbols","ch","capture","check","globalThis","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","metadata","facade","STATE","enforce","getterFor","$documentAll","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","string","isRegExp","USE_SYMBOL_AS_UID","$Symbol","kind","innerResult","innerError","IteratorPrototype","setToStringTag","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","values","proto","PrototypeOfArrayIteratorPrototype","arrayIterator","toLength","obj","InternalStateModule","enforceInternalState","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","sign","ceil","trunc","trim","whitespaces","$parseFloat","parseFloat","Infinity","trimmedString","$parseInt","hex","radix","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","symbol","alphabet","chr","getOwnPropertySymbols","activeXDocument","definePropertiesModule","enumBugKeys","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","style","display","contentWindow","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","$getOwnPropertyNames","windowNames","getOwnPropertyNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","input","pref","val","valueOf","getOwnPropertyNamesModule","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","validateArgumentsLength","MSIE","wrap","scheduler","handler","boundArgs","setTimeout","setInterval","TAG","uid","SHARED","mode","copyright","license","toIntegerOrInfinity","requireObjectCoercible","charCodeAt","CONVERT_TO_STRING","pos","first","second","codeAt","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","$RangeError","RangeError","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","baseMinusTMin","base","output","counter","extra","ucs2decode","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","qMinusT","baseMinusT","encoded","labels","count","whitespace","ltrim","rtrim","SymbolPrototype","TO_PRIMITIVE","hint","NATIVE_SYMBOL","keyFor","min","integer","number","isSymbol","ordinaryToPrimitive","exoticToPrim","toPrimitive","id","postfix","random","URL","searchParams","pathname","toJSON","URLSearchParams","username","host","passed","required","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","len","fill","addToUnscopables","$filter","$find","FIND","SKIPS_HOLES","checkCorrectnessOfIteration","iterable","$includes","$indexOf","nativeIndexOf","NEGATIVE_ZERO","searchElement","defineIterator","createIterResultObject","ARRAY_ITERATOR","setInternalState","iterated","Arguments","nativeJoin","ES3_STRINGS","separator","$map","$reduce","CHROME_VERSION","IS_NODE","nativeSlice","HAS_SPECIES_SUPPORT","Constructor","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","itemsLength","items","arrayLength","getSortCompare","setArrayLength","deleteCount","insertCount","actualDeleteCount","actualStart","$Date","thisTimeValue","getTime","now","DatePrototype","INVALID_DATE","TO_STRING","nativeDateToString","NaN","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","offset","prev","stringify","space","inheritIfRequired","thisNumberValue","NUMBER","NativeNumber","NumberPrototype","toNumeric","primValue","toNumber","third","maxCode","digits","NumberWrapper","isNaN","nativeGetOwnPropertyDescriptor","FAILS_ON_PRIMITIVES","$getOwnPropertySymbols","nativeKeys","$toString","getRegExpFlags","nativeToString","NOT_GENERIC","INCORRECT_NAME","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","nativeMatch","maybeCallNative","matcher","rx","res","fullUnicode","matchStr","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","UNSAFE_SUBSTITUTE","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","replacerArgs","$trim","forcedStringTrimMethod","nativeObjectCreate","getOwnPropertyNamesExternal","defineWellKnownSymbol","defineSymbolToPrimitive","HIDDEN","QObject","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","thisSymbolValue","symbolDescriptiveString","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","defineBuiltInAccessor","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","USE_NATIVE_URL","defineBuiltIns","anInstance","arraySort","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","safeGetBuiltIn","nativeFetch","NativeRequest","Headers","RequestPrototype","HeadersPrototype","shift","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","replacements","serialize","URLSearchParamsIterator","entry","URLSearchParamsState","parseObject","bindURL","entryIterator","entryNext","attribute","attributes","updateURL","URLSearchParamsConstructor","URLSearchParamsPrototype","append","getAll","found","callback","headersHas","headersSet","wrapRequestOptions","headers","fetch","RequestConstructor","Request","getState","EOF","arrayFrom","toASCII","URLSearchParamsModule","getInternalURLState","getInternalSearchParamsState","NativeURL","unshift","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","serializeHost","compress","ignore0","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","C0ControlPercentEncodeSet","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","percentEncode","specialSchemes","ftp","file","http","https","ws","wss","isWindowsDriveLetter","normalized","startsWithWindowsDriveLetter","isSingleDot","segment","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","URLState","isBase","baseState","failure","urlString","stateOverride","codePoints","bufferCodePoints","pointer","buffer","seenAt","seenBracket","seenPasswordToken","scheme","password","fragment","cannotBeABaseURL","isSpecial","includesCredentials","codePoint","encodedCodePoints","parseHost","shortenPath","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","parseIPv6","partsLength","numbers","part","ipv4","parts","parseIPv4","cannotHaveUsernamePasswordPort","pathSize","setHref","URLConstructor","getProtocol","setProtocol","getUsername","setUsername","getPassword","setPassword","getHost","setHost","getHostname","setHostname","setPort","getPathname","setPathname","getSearch","setSearch","search","getSearchParams","getHash","setHash","URLPrototype","accessorDescriptor","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","toStringTag","__esModule","default","getSourceTypeFromLocalStorageByUrl","handleReceivedSourceTypeForUrl","localStorage","setItem","JSON","disableLocalStorage","getItem","elements","sources","adjustSize","maxSourceWidth","maxSourceHeight","width","height","collections","sourceSizers","sourceAnimationWrappers","sourceMainWrappers","runActions","handleImageLoad","naturalWidth","naturalHeight","handleVideoLoad","videoWidth","videoHeight","handleNotMetaDatedVideoLoad","handleYoutubeLoad","maxYoutubeDimensions","handleCustomLoad","offsetWidth","offsetHeight","customClasses","className","customAttributes","sourceLoadHandlers","onload","videosPosters","onloadedmetadata","controls","poster","allowFullscreen","sourcesRenderFunctions","core","sourceDisplayFacade","runActionsForSourceTypeAndIndex","displaySourcesWhichShouldBeDisplayed","isUrlYoutubeOne","getTypeFromResponseContentType","getResponseHeader","abort","setUrlToCheck","getSourceType","types","getTypeSetByClientForIndex","retrieveTypeWithXhrForIndex","componentsServices","hideSourceLoaderIfNotYetCollection","sourceWrappersContainer","createElementNS","setAttributeNS","fullscreenToggler","enterFullscreen","isFullscreenOpen","exitFullscreen","onclick","lightboxCloser","closeLightbox","stageIndexes","setSlideNumber","justifyContent","byValue","negative","zero","positive","transform","slideDistance","innerWidth","toUpperCase","eventsDispatcher","globalEventsController","scrollbarRecompensor","sourcePointerProps","isLightboxFadingOut","removeListeners","exitFullscreenOnClose","isPointering","removeRecompense","dispatch","sourceMainWrappersTransformers","classFacade","slideIndexChanger","stageManager","removeFromEachElementClassIfContains","changeTo","updateStageIndexes","jumpTo","slideChangeFacade","listener","changeToPrevious","changeToNext","swipedX","runActionsForEvent","slideSwipingHoverer","screenX","downScreenX","previous","runPositiveSwipedXActions","runNegativeSwipedXActions","runNoSwipeActions","isSourceDownEventTarget","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","windowResizeActioner","attachListeners","ne","innerHeight","marginRight","scrollbarWidth","addRecompense","removeProperty","getPreviousSlideIndex","getNextSlideIndex","sourcesPointerDown","loadOnlyCurrentSource","isSourceInStage","ee","visibility","msOverflowStyle","overflow","te","isInitialized","lightboxOpener","oe","ie","se","ce","ae","fsLightboxInstances","FsLightbox","getElementById","cloneNode","removeAttribute","fsLightbox","createTextNode","head","lightboxUpdater","refreshFsLightbox","cookieParse","cookie","expires","days","setTime","toUTCString","secure","cookies","ready","stack","completed","detachEvent","domready","attachEvent","ScrollMagic","_util","PIN_SPACER_ATTRIBUTE","Controller","_updateTimeout","_refreshTimeout","NAMESPACE","SCROLL_DIRECTION_FORWARD","SCROLL_DIRECTION_REVERSE","SCROLL_DIRECTION_PAUSED","DEFAULT_OPTIONS","CONTROLLER_OPTIONS","defaults","_options","extend","_sceneObjects","_updateScenesOnNextCycle","_scrollPos","_scrollDirection","_isDocument","_viewPortSize","_enabled","getViewportSize","onChange","ri","refreshInterval","Number","scheduleRefresh","refresh","getScrollPos","vertical","scrollTop","scrollLeft","setScrollPos","_setScrollPos","scrollTo","updateScenes","scenesToUpdate","oldScrollPos","deltaScroll","scrollPos","scene","loglevel","debounceUpdate","rAF","resizeEvent","Event","bubbles","cancelable","createEvent","initEvent","dispatchEvent","_log","sortScenes","ScenesArray","scenes","scrollOffset","addScene","newScene","Scene","controller","addTo","on","globalSceneOptions","removeScene","updateScene","immediately","scrollTarget","additionalParameter","elem","param","containerOffset","elementOffset","scrollPosMethod","about","scrollDirection","isDocument","newLoglevel","enabled","newState","resetScenes","clearTimeout","cAF","addOption","defaultValue","extension","oldClass","$super","_durationUpdateMethod","_controller","SCENE_STATE_BEFORE","SCENE_STATE_DURING","SCENE_STATE_AFTER","SCENE_OPTIONS","_state","_progress","_scrollOffset","_triggerPos","optionName","addSceneOption","validateOption","_listeners","fullname","nameparts","eventname","vars","listeners","what","updateTriggerElementPosition","updateScrollOffset","updateDuration","onContainerResize","tmpParent","reset","newProgress","duration","startPos","progress","_pin","updatePinState","doUpdate","oldState","reverseOrForward","eventVars","stateChanged","eventName","_pinOptions","triggerElement","triggerHook","suppressEvents","varname","changeOption","newval","reason","elementPos","telem","controllerInfo","changed","_validate","perc","logMSG","oldval","newVal","shifts","triggerPosition","durationChanged","updatePinDimensions","removePin","forceUnpin","containerInfo","pinTarget","spacer","newCSS","inFlow","top","css","pushFollowers","fixedPos","scrollDistance","round","during","marginCollapse","isMarginCollapseType","relSize","autoFullWidth","updatePinInContainer","updateRelativePinSpacer","onMousewheelOverPin","wheelDelta","detail","setPin","settings","defaultSettings","spacerClass","pushFollowersActivelySet","parentDisplay","boundsParams","pinCSS","sizeCSS","spacerCSS","boxSizing","mozBoxSizing","webkitBoxSizing","addClass","___origStyle","pinInlineCSS","margin","bottom","margins","_cssClasses","_cssClassElems","removeClassToggle","setClassToggle","classes","elems","toggle","removeClass","translate","validationCallback","currentTarget","timeStamp","timestamp","floatval","_getComputedStyle","currentStyle","getComputedStyle","_dimension","outer","includeMargin","_type","DomElement","dimension","marginTop","marginBottom","marginLeft","_camelCase","lastTime","vendors","_requestAnimationFrame","_cancelAnimationFrame","cancelAnimationFrame","currTime","timeToCall","loglevels","time","getHours","getMinutes","getSeconds","getMilliseconds","HTMLElement","SVGElement","nodeName","_get","selector","arr","querySelectorAll","ref","pageYOffset","pageXOffset","relativeToViewport","getBoundingClientRect","rect","classname","option","addIndicators","removeIndicators","setTween","removeTween","setVelocity","removeVelocity","navigator","devicePixelRatio","elements_selector","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_bg_set","data_poster","class_applied","class_loading","class_loaded","class_error","class_entered","class_exited","unobserve_completed","unobserve_entered","cancel_on_exit","callback_enter","callback_exit","callback_applied","callback_loading","callback_loaded","callback_error","callback_finish","callback_cancel","use_native","restore_on_error","CustomEvent","instance","initCustomEvent","llTempImage","_observer","unobserve","loadingCount","toLoadCount","children","IMG","IFRAME","VIDEO","load","OBJECT","nn","tn","llEvLisnrs","en","an","rn","cn","ln","backgroundImage","un","sn","dn","_n","gn","HTMLImageElement","vn","isIntersecting","intersectionRatio","bn","mn","pn","hn","En","_settings","IntersectionObserver","root","rootMargin","_onlineHandler","disconnect","observe","loadAll","restoreAll","resetStatus","lazyLoadOptions","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","definition","hmd","prop","loadJS","LottieAnimations","animatedElementsContainers","getElementsByClassName","loadAnimations","lottie","animatedElementContainer","animationPath","loop","menu","fullsection","animenu","loadAnimation","renderer","autoplay","rendererSettings","scaleMode","goToAndStop","animfullsection","anim","AnimationScenes","animationScenes","scrollMagicController","waitingForAnimation","clientHeight","evt","setProperty","scrollAnimatableProgressCallback","throttle","imgs","replaceSources","removeNoscript","loadImages","images","noscriptContentToReplace","textContent","imgObjects","imgObject","replacedImgObject","replacedNoscriptContent","img","importNode","replaceChild","lazyLoad","LazyLoad","videoPlayButton","videoPlayButtons","lightboxDataAttribute","dataset","fslightbox","onOpen","playWhenReady","play","Pagination","loadMoreButtons","loading","pageNumbers","loadMorePosts","loadMoreButtonsCounter","loadMoreButton","loadMoreButtonNumber","parent","maxPages","titleLength","columns","queryArgs","pageNumber","loadMorePostsButton","ajaxReq","encodeURI","scripts_ajax_variables","ajax_url","nonce","insertAdjacentHTML","lazyLoading","Filters","filtersButtons","filterPosts","removeElementsByClass","filterButton","old_filters","filters","taxonomy","term","postType","pagination","viewAll","maxPosts","taxonomy1","taxonomy2","term1","term2","gridCards","resetPos","ContactForm","firstForm","firstFormPrivacyPolicy","firstFormSendButton","closeNotificationButton","newForm","googleRecaptchaWebKey","script","checked","privacyPolicyCheckboxToogle","preventFormSubmit","submitValidateForm","closeNotificationBanner","disabled","privacyPolicyCheckbox","srcElement","firstName","getElementsByName","lastName","email","privacyPolicy","successMessage","errorMessage","notificationsBanner","notificationMessage","grecaptcha","execute","token","xmlhttp","currentLanguage","current_language","defaultLanguage","default_language","validation","first_name","last_name","privacy_policy","success","form","facts","factsSections","factsSection","factsListItems","item","numbersAnimation","endNumber","randomNumber","acceleration","clearInterval","factsListItemNumber","dataCount","animation","fullScreen","jQueryFullScreen","googleapi","mapContainer","cookiesConsent","googleMapsKey","locationLatitude","lat","locationLongitude","lng","zoom","google","maps","LatLng","mapOptions","zoomControl","mapTypeControl","scaleControl","streetViewControl","rotateControl","fullscreenControl","center","directionsDisplay","DirectionsRenderer","Marker","setMap","isChromium","chrome","winNav","vendorName","vendor","isOpera","isIEedge","jQueryNumbers","ssrDocument","activeElement","blur","childNodes","getDocument","doc","ssrWindow","back","getPropertyValue","Image","screen","matchMedia","win","Dom7","super","makeReactive","arrayFlat","arrayFilter","context","toCreate","tempParent","qsa","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","classNames","hasClass","toggleClass","attr","attrs","attrName","removeAttr","transitionDuration","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","is","parents","handleEvent","events","dom7LiveListeners","proxyListener","dom7Listeners","handlers","dom7proxy","dataIndex","transitionEnd","fireCallBack","outerWidth","includeMargins","styles","outerHeight","box","clientTop","clientLeft","each","text","compareWith","child","previousSibling","eq","returnIndex","els","newChild","tempDiv","prepend","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","foundElements","methodName","support","deviceCached","browser","deleteProps","delay","getWindow","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","node","noExtend","nextSource","keysArray","nextIndex","nextKey","__swiper__","setCSSProperty","varName","varValue","animateCSSModeScroll","swiper","targetPosition","side","startPosition","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","easeProgress","cos","PI","currentPosition","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","calcDevice","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","getBrowser","isSafari","isWebView","calcBrowser","eventsListeners","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","eventsArray","updateSize","$el","clientWidth","isHorizontal","isVertical","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","centeredSlides","cssMode","slideSize","gridEnabled","grid","rows","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","onTranslateToWrapperTransitionEnd","destroyed","transitionEmit","direction","transitionStart","slideTo","initial","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","diff","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","isTouchEvent","button","isTouched","isMoved","noSwipingClass","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","currentPos","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","stopIndex","groupSize","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","running","paused","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","passive","move","cancel","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","points","minRatio","addClasses","resultClasses","suffixes","removeClasses","resizeObserver","createElements","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","wasLocked","lastSlideIndex","lastSlideRightEdge","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","desktop","swiperParams","passedParams","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","slideInView","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","mount","deleteInstance","cleanStyles","newDefaults","installModule","prototypeGroup","protoMethod","observer","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","observeParents","observeSlideChildren","containerParents","createElementIfNotDefined","checkProps","classesToSelector","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","overwriteParams","perspective","overwriteParamsResult","_s","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","allSlides","eventTriggered","triggerEvents","createShadow","shadowClass","$shadowContainer","$shadowEl","cssModeTimeout","renderSlide","addSlidesBefore","addSlidesAfter","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","rtlFactor","sX","sY","pX","pY","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","ignoreWheelEvents","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","releaseScroll","getEl","toggleEl","disabledClass","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","targetEl","clickable","isHidden","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","$dragEl","newSize","newPos","hide","opacity","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","draggable","parallax","setTransform","currentOpacity","currentScale","_swiper","parallaxEl","$parallaxEl","parallaxDuration","maxRatio","containerClass","zoomedSlideClass","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","isScaling","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","onTransitionEnd","zoomIn","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","touchAction","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","slideExist","amount","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","LinearSpline","guess","i1","i3","binarySearch","interpolate","removeSpline","control","spline","inverse","by","_t","controlledTranslate","controlled","setControlledTranslate","getInterpolateFunction","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","click","updateNavigation","hasPagination","hasClickablePagination","initNavEl","wrapperId","addElControls","$containerEl","randomChar","getRandomNumber","live","addElLive","bulletEl","paths","slugify","getPathValues","urlOverride","pathArray","setHistory","currentState","scrollToSlide","setHistoryPopState","hashNavigation","watchState","onHashChange","newHash","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","velocityEvent","distance","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","moveDistance","currentSlideSize","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","fadeEffect","crossFade","tx","ty","slideOpacity","cubeEffect","slideShadows","shadow","shadowOffset","shadowScale","$cubeShadowEl","wrapperRotate","slideAngle","tz","shadowBefore","shadowAfter","shadowAngle","sin","scale1","scale2","zFactor","flipEffect","limitRotation","rotateY","rotateX","zIndex","coverflowEffect","rotate","stretch","depth","modifier","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","isCenteredSlides","custom","getTranslateValue","translateString","rotateString","scaleString","opacityString","shadowOpacity","cardsEffect","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","Slider","sliderGallery","shownext","spaceBetweenMobile","spacebetweenmobile","spaceBetweenDesktop","spacebetweendesktop","ModulesLoader","lottieAnimations","LazyLoading","cta","Cta","contactForm","Facts","FullScreen","Numbers","slider","Barba","initBarba","htmlDocument","barba","beforeLeave","slideDown","beforeEnter","scrollBehavior","scrollIntoView","block","behavior","slideUp","ignoreClasses","lightbox","response","setBodyClasses","setTranslationLinks","mobileMenu","updateCurrentHighlightedMenu","modulesLoader","loadModules","triggerLinkAnchor","fixWysiwyg","ga","fixWpAdminBar","disableScroll","enableScroll","skipClasses","currentBodyClasses","newBodyClasses","splittedNewBodyClasses","bodyClass","linksData","links","li","mobileMenuToogler","htmlString","newEl","anchorIdWithoutHash","alignToTop","wp","existingScript","jQuery","loadWysiwygVideoScripts","loadCSS","adminMenuLinks","adminLink","pageId","chunks","encodedWindowLocationHref","hashtag","getText","STATUS_TRUE","STATUS_FALSE","manager","banner","closeBanner","createDetails","details","closeDetails","keyListener","detailsBackground","deleteCookie","detailsModal","detailsText","createItem","accept","itemLabel","itemChoices","itemAccept","acceptButton","services","detailsAll","acceptAll","detailsItems","service","uri","closeButton","tabIndex","ariaPressed","cookiesCloseButtonText","itemSave","saveButton","save","setManager","requireConsent","bannerWrapper","bannerText","bannerActions","acceptAllButton","detailsButton","rejectButton","denyAll","createBanner","modifyConsent","bannerContent","modifyConfigButton","createModificationBanner","cookieName","STATUS_WAIT","servicesStatus","writeCookie","servicesList","curry","servicesWaiting","register","refuse","deny","consentUI","setUI","launch","addScript","attrVal","configOptions","more","dataLayer","gtag","cookiesPolicyLink","consent","consentManager","googleAnalyticsId","privacyURL","jsElm","rel","media","header","Header","DisableScroll","Cookies"],"sourceRoot":""}