{"version":3,"file":"front.js","sources":["../../node_modules/throttle-debounce/esm/index.js","../../sources/javascripts/utils/extend.js","../../sources/javascripts/front/vendors/modernizr.js","../../node_modules/mdn-polyfills/Element.prototype.matches.js","../../node_modules/mdn-polyfills/Array.prototype.includes.js","../../sources/javascripts/utils/Toggler.js","../../sources/javascripts/front/components/Header/Header.js","../../node_modules/ssr-window/ssr-window.esm.js","../../sources/javascripts/front/components/Header/lifecycle.js","../../node_modules/mdn-polyfills/Object.entries.js","../../node_modules/mdn-polyfills/String.prototype.repeat.js","../../node_modules/mdn-polyfills/CustomEvent.js","../../node_modules/dom7/dom7.esm.js","../../node_modules/swiper/esm/utils/dom.js","../../node_modules/swiper/esm/utils/get-support.js","../../node_modules/swiper/esm/utils/get-device.js","../../node_modules/swiper/esm/utils/get-browser.js","../../node_modules/swiper/esm/utils/utils.js","../../node_modules/swiper/esm/modules/resize/resize.js","../../node_modules/swiper/esm/modules/observer/observer.js","../../node_modules/swiper/esm/components/core/events-emitter.js","../../node_modules/swiper/esm/components/core/update/index.js","../../node_modules/swiper/esm/components/core/update/updateSize.js","../../node_modules/swiper/esm/components/core/update/updateSlides.js","../../node_modules/swiper/esm/components/core/update/updateAutoHeight.js","../../node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","../../node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","../../node_modules/swiper/esm/components/core/update/updateProgress.js","../../node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","../../node_modules/swiper/esm/components/core/update/updateActiveIndex.js","../../node_modules/swiper/esm/components/core/update/updateClickedSlide.js","../../node_modules/swiper/esm/components/core/translate/index.js","../../node_modules/swiper/esm/components/core/translate/getTranslate.js","../../node_modules/swiper/esm/components/core/translate/setTranslate.js","../../node_modules/swiper/esm/components/core/translate/minTranslate.js","../../node_modules/swiper/esm/components/core/translate/maxTranslate.js","../../node_modules/swiper/esm/components/core/translate/translateTo.js","../../node_modules/swiper/esm/components/core/slide/index.js","../../node_modules/swiper/esm/components/core/slide/slideTo.js","../../node_modules/swiper/esm/components/core/slide/slideToLoop.js","../../node_modules/swiper/esm/components/core/slide/slideNext.js","../../node_modules/swiper/esm/components/core/slide/slidePrev.js","../../node_modules/swiper/esm/components/core/slide/slideReset.js","../../node_modules/swiper/esm/components/core/slide/slideToClosest.js","../../node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","../../node_modules/swiper/esm/components/core/loop/index.js","../../node_modules/swiper/esm/components/core/loop/loopCreate.js","../../node_modules/swiper/esm/components/core/loop/loopFix.js","../../node_modules/swiper/esm/components/core/loop/loopDestroy.js","../../node_modules/swiper/esm/components/core/manipulation/index.js","../../node_modules/swiper/esm/components/core/manipulation/appendSlide.js","../../node_modules/swiper/esm/components/core/manipulation/prependSlide.js","../../node_modules/swiper/esm/components/core/manipulation/addSlide.js","../../node_modules/swiper/esm/components/core/manipulation/removeSlide.js","../../node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","../../node_modules/swiper/esm/components/core/events/onTouchStart.js","../../node_modules/swiper/esm/components/core/events/onTouchMove.js","../../node_modules/swiper/esm/components/core/events/onTouchEnd.js","../../node_modules/swiper/esm/components/core/events/onResize.js","../../node_modules/swiper/esm/components/core/events/onClick.js","../../node_modules/swiper/esm/components/core/events/onScroll.js","../../node_modules/swiper/esm/components/core/events/index.js","../../node_modules/swiper/esm/components/core/classes/index.js","../../node_modules/swiper/esm/components/core/classes/addClasses.js","../../node_modules/swiper/esm/components/core/classes/removeClasses.js","../../node_modules/swiper/esm/components/core/check-overflow/index.js","../../node_modules/swiper/esm/components/core/defaults.js","../../node_modules/swiper/esm/components/core/core-class.js","../../node_modules/swiper/esm/components/core/modular.js","../../node_modules/swiper/esm/components/core/transition/index.js","../../node_modules/swiper/esm/components/core/transition/setTransition.js","../../node_modules/swiper/esm/components/core/transition/transitionStart.js","../../node_modules/swiper/esm/components/core/transition/transitionEnd.js","../../node_modules/swiper/esm/components/core/grab-cursor/index.js","../../node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","../../node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","../../node_modules/swiper/esm/components/core/breakpoints/index.js","../../node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","../../node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","../../node_modules/swiper/esm/components/core/images/index.js","../../node_modules/swiper/esm/components/core/images/loadImage.js","../../node_modules/swiper/esm/components/core/images/preloadImages.js","../../node_modules/swiper/esm/components/navigation/navigation.js","../../node_modules/swiper/esm/components/pagination/pagination.js","../../node_modules/swiper/esm/components/a11y/a11y.js","../../node_modules/swiper/esm/components/autoplay/autoplay.js","../../sources/javascripts/utils/clamp.js","../../sources/javascripts/utils/easings.js","../../sources/javascripts/front/components/hero.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/function-bind-native.js","../../node_modules/core-js/internals/function-call.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/function-uncurry-this.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/is-null-or-undefined.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/document-all.js","../../node_modules/core-js/internals/is-callable.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/object-is-prototype-of.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/symbol-constructor-detection.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/is-symbol.js","../../node_modules/core-js/internals/try-to-string.js","../../node_modules/core-js/internals/a-callable.js","../../node_modules/core-js/internals/ordinary-to-primitive.js","../../node_modules/core-js/internals/define-global-property.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has-own-property.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/get-method.js","../../node_modules/core-js/internals/to-property-key.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/v8-prototype-define-bug.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/function-name.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/weak-map-basic-detection.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/make-built-in.js","../../node_modules/core-js/internals/define-built-in.js","../../node_modules/core-js/internals/math-trunc.js","../../node_modules/core-js/internals/to-integer-or-infinity.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/length-of-array-like.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/modules/es.number.is-nan.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/es/number/is-nan.js","../../sources/javascripts/front/components/cardSlider.js","../../sources/javascripts/front/components/notice.js","../../sources/javascripts/front/components/quoteSlider.js","../../sources/javascripts/front/components/ProgressSpy/ProgressSpy.js","../../sources/javascripts/front/components/ProgressSpy/lifecycle.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/internals/iterators-core.js","../../node_modules/core-js/internals/iterators.js","../../node_modules/core-js/internals/correct-prototype-getter.js","../../node_modules/core-js/internals/object-get-prototype-of.js","../../node_modules/core-js/internals/set-to-string-tag.js","../../node_modules/core-js/internals/iterator-create-constructor.js","../../node_modules/core-js/internals/a-possible-prototype.js","../../node_modules/core-js/internals/object-set-prototype-of.js","../../node_modules/core-js/internals/function-uncurry-this-accessor.js","../../node_modules/core-js/internals/iterator-define.js","../../node_modules/core-js/internals/create-iter-result-object.js","../../node_modules/core-js/modules/es.array.iterator.js","../../sources/javascripts/front/cookies/placeholders.js","../../sources/javascripts/front/cookies/ContextualDisplayer.js","../../sources/javascripts/map/icon.js","../../sources/javascripts/front/components/location.js","../../sources/javascripts/front/components/formConditional.js","../../sources/javascripts/front/components/formMore.js","../../sources/javascripts/utils/Component.js","../../sources/javascripts/utils/Collapsible.js","../../sources/javascripts/front/components/Dropdown/Dropdown.js","../../sources/javascripts/front/components/Dropdown/lifecycle.js","../../sources/javascripts/front/components/offers.js"],"sourcesContent":["/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nfunction throttle (delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n}\n\n/* eslint-disable no-undefined */\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\n\nfunction debounce (delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n}\n\nexport { debounce, throttle };\n//# sourceMappingURL=index.js.map\n","/**\n * Merge objects function\n *\n * Credit: https://gomakethings.com/merging-objects-with-vanilla-javascript/\n *\n * Usage: extend(obj1, obj2);\n * Support deep merge: extend(true, obj1, obj2);\n */\n\nexport default function extend() {\n\n // Variables\n let extended = {};\n let deep = false;\n let i = 0;\n\n // Check if a deep merge\n if (typeof (arguments[0]) === 'boolean') {\n deep = arguments[0];\n i++;\n }\n\n // Merge the object into the extended object\n const merge = function (obj) {\n for (let prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n if (deep && Object.prototype.toString.call(obj[prop]) === '[object Object]') {\n // If we're doing a deep merge and the property is an object\n extended[prop] = extend(true, extended[prop], obj[prop]);\n } else {\n // Otherwise, do a regular merge\n extended[prop] = obj[prop];\n }\n }\n }\n };\n\n // Loop through each object and conduct a merge\n for (; i < arguments.length; i++) {\n merge(arguments[i]);\n }\n\n return extended;\n\n};\n","/*! modernizr 3.6.0 (Custom Build) | MIT *\n * https://modernizr.com/download/?-webp-setclasses !*/\n!function (e, n, A) { function o(e, n) { return typeof e === n } function t() { var e, n, A, t, a, i, l; for (var f in r) if (r.hasOwnProperty(f)) { if (e = [], n = r[f], n.name && (e.push(n.name.toLowerCase()), n.options && n.options.aliases && n.options.aliases.length)) for (A = 0; A < n.options.aliases.length; A++)e.push(n.options.aliases[A].toLowerCase()); for (t = o(n.fn, \"function\") ? n.fn() : n.fn, a = 0; a < e.length; a++)i = e[a], l = i.split(\".\"), 1 === l.length ? Modernizr[l[0]] = t : (!Modernizr[l[0]] || Modernizr[l[0]] instanceof Boolean || (Modernizr[l[0]] = new Boolean(Modernizr[l[0]])), Modernizr[l[0]][l[1]] = t), s.push((t ? \"\" : \"no-\") + l.join(\"-\")) } } function a(e) { var n = u.className, A = Modernizr._config.classPrefix || \"\"; if (c && (n = n.baseVal), Modernizr._config.enableJSClass) { var o = new RegExp(\"(^|\\\\s)\" + A + \"no-js(\\\\s|$)\"); n = n.replace(o, \"$1\" + A + \"js$2\") } Modernizr._config.enableClasses && (n += \" \" + A + e.join(\" \" + A), c ? u.className.baseVal = n : u.className = n) } function i(e, n) { if (\"object\" == typeof e) for (var A in e) f(e, A) && i(A, e[A]); else { e = e.toLowerCase(); var o = e.split(\".\"), t = Modernizr[o[0]]; if (2 == o.length && (t = t[o[1]]), \"undefined\" != typeof t) return Modernizr; n = \"function\" == typeof n ? n() : n, 1 == o.length ? Modernizr[o[0]] = n : (!Modernizr[o[0]] || Modernizr[o[0]] instanceof Boolean || (Modernizr[o[0]] = new Boolean(Modernizr[o[0]])), Modernizr[o[0]][o[1]] = n), a([(n && 0 != n ? \"\" : \"no-\") + o.join(\"-\")]), Modernizr._trigger(e, n) } return Modernizr } var s = [], r = [], l = { _version: \"3.6.0\", _config: { classPrefix: \"\", enableClasses: !0, enableJSClass: !0, usePrefixes: !0 }, _q: [], on: function (e, n) { var A = this; setTimeout(function () { n(A[e]) }, 0) }, addTest: function (e, n, A) { r.push({ name: e, fn: n, options: A }) }, addAsyncTest: function (e) { r.push({ name: null, fn: e }) } }, Modernizr = function () { }; Modernizr.prototype = l, Modernizr = new Modernizr; var f, u = n.documentElement, c = \"svg\" === u.nodeName.toLowerCase(); !function () { var e = {}.hasOwnProperty; f = o(e, \"undefined\") || o(e.call, \"undefined\") ? function (e, n) { return n in e && o(e.constructor.prototype[n], \"undefined\") } : function (n, A) { return e.call(n, A) } }(), l._l = {}, l.on = function (e, n) { this._l[e] || (this._l[e] = []), this._l[e].push(n), Modernizr.hasOwnProperty(e) && setTimeout(function () { Modernizr._trigger(e, Modernizr[e]) }, 0) }, l._trigger = function (e, n) { if (this._l[e]) { var A = this._l[e]; setTimeout(function () { var e, o; for (e = 0; e < A.length; e++)(o = A[e])(n) }, 0), delete this._l[e] } }, Modernizr._q.push(function () { l.addTest = i }), Modernizr.addAsyncTest(function () { function e(e, n, A) { function o(n) { var o = n && \"load\" === n.type ? 1 == t.width : !1, a = \"webp\" === e; i(e, a && o ? new Boolean(o) : o), A && A(n) } var t = new Image; t.onerror = o, t.onload = o, t.src = n } var n = [{ uri: \"data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAwA0JaQAA3AA/vuUAAA=\", name: \"webp\" }, { uri: \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\", name: \"webp.alpha\" }, { uri: \"data:image/webp;base64,UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA\", name: \"webp.animation\" }, { uri: \"data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAAAAAAfQ//73v/+BiOh/AAA=\", name: \"webp.lossless\" }], A = n.shift(); e(A.name, A.uri, function (A) { if (A && \"load\" === A.type) for (var o = 0; o < n.length; o++)e(n[o].name, n[o].uri) }) }), t(), a(s), delete l.addTest, delete l.addAsyncTest; for (var p = 0; p < Modernizr._q.length; p++)Modernizr._q[p](); e.Modernizr = Modernizr }(window, document);\n","Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector);\n","Array.prototype.includes||(Array.prototype.includes=function(r){if(null==this)throw new TypeError(\"Array.prototype.includes called on null or undefined\");var e=Object(this),n=parseInt(e.length,10)||0;if(0===n)return!1;var t,o,i=parseInt(arguments[1],10)||0;for(0<=i?t=i:(t=n+i)<0&&(t=0);t { },\n afterOpen: () => { },\n beforeClose: () => { },\n afterClose: () => { },\n beforeAttach: () => { },\n afterAttach: () => { },\n beforeDetach: () => { },\n afterDetach: () => { },\n },\n }, settings || {});\n\n // Colection of items arranged like [content to toggle, togglers]\n _.items = [];\n // Detect non native togglers for adding a11y features\n _.nonNativeTogglers = [];\n // Current ID of open content\n _.currentId = null;\n // Global status, enabled : toggling is activated, disabled : toggling is deactivated\n _.status = 'disabled';\n\n // Parse received elements\n for (let i = 0; i < elements.length; i++) {\n const item = {\n content: elements[i][0],\n togglers: elements[i][1],\n nonNativeTogglers: [],\n };\n\n for (let j = 0; j < item.togglers.length; j++) {\n if (!item.togglers[j].matches('button, [href], [tabindex]:not([tabindex=\"-1\"])')) {\n _.nonNativeTogglers.push(item.togglers[j]);\n }\n }\n\n // Add it a custom id if they don't have one\n // https://gist.github.com/gordonbrander/2230317\n // In addition we always prefix the custom ID by the character i to avoid querySelector\n // issues, see : https://stackoverflow.com/questions/37270787/uncaught-syntaxerror-failed-to-execute-queryselector-on-document\n const id = item.content.hasAttribute('id') ? item.content.getAttribute('id') : `i${Math.random().toString(36).substr(2, 9)}`;\n\n item.content.setAttribute('id', id);\n item.id = id;\n\n _.items.push(item);\n }\n\n _.handleTogglerClick = _.handleTogglerClick.bind(_);\n _.handleNonNativeTogglersKeyup = _.handleNonNativeTogglersKeyup.bind(_);\n _.handleNonNativeTogglersKeydown = _.handleNonNativeTogglersKeydown.bind(_);\n _.handleOutsideClick = _.handleOutsideClick.bind(_);\n _.handleEscKey = _.handleEscKey.bind(_);\n }\n\n // Activate toggling\n attach() {\n const _ = this;\n\n _.settings.callbacks.beforeAttach(_);\n\n for (let i = 0; i < _.items.length; i++) {\n _.items[i].content.setAttribute('aria-hidden', true);\n for (let j = 0; j < _.items[i].togglers.length; j++) {\n _.items[i].togglers[j].setAttribute('aria-controls', _.items[i].id);\n _.items[i].togglers[j].setAttribute('aria-expanded', false);\n _.items[i].togglers[j].addEventListener('click', _.handleTogglerClick);\n }\n }\n\n if (_.nonNativeTogglers) {\n for (let i = 0; i < _.nonNativeTogglers.length; i++) {\n _.nonNativeTogglers[i].setAttribute('tabindex', '0');\n _.nonNativeTogglers[i].addEventListener('keyup', _.handleNonNativeTogglersKeyup);\n }\n\n document.addEventListener('keydown', _.handleNonNativeTogglersKeydown);\n }\n\n if (_.settings.outsideClose) {\n document.addEventListener('click', _.handleOutsideClick);\n }\n\n if (_.settings.escClose) {\n document.addEventListener('keyup', _.handleEscKey);\n }\n\n _.status = 'enabled';\n\n _.settings.callbacks.afterAttach(_);\n }\n\n // Deactivate toggling\n detach() {\n const _ = this;\n\n _.settings.callbacks.beforeDetach(_);\n\n for (let i = 0; i < _.items.length; i++) {\n _.items[i].content.removeAttribute('aria-hidden');\n for (let j = 0; j < _.items[i].togglers.length; j++) {\n _.items[i].togglers[j].removeAttribute('aria-controls');\n _.items[i].togglers[j].removeAttribute('aria-expanded');\n _.items[i].togglers[j].removeEventListener('click', _.handleTogglerClick);\n }\n }\n\n if (_.nonNativeTogglers) {\n for (let i = 0; i < _.nonNativeTogglers.length; i++) {\n _.nonNativeTogglers[i].removeAttribute('tabindex');\n _.nonNativeTogglers[i].removeEventListener('keyup', _.handleNonNativeTogglersKeyup);\n }\n\n document.removeEventListener('keydown', _.handleNonNativeTogglersKeydown);\n }\n\n if (_.settings.outsideClose) {\n document.removeEventListener('click', _.handleOutsideClick);\n }\n\n if (_.settings.escClose) {\n document.removeEventListener('keyup', _.handleEscKey);\n }\n\n _.status = 'disabled';\n\n _.settings.callbacks.afterDetach(_);\n }\n\n // Open or close\n toggle(id) {\n const _ = this;\n\n if (document.querySelector(`#${id}`).getAttribute('aria-hidden') === 'true') {\n _.open(id);\n } else {\n _.close(id);\n }\n }\n\n // Open content\n open(id) {\n const _ = this;\n\n if (_.settings.oneAtATime && _.currentId) {\n _.close(_.currentId);\n }\n\n const content = document.querySelector(`#${id}`);\n const togglers = document.querySelectorAll(`[aria-controls=\"${id}\"]`);\n\n _.settings.callbacks.beforeOpen(content, togglers);\n\n for (let i = 0; i < togglers.length; i++) {\n togglers[i].setAttribute('aria-expanded', true);\n }\n content.setAttribute('aria-hidden', false);\n\n _.currentId = id;\n\n _.settings.callbacks.afterOpen(content, togglers);\n }\n\n // Close content\n close(id) {\n const _ = this;\n\n const content = document.querySelector(`#${id}`);\n const togglers = document.querySelectorAll(`[aria-controls=\"${id}\"]`);\n\n _.settings.callbacks.beforeClose(content, togglers);\n\n for (let i = 0; i < togglers.length; i++) {\n togglers[i].setAttribute('aria-expanded', false);\n }\n content.setAttribute('aria-hidden', true);\n\n _.currentId = null;\n\n _.settings.callbacks.afterClose(content, togglers);\n }\n\n // Click on toggler\n handleTogglerClick(e) {\n const _ = this;\n\n e.preventDefault();\n\n _.toggle(e.currentTarget.getAttribute('aria-controls'));\n }\n\n // Prevent space key to scroll the page if we are on a non native toggler\n handleNonNativeTogglersKeydown(e) {\n const _ = this;\n\n if (_.nonNativeTogglers.includes(e.target) && e.which === 32) {\n e.preventDefault();\n }\n }\n\n // Toggle from a non native toggler\n handleNonNativeTogglersKeyup(e) {\n const _ = this;\n\n if (e.which === 32 || e.which === 13) {\n e.preventDefault();\n _.toggle(e.target.getAttribute('aria-controls'));\n }\n }\n\n // Close when clicking outside of current element\n handleOutsideClick(e) {\n const _ = this;\n\n if (!_.currentId) return;\n\n let currentItem;\n\n for (let i = 0; i < _.items.length; i++) {\n if (_.items[i].id === _.currentId) {\n currentItem = _.items[i];\n }\n }\n\n let clickOnContent = false;\n if (!currentItem.content.contains(e.target)) {\n clickOnContent = true;\n }\n\n let clickOnToggler = false;\n for (let i = 0; i < currentItem.togglers.length; i++) {\n if (!currentItem.togglers[i].contains(e.target)) {\n clickOnToggler = true;\n }\n }\n\n if (!clickOnContent && !clickOnToggler) {\n _.close(_.currentId);\n }\n }\n\n // Close when escape key is pressed\n handleEscKey(e) {\n const _ = this;\n\n if (_.currentId && e.which === 27) {\n _.close(_.currentId);\n }\n }\n}\n","import { throttle } from 'throttle-debounce';\nimport Toggler from '../../../utils/Toggler';\n\nexport default class Header {\n constructor(root) {\n const _ = this;\n\n // Elements\n _.$root = root;\n _.$burger = _.$root.querySelectorAll('.js-header-burger');\n _.$navigation = _.$root.querySelector('.js-header-nav');\n _.$navItems = _.$root.querySelectorAll('.js-header-nav-item');\n _.$submenuRoots = _.$root.querySelectorAll('.js-header-submenu-root');\n _.$subrubrics = _.$root.querySelectorAll('.js-header-subrubric');\n\n // States\n _.mode = 'small';\n _.height = _.$root.offsetHeight;\n _.lastScrollTop = window.pageYOffset;\n _.isHidden = false;\n\n // Throttled functions\n _.throttledWatchScroll = throttle(250, _.watchScroll.bind(_));\n _.throttledWatchResize = throttle(250, _.watchResize.bind(_));\n\n // Bound functions\n _.handleSubmenuOutsideClick = _.handleSubmenuOutsideClick.bind(_);\n\n // Togglers syndication\n _.togglers = {\n nav: null,\n submenus: null,\n subrubrics: null,\n search: null,\n };\n\n // Nav toggler\n _.togglers.nav = new Toggler([[_.$navigation, _.$burger]], {\n escClose: true,\n callbacks: {\n beforeOpen: () => {\n // Prevent search and nav to be open at the same time\n if (_.togglers.search.currentId) {\n _.togglers.search.close(_.togglers.search.currentId);\n }\n },\n afterOpen: () => {\n document.body.classList.add('nav-is-open');\n },\n afterClose: () => {\n document.body.classList.remove('nav-is-open');\n\n // Ensure submenus or subrubrics are also closed\n if (_.togglers.submenus.currentId) {\n _.togglers.submenus.close(_.togglers.submenus.currentId);\n }\n\n if (_.togglers.subrubrics.currentId) {\n _.togglers.subrubrics.close(_.togglers.subrubrics.currentId);\n }\n },\n },\n });\n\n // Submenus toggler\n const submenuTogglerItems = [];\n\n for (let i = 0; i < _.$submenuRoots.length; i++) {\n submenuTogglerItems.push([\n _.$submenuRoots[i].querySelector('.js-header-submenu-menu'),\n _.$submenuRoots[i].querySelectorAll('.js-header-submenu-parent'),\n ]);\n }\n\n _.togglers.submenus = new Toggler(submenuTogglerItems, {\n oneAtATime: true,\n callbacks: {\n beforeOpen: ($content, $togglers) => {\n // Hide other menu items when opening a submenu on mobile\n if (_.mode === 'small') {\n for (let i = 0; i < _.$navItems.length; i++) {\n if (!_.$navItems[i].contains($togglers[0])) {\n _.$navItems[i].classList.add('is-hidden');\n }\n }\n }\n },\n afterOpen: () => {\n document.body.classList.add('submenu-is-open');\n },\n afterClose: () => {\n // Reset visibility of other menu items when opening a submenu on mobile\n if (_.mode === 'small') {\n for (let i = 0; i < _.$navItems.length; i++) {\n _.$navItems[i].classList.remove('is-hidden');\n }\n }\n\n document.body.classList.remove('submenu-is-open');\n },\n },\n });\n\n // Subrubrics toggler\n const subrubricTogglerItems = [];\n for (let i = 0; i < _.$subrubrics.length; i++) {\n subrubricTogglerItems.push([\n _.$subrubrics[i].querySelector('.js-header-subrubric-content'),\n _.$subrubrics[i].querySelectorAll('.js-header-subrubric-toggler'),\n ]);\n }\n\n _.togglers.subrubrics = new Toggler(subrubricTogglerItems, {});\n\n // Search toggler\n _.togglers.search = new Toggler([[_.$root.querySelector('.js-header-search'), _.$root.querySelectorAll('.js-header-search-toggler')]], {\n escClose: true,\n callbacks: {\n beforeOpen: () => {\n // Prevent search and nav to be open at the same time\n if (_.togglers.nav.currentId) {\n _.togglers.nav.close(_.togglers.nav.currentId);\n }\n },\n afterOpen: () => {\n document.body.classList.add('search-is-open');\n _.$root.querySelector('.js-header-search-input').focus();\n },\n afterClose: () => {\n document.body.classList.remove('search-is-open');\n },\n },\n });\n }\n\n mount() {\n const _ = this;\n\n _.togglers.nav.attach();\n _.togglers.submenus.attach();\n _.togglers.subrubrics.attach();\n _.togglers.search.attach();\n\n _.watchResize();\n\n window.addEventListener('resize', _.throttledWatchResize);\n window.addEventListener('scroll', _.throttledWatchScroll);\n document.addEventListener('click', _.handleSubmenuOutsideClick);\n }\n\n dismount() {\n const _ = this;\n\n _.togglers.nav.detach();\n _.togglers.submenus.detach();\n _.togglers.subrubrics.detach();\n _.togglers.search.detach();\n\n window.removeEventListener('scroll', _.throttledWatchScroll);\n window.removeEventListener('resize', _.throttledWatchResize);\n document.remove('click', _.handleSubmenuOutsideClick);\n }\n\n watchResize() {\n const _ = this;\n\n _.height = _.$root.offsetHeight;\n\n // Enable subrubrics toggler only on small resolutions\n if (window.matchMedia('(max-width: 39.999em)').matches) {\n if (_.togglers.subrubrics.status === 'disabled') {\n _.togglers.subrubrics.attach();\n }\n } else if (_.togglers.subrubrics.status === 'enabled') {\n _.togglers.subrubrics.detach();\n }\n\n // Handle navigation differences between small and large resolutions\n if (window.matchMedia('(max-width: 77.499em)').matches) {\n if (_.mode !== 'small') {\n document.body.classList.remove('submenu-is-open');\n document.body.classList.remove('nav-is-open');\n\n if (_.togglers.submenus.currentId) {\n _.togglers.submenus.close(_.togglers.submenus.currentId);\n }\n\n _.mode = 'small';\n }\n\n if (_.togglers.nav.status === 'disabled') {\n _.togglers.nav.attach();\n }\n } else {\n if (_.mode !== 'large') {\n document.body.classList.remove('submenu-is-open');\n document.body.classList.remove('nav-is-open');\n\n if (_.togglers.submenus.currentId) {\n _.togglers.submenus.close(_.togglers.submenus.currentId);\n }\n\n _.mode = 'large';\n }\n\n if (_.togglers.nav.status === 'enabled') {\n _.togglers.nav.detach();\n }\n }\n }\n\n watchScroll() {\n const _ = this;\n const newScrollTop = window.pageYOffset;\n\n if (newScrollTop < _.lastScrollTop && _.isHidden) {\n _.slideDown();\n }\n\n if (newScrollTop > _.height) {\n _.$root.classList.add('is-floating');\n } else {\n _.$root.classList.remove('is-floating');\n }\n\n if (\n (\n newScrollTop > _.height\n || (\n document.body.classList.contains('header-theme-light')\n && newScrollTop > 50\n )\n )\n && newScrollTop > _.lastScrollTop\n && !_.togglers.nav.currentId\n && !_.togglers.submenus.currentId\n && !_.isHidden\n ) {\n _.slideUp();\n }\n\n _.lastScrollTop = newScrollTop;\n }\n\n slideDown() {\n const _ = this;\n\n _.$root.classList.remove('slide-up');\n _.$root.classList.add('slide-down');\n\n document.body.classList.add('header-is-fixed');\n document.body.classList.add('header-is-displayed');\n document.body.classList.remove('header-is-hidden');\n\n _.isHidden = false;\n }\n\n slideUp() {\n const _ = this;\n\n _.$root.classList.remove('slide-down');\n _.$root.classList.add('slide-up');\n\n document.body.classList.add('header-is-hidden');\n document.body.classList.remove('header-is-displayed');\n\n _.isHidden = true;\n }\n\n // Close submenus when clicking outside of header on large resolutions.\n handleSubmenuOutsideClick(e) {\n const _ = this;\n const toggler = _.togglers.submenus;\n\n if (_.mode === 'large' && toggler.currentId && !_.$root.contains(e.target)) {\n toggler.close(toggler.currentId);\n }\n }\n}\n","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","import Header from './Header';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $header = document.querySelector('.js-header');\n\n if ($header) {\n const header = new Header($header);\n header.mount();\n }\n});\n","\"function\"!=typeof Object.entries&&(Object.entries=function(e){for(var t=Object.keys(e),n=t.length,r=new Array(n);n--;)r[n]=[t[n],e[t[n]]];return r});\n","String.prototype.repeat||(String.prototype.repeat=function(t){if(null==this)throw new TypeError(\"can't convert \"+this+\" to object\");var r=\"\"+this;if((t=+t)!=t&&(t=0),t<0)throw new RangeError(\"repeat count must be non-negative\");if(t==1/0)throw new RangeError(\"repeat count must be less than infinity\");if(t=Math.floor(t),0==r.length||0==t)return\"\";if(r.length*t>=1<<28)throw new RangeError(\"repeat count must not overflow maximum string size\");for(var e=\"\";1==(1&t)&&(e+=r),0!=(t>>>=1);)r+=r;return e});\n","!function(){function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}\"function\"!=typeof window.CustomEvent&&(t.prototype=window.Event.prototype,window.CustomEvent=t)}();\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, 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 var uniqueArray = [];\n\n for (var 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, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var 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 var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 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 (var 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 (var 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 (var 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 (var 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 (var 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 var 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 var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var 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 (var i = 0; i < this.length; i += 1) {\n var 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 var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _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 (var 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 var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var 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 (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var 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 (var 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 (var 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() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var 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 var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var 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 var 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 var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: 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 var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\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 (var k = handlers.length - 1; k >= 0; k -= 1) {\n var 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() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\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() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var 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 var 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 var 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 var _styles = this.styles();\n\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 var 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 var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.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 var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var 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 (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var 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 var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var 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 (var _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(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var 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 (var 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 (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var 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 var child = this[0];\n var 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 var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var 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 (var 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 var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var 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 var before = $(selector);\n\n for (var 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 (var 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 var after = $(selector);\n\n for (var 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 (var 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 var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _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 var 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 var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _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 var parents = []; // eslint-disable-line\n\n for (var 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 var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _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 var 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 var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var 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 (var 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() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var 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 (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var 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\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var 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 var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var 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() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var 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() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var 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\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var 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 easingProgress: function 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 stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (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: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var 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(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (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 var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var 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 if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var 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 var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var 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.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar 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';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\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';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var 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(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var 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 bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\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 swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n 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 swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (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 emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $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 extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var 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 var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var 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 });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var 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 var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\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 var newSlidesGrid;\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 var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= 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 var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (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 var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\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 || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var newHeight = 0;\n var 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 var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[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(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var 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 var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var 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\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var 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 extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\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 var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var 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 var 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 var 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}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var 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 var 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 var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: 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 '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var 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';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var 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 var newProgress;\n var 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}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var 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 var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var 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 var 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 var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var 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 var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\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 var 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 var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n 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\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var 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, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\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 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\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 var 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 var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var 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 var currentSnap = swiper.snapGrid[snapIndex];\n var 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 var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _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 '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var 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(function () {\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(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.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 var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var 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 (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var 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\n var _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 var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var 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 && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var 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 && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var 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 var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _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 (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.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 var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var 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 && swiper.support.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 var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var 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 var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $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 var 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 var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass;\n var 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 var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var 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 extend(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 var 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 var 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 '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n var 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 var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var 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 extend(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 var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var 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) {\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 var 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 var disableParentSwiper = true;\n var 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 + Math.pow(-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 - Math.pow(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.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\n var 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 var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\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(function () {\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 var 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 (params.freeMode) {\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.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\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.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\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.freeModeMomentumBounce) {\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.freeModeSticky) {\n var nextSlide;\n\n for (var 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 swiper.once('transitionEnd', function () {\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.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var 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.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _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 var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var 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 var 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 var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // 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 var 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 var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var 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';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\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 var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (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 var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\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 // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // 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 slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\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: false,\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 watchSlidesVisibility: 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 // 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-container-',\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};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\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 var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var 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\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\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)) return;\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 }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // 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(function (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 extend(swiper, {\n enabled: swiper.params.enabled,\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\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 var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return 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 }); // Install Modules\n\n swiper.useModules();\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 var _proto = Swiper.prototype;\n\n _proto.enable = function enable() {\n var 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 _proto.disable = function disable() {\n var 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 _proto.setProgress = function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n };\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var 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 (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // 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 var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\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 _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var 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(function (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 _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (swiper.params.wrapperClass || '').trim().split(' ').join('.');\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $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 _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var 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 _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\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(function (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 Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var 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('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var 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('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill && breakpointParams.slidesPerColumnFill === 'column' || !breakpointParams.slidesPerColumnFill && params.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(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 { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\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 loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var 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 var 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 (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var 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}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $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 destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\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 click: function click(swiper, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$prevEl;\n var 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 var 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 swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var 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 var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var 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 $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var 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 - params.dynamicMainBullets) {\n for (var _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 $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var 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 var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var 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 swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var 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 swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\n el: 'swiper-pagination'\n });\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $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);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\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 var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$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 var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n },\n makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\n var params = swiper.params.a11y;\n var $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 swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.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 swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.addElRole($(swiper.slides), params.slideRole);\n var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n swiper.a11y.addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $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 swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove();\n var $nextEl;\n var $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', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var 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(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var 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 swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","export default function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n","// https://github.com/ai/easings.net/blob/master/src/easings/easingsFunctions.ts\n\n/* eslint-disable */\nconst pow = Math.pow;\nconst sqrt = Math.sqrt;\nconst sin = Math.sin;\nconst cos = Math.cos;\nconst PI = Math.PI;\nconst c1 = 1.70158;\nconst c2 = c1 * 1.525;\nconst c3 = c1 + 1;\nconst c4 = (2 * PI) / 3;\nconst c5 = (2 * PI) / 4.5;\n\nfunction bounceOut(x) {\n const n1 = 7.5625;\n const d1 = 2.75;\n\n if (x < 1 / d1) {\n return n1 * x * x;\n } else if (x < 2 / d1) {\n return n1 * (x -= 1.5 / d1) * x + 0.75;\n } else if (x < 2.5 / d1) {\n return n1 * (x -= 2.25 / d1) * x + 0.9375;\n } else {\n return n1 * (x -= 2.625 / d1) * x + 0.984375;\n }\n}\n\nconst easingsFunctions = {\n easeInQuad(x) {\n return x * x;\n },\n easeOutQuad(x) {\n return 1 - (1 - x) * (1 - x);\n },\n easeInOutQuad(x) {\n return x < 0.5 ? 2 * x * x : 1 - pow(-2 * x + 2, 2) / 2;\n },\n easeInCubic(x) {\n return x * x * x;\n },\n easeOutCubic(x) {\n return 1 - pow(1 - x, 3);\n },\n easeInOutCubic(x) {\n return x < 0.5 ? 4 * x * x * x : 1 - pow(-2 * x + 2, 3) / 2;\n },\n easeInQuart(x) {\n return x * x * x * x;\n },\n easeOutQuart(x) {\n return 1 - pow(1 - x, 4);\n },\n easeInOutQuart(x) {\n return x < 0.5 ? 8 * x * x * x * x : 1 - pow(-2 * x + 2, 4) / 2;\n },\n easeInQuint(x) {\n return x * x * x * x * x;\n },\n easeOutQuint(x) {\n return 1 - pow(1 - x, 5);\n },\n easeInOutQuint(x) {\n return x < 0.5 ? 16 * x * x * x * x * x : 1 - pow(-2 * x + 2, 5) / 2;\n },\n easeInSine(x) {\n return 1 - cos((x * PI) / 2);\n },\n easeOutSine(x) {\n return sin((x * PI) / 2);\n },\n easeInOutSine(x) {\n return -(cos(PI * x) - 1) / 2;\n },\n easeInExpo(x) {\n return x === 0 ? 0 : pow(2, 10 * x - 10);\n },\n easeOutExpo(x) {\n return x === 1 ? 1 : 1 - pow(2, -10 * x);\n },\n easeInOutExpo(x) {\n return x === 0\n ? 0\n : x === 1\n ? 1\n : x < 0.5\n ? pow(2, 20 * x - 10) / 2\n : (2 - pow(2, -20 * x + 10)) / 2;\n },\n easeInCirc(x) {\n return 1 - sqrt(1 - pow(x, 2));\n },\n easeOutCirc(x) {\n return sqrt(1 - pow(x - 1, 2));\n },\n easeInOutCirc(x) {\n return x < 0.5\n ? (1 - sqrt(1 - pow(2 * x, 2))) / 2\n : (sqrt(1 - pow(-2 * x + 2, 2)) + 1) / 2;\n },\n easeInBack(x) {\n return c3 * x * x * x - c1 * x * x;\n },\n easeOutBack(x) {\n return 1 + c3 * pow(x - 1, 3) + c1 * pow(x - 1, 2);\n },\n easeInOutBack(x) {\n return x < 0.5\n ? (pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2)) / 2\n : (pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2;\n },\n easeInElastic(x) {\n return x === 0\n ? 0\n : x === 1\n ? 1\n : -pow(2, 10 * x - 10) * sin((x * 10 - 10.75) * c4);\n },\n easeOutElastic(x) {\n return x === 0\n ? 0\n : x === 1\n ? 1\n : pow(2, -10 * x) * sin((x * 10 - 0.75) * c4) + 1;\n },\n easeInOutElastic(x) {\n return x === 0\n ? 0\n : x === 1\n ? 1\n : x < 0.5\n ? -(pow(2, 20 * x - 10) * sin((20 * x - 11.125) * c5)) / 2\n : (pow(2, -20 * x + 10) * sin((20 * x - 11.125) * c5)) / 2 + 1;\n },\n easeInBounce(x) {\n return 1 - bounceOut(1 - x);\n },\n easeOutBounce: bounceOut,\n easeInOutBounce(x) {\n return x < 0.5\n ? (1 - bounceOut(1 - 2 * x)) / 2\n : (1 + bounceOut(2 * x - 1)) / 2;\n },\n};\n/* eslint-enable */\n\nexport default easingsFunctions;\n","import 'mdn-polyfills/Object.entries'; // For Swiper : https://github.com/nolimits4web/swiper/pull/4238\nimport 'mdn-polyfills/String.prototype.repeat'; // For A11Y\nimport 'mdn-polyfills/CustomEvent'; // For Custom effect's DOM7 usage\nimport Swiper, { A11y, Autoplay, Pagination } from 'swiper';\nimport clamp from '../../utils/clamp';\nimport easingsFunctions from '../../utils/easings';\n\nSwiper.use([A11y, Autoplay, Pagination]);\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $sliders = document.querySelectorAll('.js-hero');\n\n // CSS, animations and transitions, related variables\n const slideDuration = 7500; // ms\n const transitionDuration = 1000; // ms\n const { easeInSine } = easingsFunctions;\n const pictureScale = { from: 1, to: 1.1 };\n\n /**\n * Base of custom effect\n * Inspired from FadeEffect : https://github.com/nolimits4web/swiper/blob/master/src/components/effect-fade/effect-fade.js\n */\n const customEffect = {\n setTranslate(swiper) {\n const { slides } = swiper;\n\n for (let i = 0; i < slides.length; i += 1) {\n // eq is a DOM7 (Swiper's dependency) function\n const $slideEl = swiper.slides.eq(i);\n const offset = $slideEl[0].swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n // transform is a DOM7 (Swiper's dependency) function\n $slideEl.transform(`translate3d(${tx}px, ${ty}px, 0px)`);\n }\n },\n setTransition(swiper, duration) {\n const { $wrapperEl } = swiper;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n setTimeout(() => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n for (let i = 0; i < triggerEvents.length; i += 1) {\n // trigger is a DOM7 (Swiper's dependency) function\n $wrapperEl.trigger(triggerEvents[i]);\n }\n }, duration);\n }\n },\n };\n\n // Loop on sliders\n for (let i = 0; i < $sliders.length; i++) {\n const $slider = $sliders[i];\n const $details = $slider.querySelector('.js-hero-details');\n const $detailsContent = $slider.querySelector('.js-hero-details-content');\n let heroSlider;\n\n if ($slider.querySelectorAll('.swiper-slide').length > 1) {\n let firstSlideDone = false;\n\n // Custom transition\n let lastSlideStart = null;\n\n const animateTransition = (swiper) => {\n const newSlideStart = Date.now();\n const x = clamp((newSlideStart - lastSlideStart) / slideDuration, 0, 1);\n const scale = pictureScale.from + (easeInSine(x) * (pictureScale.to - pictureScale.from));\n\n const animateDetails = () => {\n $detailsContent.classList.remove('is-out');\n $detailsContent.innerHTML = swiper.slides[swiper.activeIndex].querySelector('.js-hero-slide-details').innerHTML;\n $detailsContent.classList.add('is-in');\n\n const focusableElements = $detailsContent.querySelectorAll('[tabindex=\"-1\"]');\n for (let j = 0; j < focusableElements.length; j += 1) {\n focusableElements[j].removeAttribute('tabindex');\n }\n };\n\n lastSlideStart = newSlideStart;\n\n if (typeof swiper.previousIndex !== 'undefined') {\n const $previousSlide = swiper.slides[swiper.previousIndex];\n const $picture = $previousSlide.querySelector('.c-hero__picture');\n\n $previousSlide.classList.add('is-out');\n $picture.style.animation = 'none';\n $picture.style.transform = `scale(${scale})`;\n $detailsContent.classList.add('is-out');\n\n setTimeout(animateDetails, transitionDuration / 2);\n } else {\n animateDetails();\n }\n };\n\n // Progress bar\n const $progressElement = document.createElement('div');\n let rafID = null;\n let progressStart = null;\n $progressElement.classList.add('c-hero__progress-bar');\n\n const updateProgressBar = () => {\n if (heroSlider.autoplay.running && !heroSlider.autoplay.paused) {\n const delta = Date.now() - progressStart;\n\n if (delta >= transitionDuration) {\n const scaleX = Math.max(1 - ((delta - transitionDuration) / (slideDuration - transitionDuration)), 0);\n $progressElement.style.transform = `scale(${scaleX}, 1)`;\n } else if (delta >= (transitionDuration / 2)) {\n const scaleY = clamp((delta - (transitionDuration / 2)) / (transitionDuration / 2), 0, 1);\n $progressElement.style.transform = `scale(1, ${easeInSine(scaleY)})`;\n } else {\n $progressElement.style.transform = 'scale(0, 0)';\n }\n }\n\n rafID = requestAnimationFrame(updateProgressBar);\n };\n\n const startProgressBar = () => {\n cancelAnimationFrame(rafID);\n progressStart = Date.now();\n rafID = requestAnimationFrame(updateProgressBar);\n };\n\n // Init slider\n heroSlider = new Swiper($slider.querySelector('.swiper-container'), {\n a11y: {\n paginationBulletMessage: 'Atteindre la slide {{index}}',\n },\n autoplay: {\n delay: slideDuration,\n disableOnInteraction: false,\n waitForTransition: false,\n },\n effect: 'custom',\n pagination: {\n el: $slider.querySelector('.swiper-pagination'),\n type: 'bullets',\n clickable: true,\n },\n speed: transitionDuration,\n virtualTranslate: true, // Required for custom effect\n watchSlidesProgress: true, // Required for custom effect\n\n // See : https://github.com/nolimits4web/swiper/issues/3752\n shortSwipes: false,\n longSwipesRatio: 0.1,\n longSwipesMs: 100,\n\n on: {\n beforeInit: (swiper) => {\n // There is no way to track everytime the autoplay timeout is cleared/setted.\n // So we override the function.\n const originalRun = swiper.autoplay.run;\n swiper.autoplay.run = () => {\n startProgressBar();\n originalRun();\n };\n },\n init: (swiper) => {\n $details.appendChild($progressElement);\n swiper.slides[swiper.activeIndex].classList.add('swiper-slide-first-run');\n animateTransition(swiper);\n },\n setTranslate(swiper) {\n if (swiper.params.effect !== 'custom') return;\n customEffect.setTranslate(swiper);\n },\n setTransition(swiper, duration) {\n if (swiper.params.effect !== 'custom') return;\n customEffect.setTransition(swiper, duration);\n },\n slideChangeTransitionStart: (swiper) => {\n if (!firstSlideDone) {\n swiper.slides[swiper.previousIndex].classList.remove('swiper-slide-first-run');\n firstSlideDone = true;\n }\n animateTransition(swiper);\n },\n slideChangeTransitionEnd: (swiper) => {\n const $previousSlide = swiper.slides[swiper.previousIndex];\n const $picture = $previousSlide.querySelector('.c-hero__picture');\n\n $previousSlide.classList.remove('is-out');\n $picture.style.animation = '';\n $picture.style.transform = '';\n },\n // Custom looping\n // As there is no way to prevent creation of duplicate slides with loop parameter.\n touchEnd: (swiper) => {\n if (swiper.activeIndex === 0 && swiper.swipeDirection === 'prev') {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n if (swiper.activeIndex === swiper.slides.length - 1 && swiper.swipeDirection === 'next') {\n swiper.slideTo(0);\n }\n },\n },\n });\n } else {\n const $slide = $slider.querySelector('.swiper-slide');\n\n $slider.classList.add('no-slider');\n $slide.classList.add('swiper-slide-active');\n $detailsContent.innerHTML = $slide.querySelector('.js-hero-slide-details').innerHTML;\n }\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; })() || this || Function('return this')();\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\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 fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var 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","// 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 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","// 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 documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var $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 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","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 uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\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 // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\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","/* 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 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 $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var 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 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","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.31.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\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 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","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 global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","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 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 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 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 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 DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var 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 isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var 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 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","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 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 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 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","module.exports = {};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var 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 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 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 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","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 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 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 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","// 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 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 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 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 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","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","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 global = require('../internals/global');\n\nmodule.exports = global;\n","require('../../modules/es.number.is-nan');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isNaN;\n","import 'mdn-polyfills/Object.entries'; // For Swiper : https://github.com/nolimits4web/swiper/pull/4238\nimport 'mdn-polyfills/String.prototype.repeat'; // For A11Y\nimport 'core-js/features/number/is-nan'; // For Navigation\nimport Swiper, { A11y, Navigation } from 'swiper';\n\nSwiper.use([A11y, Navigation]);\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $sliders = document.querySelectorAll('.js-card-slider');\n\n for (let i = 0; i < $sliders.length; i++) {\n const $slider = $sliders[i];\n const $slides = $slider.querySelectorAll('.swiper-slide');\n\n if ($slides.length > 1) {\n const updateVisibleSlides = (swiper, count) => {\n count = Math.max(count, 1);\n\n for(let i = 0; i < swiper.slides.length; i++) {\n const $slide = swiper.slides[i];\n if (i >= swiper.activeIndex && i <= (swiper.activeIndex + count - 1)) {\n $slide.classList.remove('is-faded');\n } else {\n $slide.classList.add('is-faded');\n }\n };\n };\n\n let sliderWidth = $slider.offsetWidth;\n let sliderGap = $slider.dataset.cardSliderGap ? parseInt($slider.dataset.cardSliderGap, 10): 60;\n let slideWidth = $slides[0].offsetWidth;\n let visibleSlidesCount = (sliderWidth - sliderGap) / (slideWidth + sliderGap);\n\n const slider = new Swiper($slider.querySelector('.swiper-container'), {\n a11y: {\n prevSlideMessage: 'Précédent',\n nextSlideMessage: 'Suivant',\n },\n navigation: {\n nextEl: $slider.querySelector('.swiper-button-next'),\n prevEl: $slider.querySelector('.swiper-button-prev'),\n },\n slidesPerView: 'auto',\n spaceBetween: 10,\n breakpoints: {\n 510: {\n spaceBetween: 20,\n },\n 768: {\n spaceBetween: sliderGap,\n },\n },\n });\n\n slider.on('slideChangeTransitionStart', (swiper) => {\n updateVisibleSlides(slider, visibleSlidesCount);\n });\n\n slider.on('resize', (swiper) => {\n sliderWidth = $slider.offsetWidth;\n sliderGap = swiper.params.spaceBetween;\n slideWidth = $slides[0].offsetWidth;\n visibleSlidesCount = (sliderWidth - sliderGap) / (slideWidth + sliderGap);\n updateVisibleSlides(swiper, visibleSlidesCount);\n });\n\n updateVisibleSlides(slider, visibleSlidesCount);\n } else {\n $slider.classList.add('no-slider');\n }\n }\n});\n","document.addEventListener(\"DOMContentLoaded\", () => {\n // Fonction pour retirer la classe active des éléments\n function removeActiveClassFromElements(elements) {\n elements.forEach((element) => {\n element.classList.remove(\"active\");\n });\n }\n\n // Fonction pour mettre à jour le texte du bouton\n function updateButtonText(btn, index, isActive) {\n if (isActive) {\n btn.innerHTML = \"Masquer la réponse\";\n } else {\n btn.innerHTML = originalButtonTexts[index];\n }\n }\n\n // Variables pour les éléments de la première partie\n const noticeComponents = document.querySelectorAll(\".js-notice\");\n const noticeButtons = document.querySelectorAll(\".js-notice-button\");\n const noticeResponses = document.querySelectorAll(\".js-notice-response\");\n const noticeResponsesContainer = document.querySelectorAll(\".js-notice-response-container\");\n const originalButtonTexts = Array.from(noticeButtons).map(\n (btn) => btn.innerHTML\n );\n\n // Gestion des clics sur les boutons de la première partie\n noticeButtons.forEach((btn, index) => {\n btn.addEventListener(\"click\", () => {\n const isActive = btn.classList.contains(\"active\");\n\n // Retirer la classe active de tous les éléments\n removeActiveClassFromElements(noticeResponses);\n removeActiveClassFromElements(noticeResponsesContainer);\n removeActiveClassFromElements(noticeButtons);\n removeActiveClassFromElements(noticeComponents);\n noticeResponses.forEach((container) => {\n container.style.maxHeight = null;\n })\n\n if (!isActive) {\n noticeResponsesContainer[index].classList.add(\"active\");\n noticeResponses[index].style.maxHeight =\n noticeResponses[index].scrollHeight + \"px\";\n btn.setAttribute(\"aria-expanded\", \"true\");\n btn.classList.add(\"active\");\n noticeResponses[index].classList.remove(\"hide\");\n setTimeout(() => {\n noticeResponses[index].classList.add(\"active\");\n }, 200);\n } else {\n noticeResponsesContainer[index].classList.remove(\"active\");\n noticeResponses[index].style.maxHeight = null;\n btn.setAttribute(\"aria-expanded\", \"false\");\n btn.classList.remove(\"active\");\n setTimeout(() => {\n noticeResponses[index].classList.add(\"hide\");\n }, 200);\n }\n\n // Mettre à jour le texte du bouton\n updateButtonText(btn, index, !isActive);\n });\n });\n\n // Variables pour les éléments de la seconde partie\n const noticeSecondButton = document.querySelector(\n \".js-notices-second-button\"\n );\n\n if (noticeSecondButton) {\n const noticeSecondContainer = document.querySelector(\".js-notices-second\");\n\n // Gestion des clics sur le bouton de la seconde partie\n noticeSecondButton.addEventListener(\"click\", () => {\n noticeSecondButton.classList.toggle(\"active\");\n const isActive = noticeSecondButton.classList.contains(\"active\");\n\n if (isActive) {\n noticeSecondContainer.style.maxHeight =\n noticeSecondContainer.scrollHeight + \"100%\";\n noticeSecondContainer.setAttribute(\"aria-expanded\", \"true\");\n noticeSecondContainer.classList.add(\"active\");\n noticeSecondContainer.classList.remove(\"hide\");\n noticeSecondButton.innerHTML = \"Voir moins d'avis\";\n noticeSecondContainer.classList.add(\"active\");\n } else {\n noticeSecondContainer.classList.remove(\"active\");\n noticeSecondContainer.style.maxHeight = null;\n noticeSecondContainer.setAttribute(\"aria-expanded\", \"false\");\n noticeSecondContainer.classList.remove(\"active\");\n noticeSecondButton.innerHTML = \"Voir plus d'avis\";\n noticeSecondContainer.classList.add(\"hide\");\n }\n });\n }\n});\n","import 'mdn-polyfills/Object.entries'; // For Swiper : https://github.com/nolimits4web/swiper/pull/4238\nimport 'mdn-polyfills/String.prototype.repeat'; // For A11Y\nimport 'core-js/features/number/is-nan'; // For Navigation\nimport Swiper, { A11y, Navigation } from 'swiper';\n\nSwiper.use([A11y, Navigation]);\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $sliders = document.querySelectorAll('.js-quote-slider');\n\n for (let i = 0; i < $sliders.length; i++) {\n const $slider = $sliders[i];\n\n if ($slider.querySelectorAll('.swiper-slide').length > 1) {\n const slider = new Swiper($slider.querySelector('.swiper-container'), {\n a11y: {\n prevSlideMessage: 'Précédent',\n nextSlideMessage: 'Suivant',\n },\n loop: true,\n navigation: {\n nextEl: $slider.querySelector('.swiper-button-next'),\n prevEl: $slider.querySelector('.swiper-button-prev'),\n },\n });\n } else {\n $slider.classList.add('no-slider');\n }\n }\n});\n","import { throttle } from 'throttle-debounce';\n\nexport default class ProgressSpy {\n constructor($element, start, end) {\n const _ = this;\n\n // Elements\n _.$element = $element;\n\n // Variables\n _.start = start;\n _.end = end;\n\n // Throttled functions\n _.throttledWatchScroll = throttle(50, _.watchScroll.bind(_));\n }\n\n mount() {\n const _ = this;\n\n _.updateProgression();\n window.addEventListener('scroll', _.throttledWatchScroll);\n }\n\n dismount() {\n const _ = this;\n\n window.removeEventListener('scroll', _.throttledWatchScroll);\n }\n\n watchScroll() {\n const _ = this;\n\n _.updateProgression();\n }\n\n updateProgression() {\n const _ = this;\n const percent = Math.round((window.pageYOffset * 100) / (_.end - window.innerHeight));\n\n _.$element.style.width = `${Math.max(0, Math.min(percent, 100))}%`;\n }\n\n update(start, end) {\n const _ = this;\n\n _.start = start;\n _.end = end;\n\n _.updateProgression();\n }\n}\n","import { throttle } from 'throttle-debounce';\nimport ProgressSpy from './ProgressSpy';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $element = document.querySelector('.js-progress-spy');\n const $start = document.querySelector('.js-progress-spy-start');\n const $end = document.querySelector('.js-progress-spy-end');\n\n function getLimits() {\n const startRect = $start.getBoundingClientRect().top;\n const endRect = $end.getBoundingClientRect();\n\n return {\n start: startRect.top,\n end: endRect.top + endRect.height + window.pageYOffset,\n };\n }\n\n if ($element && $start && $end) {\n const initalLimits = getLimits();\n\n const spy = new ProgressSpy($element, initalLimits.start, initalLimits.end);\n spy.mount();\n\n document.body.classList.add('use-progress-spy');\n\n window.addEventListener('resize', throttle(250, () => {\n const limits = getLimits();\n spy.update(limits.start, limits.end);\n }));\n }\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","/* 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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\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 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","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 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","'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","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\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 setter = uncurryThisAccessor(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","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\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","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\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","export function createPlaceholder(label, key) {\n const $placeholder = document.createElement('div');\n $placeholder.classList.add('u-cookies-placeholder');\n\n $placeholder.innerHTML = `\n \n

Si le module d'acceptation des cookies ne s'affiche pas au clic sur ce bouton, cela peut venir de votre bloqueur de publicité.

\n `;\n\n return $placeholder;\n}\n\nexport function createYoutubePlaceholder() {\n return createPlaceholder('YouTube', 'youtube');\n}\n\nexport function createGMapPlaceholder() {\n return createPlaceholder('Google Maps', 'gmaps');\n}\n","import { createPlaceholder, createYoutubePlaceholder, createGMapPlaceholder } from './placeholders';\n\nexport default class ContextualDisplayer {\n constructor($holder, service, callback = null) {\n this.$holder = $holder;\n this.service = service;\n this.callback = callback;\n\n this.displayPlaceholder();\n\n document.addEventListener('cookies:updateChoice', e => {\n if (e.detail[this.service]) {\n this.displayElement();\n } else {\n this.displayPlaceholder();\n }\n });\n }\n\n displayPlaceholder() {\n let html = '';\n switch (this.service) {\n case 'youtube':\n html = createYoutubePlaceholder().outerHTML;\n break;\n case 'gmaps':\n html = createGMapPlaceholder().outerHTML;\n break;\n default:\n html = createPlaceholder(this.service, this.service).outerHTML;\n break;\n }\n\n this.$holder.innerHTML = html;\n\n if (this.callback) {\n this.callback(false);\n }\n }\n\n displayElement() {\n let html = '';\n\n switch (this.service) {\n case 'youtube':\n html = `\n ${this.$holder.getAttribute('data-src')}\n `;\n break;\n case 'gmaps':\n html = '';\n this.$holder.setAttribute('hidden', '');\n break;\n default:\n break;\n }\n\n this.$holder.innerHTML = html;\n\n if (this.callback) {\n this.callback(true);\n }\n }\n}\n\n(window._axcb = window._axcb || []).push(sdk => {\n sdk.on('cookies:complete', choices => {\n const event = new CustomEvent('cookies:updateChoice', {\n detail: choices,\n });\n document.dispatchEvent(event);\n });\n});\n\nconst $holders = document.querySelectorAll('.js-axeptio-contextual-holder');\n\nif ($holders.length) {\n $holders.forEach($holder => {\n const displayer = new ContextualDisplayer($holder, $holder.getAttribute('data-service'));\n });\n}\n\nconst $openers = document.querySelectorAll('.js-axeptio-opener');\n\nif ($openers.length) {\n $openers.forEach($opener => {\n $opener.addEventListener('click', e => {\n openAxeptioCookies();\n });\n });\n}\n","/* global google */\n\nfunction getIcon(style = 'light') {\n return {\n url: `/app/themes/default/assets/images/front/map/pins.svg#${style}`,\n scaledSize: new google.maps.Size(37, 37),\n anchor: new google.maps.Point(18.5, 18.5),\n labelOrigin: new google.maps.Point(18.5, 18.5),\n };\n}\n\nexport default getIcon;\n","import 'core-js/modules/es.array.iterator'; // Make Gmaps Loader work on IE11\nimport { Loader } from '@googlemaps/js-api-loader/dist/index.umd';\nimport ContextualDisplayer from '../cookies/ContextualDisplayer';\nimport getIcon from '../../map/icon';\n\n/* global google, GMAP_API_KEY */\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $locations = document.querySelectorAll('.js-location');\n const $locationHolders = document.querySelectorAll('.js-map-placeholder');\n function initLocation() {\n $locations.forEach($location => {\n const $map = $location.querySelector('.js-location-map');\n const coords = {\n lat: parseFloat($location.getAttribute('data-lat')),\n lng: parseFloat($location.getAttribute('data-lng')),\n };\n\n const map = new google.maps.Map($map, {\n center: coords,\n zoom: 10,\n disableDefaultUI: true,\n zoomControl: true,\n });\n\n const marker = new google.maps.Marker({\n position: coords,\n map,\n icon: getIcon('primary'),\n });\n\n if ($location.getAttribute('data-url')) {\n marker.addListener('click', () => {\n window.open($location.getAttribute('data-url'), '_blank');\n });\n }\n });\n }\n\n if ($locationHolders.length) {\n (window._axcb = window._axcb || []).push(sdk => {\n sdk.on('cookies:complete', choices => {\n const event = new CustomEvent('cookies:updateChoice', {\n detail: choices,\n });\n document.dispatchEvent(event);\n if (event.detail.gmaps && !window?.google?.maps) {\n new Loader({\n apiKey: GMAP_API_KEY || '',\n version: 'weekly',\n })\n .load()\n .then(initLocation)\n .catch(() => {});\n }\n });\n });\n\n $locationHolders.forEach($locationHolder => {\n const displayer = new ContextualDisplayer($locationHolder, 'gmaps', consent => {\n if (consent) {\n $locationHolder.setAttribute('hidden', '');\n } else {\n $locationHolder.removeAttribute('hidden');\n }\n });\n });\n }\n});\n","document.addEventListener('DOMContentLoaded', () => {\n const $formConditionals = document.querySelectorAll('.js-form-conditional');\n\n const update = ($element, state) => {\n if (state) {\n $element.removeAttribute('hidden');\n } else {\n $element.setAttribute('hidden', '');\n }\n }\n\n for (let i = 0; i < $formConditionals.length; i++) {\n const $formConditional = $formConditionals[i];\n const condition = JSON.parse($formConditional.dataset.formConditionalTrigger);\n\n const $trigger = document.getElementById(condition.id);\n\n if ($trigger) {\n $trigger.addEventListener('change', (e) => {\n update($formConditional, e.target.checked);\n });\n\n update($formConditional, $trigger.checked);\n }\n };\n\n});\n","document.addEventListener('DOMContentLoaded', () => {\n const $formMores = document.querySelectorAll('.js-form-more');\n\n for (let i = 0; i < $formMores.length; i++) {\n const $formMore = $formMores[i];\n const $fields = $formMore.querySelectorAll('.js-form-more-field');\n const $control = $formMore.querySelector('.js-form-more-control');\n const $button = $control.querySelector('.js-form-more-button');\n const fields = [];\n let currentIndex = null;\n\n for (let j = 0; j < $fields.length; j++) {\n const $field = $fields[j];\n const $input = $field.querySelector('input, select, textarea');\n const field = {\n element: $field,\n input: $input,\n hidden: $field.hidden,\n required: $input.required,\n };\n\n if (field.hidden === true && currentIndex === null) {\n currentIndex = j;\n }\n\n if (field.hidden === true && field.required) {\n input.removeAttribute('required');\n }\n\n fields.push(field);\n }\n\n $button.addEventListener('click', (e) => {\n const currentField = fields[currentIndex];\n currentField.element.removeAttribute('hidden');\n currentField.hidden = false;\n\n if (currentField.required) {\n currentField.element.setAttribute('required', '');\n }\n\n currentIndex += 1;\n\n if (currentIndex >= fields.length) {\n $control.setAttribute('hidden', '');\n }\n });\n };\n\n});\n","/**\n * Name: Component\n * Description: Base model for all components\n */\n\nexport default class Component {\n static settings = {};\n\n #element;\n #mounted;\n #settings;\n\n #listeners = {};\n\n constructor (element, options = {}) {\n this.#element = element;\n this.#mounted = false;\n this.#settings = {\n ...Component.settings,\n ...options\n };\n }\n\n get element () {\n return this.#element;\n }\n\n get mounted () {\n return this.#mounted;\n }\n\n get settings () {\n return this.#settings;\n }\n\n getNode (parameter) {\n let element = null;\n\n if (parameter instanceof Element) {\n element = parameter;\n } else if (typeof parameter === 'string') {\n const testSelector = this.#element.querySelector(parameter);\n element = testSelector ? testSelector : element;\n }\n\n return element;\n }\n\n fire (type, data) {\n var listeners = this.#listeners[type] || [];\n\n listeners.forEach(function (listener) {\n listener(data);\n });\n }\n\n on (type, handler) {\n if (typeof this.#listeners[type] === 'undefined') {\n this.#listeners[type] = [];\n }\n\n this.#listeners[type].push(handler);\n\n return this;\n }\n\n off (type, handler) {\n var index = this.#listeners[type].indexOf(handler);\n\n if (index > -1) {\n this.#listeners[type].splice(index, 1);\n }\n\n return this;\n }\n\n mount () {\n this.#element.classList.add('is-mounted');\n this.#mounted = true;\n this.fire('mount', this);\n }\n\n unmount () {\n this.#element.classList.remove('is-mounted');\n this.#mounted = false;\n this.fire('unmount', this);\n }\n}\n","import Component from './Component';\n\nexport default class Collapsible extends Component {\n static settings = {\n isPersistent: false,\n hasTransition: false,\n control: '.js-collapse-control',\n target: '.js-collapse-target',\n };\n\n #control;\n #target;\n #isHiding;\n #handleControlClick;\n #handleFocusout;\n #handleKeydown;\n #handleOutsideClick;\n #handleTransitionEnd;\n\n constructor (element, options = {}) {\n super(element, {\n ...Collapsible.settings,\n ...options\n });\n\n this.#isHiding = false;\n\n this.#control = this.getNode(this.settings.control);\n this.#target = this.getNode(this.settings.target);\n\n if (!this.#control) {\n throw new Error(`Collpase error: A control with the '${ this.settings.control }' selector is missing.`);\n }\n\n if (!this.#target) {\n throw new Error(`Collpase error: A target with the '${ this.settings.target }' selector is missing.`);\n }\n\n if (!this.#control.getAttribute('id')) {\n throw new Error(`Collpase error: The control needs an id to work correctly.`, this.#control);\n }\n\n if (!this.#target.getAttribute('id')) {\n throw new Error(`Collpase error: The target needs an id to work correctly.`, this.#target);\n }\n\n this.#handleControlClick = this._handleControlClick.bind(this);\n this.#handleFocusout = this._handleFocusout.bind(this);\n this.#handleKeydown = this._handleKeydown.bind(this);\n this.#handleOutsideClick = this._handleOutsideClick.bind(this);\n this.#handleTransitionEnd = this._handleTransitionEnd.bind(this);\n }\n\n get control () {\n return this.#control;\n }\n\n get target () {\n return this.#target;\n }\n\n get expanded () {\n return this.#control.getAttribute('aria-expanded') === 'true';\n }\n\n set expanded (state) {\n this.#control.setAttribute('aria-expanded', `${state}`);\n }\n\n get isHiding () {\n return this.#isHiding;\n }\n\n _handleControlClick (e) {\n this.toggle();\n }\n\n _handleFocusout (e) {\n if (e.relatedTarget && !this.#target.contains(e.relatedTarget) && !this.#control.contains(e.relatedTarget)) {\n this.close(false);\n }\n }\n\n _handleKeydown (e) {\n // Close on escape\n if (this.expanded && e.keyCode === 27) {\n this.toggle();\n }\n }\n\n _handleOutsideClick (e) {\n if (!this.#target.contains(e.target) && !this.#control.contains(e.target)) {\n this.close(false);\n }\n }\n\n _handleTransitionEnd (e) {\n if (e.target === this.#target) {\n this.#target.removeEventListener('transitionend', this.#handleTransitionEnd);\n this.#target.classList.remove('is-hiding');\n this.#isHiding = false;\n this.close();\n }\n }\n\n open () {\n this.#control.setAttribute('aria-expanded', 'true');\n this.#target.removeAttribute('hidden');\n\n if (!this.settings.isPersistent) {\n document.addEventListener('focusout', this.#handleFocusout);\n document.addEventListener('click', this.#handleOutsideClick);\n }\n\n this.fire('open', this);\n }\n\n close (refocus = true) {\n if (!this.settings.isPersistent) {\n document.removeEventListener('focusout', this.#handleFocusout);\n document.removeEventListener('click', this.#handleOutsideClick);\n }\n\n this.#control.setAttribute('aria-expanded', 'false');\n this.#target.setAttribute('hidden', '');\n this.#target.classList.remove('is-hiding');\n\n if (refocus) {\n this.#control.focus();\n }\n\n this.fire('close', this);\n }\n\n hide () {\n this.#target.classList.add('is-hiding');\n this.#isHiding = true;\n this.#target.addEventListener('transitionend', this.#handleTransitionEnd);\n }\n\n toggle () {\n if (this.settings.hasTransition) {\n this.expanded ? this.hide() : this.open();\n } else {\n this.expanded ? this.close() : this.open();\n }\n }\n\n mount () {\n this.#target.setAttribute('aria-labelledby', this.#control.getAttribute('id'));\n this.#target.setAttribute('tabindex', '-1');\n this.#target.setAttribute('hidden', '');\n this.#control.setAttribute('aria-haspopup', 'true');\n this.#control.setAttribute('aria-expanded', 'false');\n this.#control.setAttribute('aria-controls', this.#target.getAttribute('id'));\n\n this.#control.addEventListener('click', this.#handleControlClick);\n this.#target.addEventListener('keydown', this.#handleKeydown);\n\n super.mount();\n }\n\n unmount () {\n if (this.expanded) {\n this.close(false);\n }\n\n this.#control.removeEventListener('click', this.#handleControlClick);\n this.#target.removeEventListener('keydown', this.#handleKeydown);\n\n this.#control.removeAttribute('aria-haspopup');\n this.#control.removeAttribute('aria-expanded');\n this.#control.removeAttribute('aria-controls');\n this.#target.removeAttribute('aria-labelledby');\n this.#target.removeAttribute('tabindex');\n this.#target.removeAttribute('hidden');\n\n super.unmount();\n }\n}\n","/**\n * Name: Dropdown\n */\n\nimport Collapsible from \"../../../utils/Collapsible\";\n\nexport default class Dropdown extends Collapsible {\n\n static settings = {\n control: '.js-dropdown-control',\n target: '.js-dropdown-menu',\n label: '.js-dropdown-label',\n option: '.js-dropdown-option',\n i18n: {\n label_empty: 'Sélectionnez une ou plusieurs valeurs',\n label_count: '%selected% sur %length% %descriptor%',\n singular: 'sélectionnée',\n plural: 'sélectionnées',\n hideSection: 'Masquer',\n showSection: 'Afficher',\n }\n };\n\n #label;\n #options;\n\n #handleTargetChange\n\n constructor (element, options = {}) {\n super(element, {\n ...Dropdown.settings,\n ...options\n });\n\n this.#label = this.element.querySelector(this.settings.label);\n this.#options = this.target.querySelectorAll(this.settings.option);\n\n this.#handleTargetChange = this._handleTargetChange.bind(this);\n }\n\n get selected () {\n return Array.from(this.#options).filter((element) => { return element.checked });\n }\n\n _handleTargetChange (e) {\n const selected = this.selected;\n let text = this.settings.i18n.label_count;\n\n if (selected.length === 0) {\n text = this.settings.i18n.label_empty;\n } else if (selected.length === 1) {\n text = text.replace('%descriptor%', this.settings.i18n.singular);\n } else {\n text = text.replace('%descriptor%', this.settings.i18n.plural);\n }\n\n text = text.replace('%selected%', selected.length);\n text = text.replace('%length%', this.#options.length);\n\n\n this.#label.innerHTML = text;\n }\n\n open () {\n super.open();\n this.target.focus();\n }\n\n mount () {\n this.target.addEventListener('change', this.#handleTargetChange);\n super.mount();\n this.#handleTargetChange();\n if (this.element.dataset.dropdownLabel) {\n this.target.setAttribute('aria-labelledby', this.element.dataset.dropdownLabel);\n }\n }\n\n unmount () {\n this.target.removeEventListener('change', this.#handleTargetChange);\n super.unmount();\n }\n}\n","import Dropdown from './Dropdown';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $dropdowns = document.querySelectorAll('.js-dropdown');\n\n for(let i = 0; i < $dropdowns.length; i++) {\n const $dropdown = $dropdowns[i];\n const dropdown = new Dropdown($dropdown);\n dropdown.mount();\n }\n});\n","document.addEventListener('DOMContentLoaded', function () {\n const tabs = document.querySelectorAll('.js-offer-tab');\n const offers = document.querySelectorAll('.js-offers-offer');\n const tables = document.querySelectorAll('.js-offers-table');\n const detailsBtn = document.querySelectorAll('.js-offer-detail');\n\n function resetTabs() {\n tabs.forEach(tab => tab.classList.remove('is-active'));\n offers.forEach(offer => offer.classList.remove('is-active'));\n tables.forEach(table => table.classList.remove('is-active'));\n }\n\n function activateTab(index) {\n resetTabs();\n tabs[index].classList.add('is-active');\n offers[index].classList.add('is-active');\n tables[index].classList.add('is-active');\n }\n\n detailsBtn.forEach(btn => {\n btn.addEventListener('click', function (event) {\n event.preventDefault();\n\n setTimeout(() => {\n const targetId = btn.getAttribute('href');\n const targetElement = document.querySelector(targetId);\n\n if (targetElement) {\n targetElement.scrollIntoView({ behavior: 'smooth' });\n }\n }, 200);\n });\n });\n\n tabs.forEach((tab, index) => {\n tab.addEventListener('click', function () {\n activateTab(index);\n tableToggle();\n });\n });\n\n if (tabs.length > 0) {\n activateTab(0);\n }\n});\n"],"names":["throttle","delay","noTrailing","callback","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","clearTimeout","wrapper","_len","arguments","length","arguments_","Array","_key","self","this","elapsed","Date","now","exec","apply","undefined","setTimeout","cancel","extend","extended","deep","i","merge","obj","prop","hasOwnProperty","Object","prototype","toString","call","e","n","A","o","_typeof","a","u","className","Modernizr","_config","classPrefix","c","baseVal","enableJSClass","RegExp","replace","enableClasses","join","f","toLowerCase","split","t","Boolean","_trigger","s","r","l","_version","usePrefixes","_q","on","addTest","push","name","fn","options","addAsyncTest","documentElement","nodeName","constructor","_l","type","width","Image","onerror","onload","src","uri","shift","aliases","p","window","document","Element","matches","msMatchesSelector","webkitMatchesSelector","includes","TypeError","parseInt","Toggler","elements","settings","_classCallCheck","_","oneAtATime","outsideClose","escClose","callbacks","beforeOpen","afterOpen","beforeClose","afterClose","beforeAttach","afterAttach","beforeDetach","afterDetach","items","nonNativeTogglers","currentId","status","item","content","togglers","j","id","hasAttribute","getAttribute","concat","Math","random","substr","setAttribute","handleTogglerClick","bind","handleNonNativeTogglersKeyup","handleNonNativeTogglersKeydown","handleOutsideClick","handleEscKey","_createClass","key","value","addEventListener","removeAttribute","removeEventListener","querySelector","open","close","querySelectorAll","preventDefault","toggle","currentTarget","target","which","currentItem","clickOnContent","contains","clickOnToggler","Header","root","$root","$burger","$navigation","$navItems","$submenuRoots","$subrubrics","mode","height","offsetHeight","lastScrollTop","pageYOffset","isHidden","throttledWatchScroll","watchScroll","throttledWatchResize","watchResize","handleSubmenuOutsideClick","nav","submenus","subrubrics","search","body","classList","add","remove","submenuTogglerItems","$content","$togglers","subrubricTogglerItems","focus","attach","detach","matchMedia","newScrollTop","slideDown","slideUp","toggler","isObject","keys","forEach","$header","mount","entries","String","repeat","RangeError","floor","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","ssrDocument","activeElement","blur","getElementById","initEvent","createElement","children","childNodes","style","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","getComputedStyle","getPropertyValue","screen","requestAnimationFrame","cancelAnimationFrame","getWindow","win","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","_isNativeReflectConstruct","instance","Function","_wrapNativeSuper","_cache","Map","indexOf","has","get","set","Wrapper","create","enumerable","writable","configurable","Dom7","_Array","subClass","superClass","_this","proto","ReferenceError","_assertThisInitialized","defineProperty","arrayFlat","arr","res","el","isArray","arrayFilter","filter","$","selector","context","html","trim","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","support","device","browser","Methods","addClass","classes","classNames","map","_el$classList","removeClass","_len2","_key2","_el$classList2","hasClass","_len4","_key4","toggleClass","_len3","_key3","attr","attrs","attrName","removeAttr","transform","transition","duration","transitionDuration","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","events","_event","dom7LiveListeners","proxyListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","trigger","_len9","_key9","evt","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","text","textContent","compareWith","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","nextTick","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","slice","node","to","noExtend","nextSource","HTMLElement","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","params","createElements","checkProps","auto","element","getSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","ios","android","screenWidth","screenHeight","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isEdge","isSafari","isWebView","test","calcBrowser","methodName","Resize","swiper","resize","createObserver","destroyed","initialized","ResizeObserver","newWidth","newHeight","_ref","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","resizeObserver","destroy","_extends","assign","source","Observer","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","Observer$1","eventsEmitter","priority","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","update","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","Number","isNaN","size","updateSlides","getDirectionLabel","property","marginRight","getDirectionPropertyValue","label","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginBottom","marginTop","slidesPerColumn","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","slideTo","initial","Error","indexAsNumber","isFinite","initialSlide","direction","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","manipulation","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","passive","simulateTouch","updateOnWindowResize","detachEvents","addClasses","prefix","resultClasses","suffixes","autoheight","multirow","containerModifierClass","emitContainerClasses","removeClasses","defaults","url","breakpointsBase","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","_defineProperties","descriptor","prototypes","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","dir","moving","isLocked","cursor","unsetGrabCursor","_swiper$loopedSlides","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","containerEl","currentHeight","innerHeight","points","point","minRatio","sort","b","_points$i","wasLocked","lastSlidePosition","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","moduleParamName","desktop","swiperParams","passedParams","eventName","touchEventsTouch","touchEventsDesktop","clickTimeout","Constructor","protoProps","staticProps","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","deleteInstance","cleanStyles","object","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Swiper$1","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","_swiper$navigation3","click","_swiper$navigation4","targetEl","pagination","clickable","Pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","A11y","getRandomNumber","round","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","keyCode","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","$slideEl","ariaLabelMessage","slideLabelMessage","A11y$1","notificationClass","afterInit","paginationUpdate","Autoplay","$activeSlideEl","timeout","autoplayResult","reverseDirection","stopOnLastSlide","stop","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","Autoplay$1","beforeTransitionStart","sliderFirstMove","touchEnd","clamp","sin","cos","easingsFunctions","$sliders","slideDuration","easeInSine","pictureScale","customEffect","tx","ty","eventTriggered","triggerEvents","_loop","heroSlider","$slider","$details","$detailsContent","firstSlideDone","lastSlideStart","animateTransition","newSlideStart","animateDetails","$previousSlide","$picture","animation","$progressElement","rafID","progressStart","updateProgressBar","delta","beforeInit","originalRun","slideChangeTransitionStart","slideChangeTransitionEnd","$slide","version","check","it","global","globalThis","fails","error","descriptors","functionBindNative","functionCall","NATIVE_BIND","$propertyIsEnumerable","propertyIsEnumerable","V","createPropertyDescriptor","bitmap","FunctionPrototype","uncurryThisWithBind","functionUncurryThis","uncurryThis","stringSlice","$Object","indexedObject","classof","isNullOrUndefined","$TypeError","requireObjectCoercible","toIndexedObject","IndexedObject","documentAll","all","documentAll_1","IS_HTMLDDA","$documentAll","isCallable","argument","getBuiltIn","namespace","objectIsPrototypeOf","isPrototypeOf","engineUserAgent","process","Deno","versions","v8","engineV8Version","$String","symbolConstructorDetection","getOwnPropertySymbols","symbol","Symbol","V8_VERSION","useSymbolAsUid","NATIVE_SYMBOL","iterator","isSymbol","USE_SYMBOL_AS_UID","$Symbol","aCallable","tryToString","defineGlobalProperty","SHARED","sharedStore","exports","store","copyright","license","toObject","hasOwnProperty_1","hasOwn","postfix","uid","WellKnownSymbolsStore","shared","createWellKnownSymbol","withoutSetter","wellKnownSymbol","TO_PRIMITIVE","toPrimitive","input","pref","func","result","exoticToPrim","valueOf","ordinaryToPrimitive","toPropertyKey","EXISTS","documentCreateElement","ie8DomDefine","DESCRIPTORS","$getOwnPropertyDescriptor","O","P","IE8_DOM_DEFINE","propertyIsEnumerableModule","v8PrototypeDefineBug","anObject","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","V8_PROTOTYPE_DEFINE_BUG","Attributes","createNonEnumerableProperty","definePropertyModule","getDescriptor","functionName","PROPER","functionToString","inspectSource","WeakMap","weakMapBasicDetection","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","NATIVE_WEAK_MAP","state","metadata","facade","STATE","internalState","enforce","getterFor","TYPE","CONFIGURABLE_FUNCTION_NAME","require$$0","enforceInternalState","InternalStateModule","getInternalState","CONFIGURABLE_LENGTH","TEMPLATE","makeBuiltIn","getter","setter","arity","defineBuiltIn","simple","unsafe","nonConfigurable","nonWritable","mathTrunc","trunc","toIntegerOrInfinity","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","integer","toAbsoluteIndex","objectKeysInternal","names","enumBugKeys","getOwnPropertyNames","internalObjectKeys","ownKeys","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","copyConstructorProperties","exceptions","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","POLYFILL","NATIVE","string","isForced_1","_export","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","forced","$slides","updateVisibleSlides","count","sliderWidth","sliderGap","dataset","cardSliderGap","slideWidth","visibleSlidesCount","slider","removeActiveClassFromElements","noticeComponents","noticeButtons","noticeResponses","noticeResponsesContainer","originalButtonTexts","from","btn","isActive","container","maxHeight","scrollHeight","updateButtonText","noticeSecondButton","noticeSecondContainer","ProgressSpy","$element","updateProgression","percent","$start","$end","getLimits","startRect","endRect","initalLimits","spy","limits","activeXDocument","objectKeys","defineProperties","Properties","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","JS","domain","display","contentWindow","F","objectCreate","definePropertiesModule","UNSCOPABLES","ArrayPrototype","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","addToUnscopables","iterators","correctPrototypeGetter","ObjectPrototype","objectGetPrototypeOf","CORRECT_PROTOTYPE_GETTER","ITERATOR","BUGGY_SAFARI_ITERATORS","iteratorsCore","TO_STRING_TAG","setToStringTag","TAG","returnThis","objectSetPrototypeOf","CORRECT_SETTER","uncurryThisAccessor","aPossiblePrototype","PROPER_FUNCTION_NAME","FunctionName","IteratorsCore","KEYS","VALUES","ENTRIES","createIterResultObject","done","ARRAY_ITERATOR","setInternalState","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","FORCED","ENUMERABLE_NEXT","Iterators","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","iteratorDefine","iterated","kind","Arguments","createPlaceholder","$placeholder","ContextualDisplayer","$holder","service","displayPlaceholder","displayElement","outerHTML","_axcb","sdk","choices","$holders","$openers","getIcon","scaledSize","google","maps","Size","anchor","Point","labelOrigin","$opener","openAxeptioCookies","$locations","$locationHolders","initLocation","$location","$map","coords","lat","lng","center","zoom","disableDefaultUI","zoomControl","marker","Marker","icon","addListener","_window","gmaps","Loader","apiKey","GMAP_API_KEY","load","then","catch","$locationHolder","consent","$formConditionals","$formConditional","condition","JSON","parse","formConditionalTrigger","$trigger","checked","$formMores","$formMore","$fields","$control","$button","fields","currentIndex","$field","$input","field","hidden","required","currentField","Component","_classPrivateFieldInitSpec","_element","_mounted","_settings","_listeners","_classPrivateFieldSet","_objectSpread","_classPrivateFieldGet","parameter","testSelector","fire","_defineProperty","_control","_target","_isHiding","_handleControlClick","_handleFocusout","_handleKeydown","_handleOutsideClick","_handleTransitionEnd","Collapsible","_Component","_inherits","_super","_createSuper","getNode","control","relatedTarget","expanded","_handleTransitionEnd2","_x","isPersistent","refocus","hasTransition","hide","_get","_label","_options","_handleTargetChange","Dropdown","_Collapsible","option","selected","i18n","label_count","label_empty","singular","plural","dropdownLabel","hideSection","showSection","$dropdowns","$dropdown","tabs","offers","tables","activateTab","tab","offer","table","targetId","targetElement","scrollIntoView","tableToggle"],"mappings":"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"}