{"version":3,"file":"chunks/30.chunk.04e71f32379800d20163.js","mappings":"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","sources":["webpack://SMAesthetics/./node_modules/@mapbox/point-geometry/index.js","webpack://SMAesthetics/./node_modules/eventemitter3/index.js","webpack://SMAesthetics/./node_modules/@googlemaps/js-api-loader/dist/index.esm.js","webpack://SMAesthetics/./node_modules/google-map-react/dist/index.modern.js","webpack://SMAesthetics/./node_modules/google-map-react/node_modules/prop-types/factoryWithThrowingShims.js","webpack://SMAesthetics/./node_modules/google-map-react/node_modules/prop-types/index.js","webpack://SMAesthetics/./node_modules/google-map-react/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://SMAesthetics/./node_modules/react-collapse/lib/Collapse.js","webpack://SMAesthetics/./node_modules/react-collapse/lib/UnmountClosed.js","webpack://SMAesthetics/./node_modules/react-collapse/lib/index.js","webpack://SMAesthetics/./node_modules/swiper/react/utils.js","webpack://SMAesthetics/./node_modules/swiper/react/params-list.js","webpack://SMAesthetics/./node_modules/swiper/react/loop.js","webpack://SMAesthetics/./node_modules/swiper/react/get-children.js","webpack://SMAesthetics/./node_modules/swiper/react/update-swiper.js","webpack://SMAesthetics/./node_modules/swiper/react/use-isomorphic-layout-effect.js","webpack://SMAesthetics/./node_modules/swiper/react/context.js","webpack://SMAesthetics/./node_modules/swiper/react/swiper.js","webpack://SMAesthetics/./node_modules/swiper/react/get-params.js","webpack://SMAesthetics/./node_modules/swiper/react/mount-swiper.js","webpack://SMAesthetics/./node_modules/swiper/react/get-changed-params.js","webpack://SMAesthetics/./node_modules/swiper/react/virtual.js","webpack://SMAesthetics/./node_modules/swiper/react/swiper-slide.js","webpack://SMAesthetics/./node_modules/ssr-window/ssr-window.esm.js","webpack://SMAesthetics/./node_modules/dom7/dom7.esm.js","webpack://SMAesthetics/./node_modules/swiper/shared/dom.js","webpack://SMAesthetics/./node_modules/swiper/shared/utils.js","webpack://SMAesthetics/./node_modules/swiper/shared/get-support.js","webpack://SMAesthetics/./node_modules/swiper/shared/get-device.js","webpack://SMAesthetics/./node_modules/swiper/shared/get-browser.js","webpack://SMAesthetics/./node_modules/swiper/core/events-emitter.js","webpack://SMAesthetics/./node_modules/swiper/core/update/index.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateSize.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateSlides.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateProgress.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://SMAesthetics/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/index.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/getTranslate.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/setTranslate.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/minTranslate.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/maxTranslate.js","webpack://SMAesthetics/./node_modules/swiper/core/translate/translateTo.js","webpack://SMAesthetics/./node_modules/swiper/core/transition/transitionEmit.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/index.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideTo.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideToLoop.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideNext.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slidePrev.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideReset.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideToClosest.js","webpack://SMAesthetics/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://SMAesthetics/./node_modules/swiper/core/loop/index.js","webpack://SMAesthetics/./node_modules/swiper/core/loop/loopCreate.js","webpack://SMAesthetics/./node_modules/swiper/core/loop/loopFix.js","webpack://SMAesthetics/./node_modules/swiper/core/loop/loopDestroy.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onTouchStart.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onTouchMove.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onTouchEnd.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onResize.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onClick.js","webpack://SMAesthetics/./node_modules/swiper/core/events/onScroll.js","webpack://SMAesthetics/./node_modules/swiper/core/events/index.js","webpack://SMAesthetics/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://SMAesthetics/./node_modules/swiper/core/breakpoints/index.js","webpack://SMAesthetics/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://SMAesthetics/./node_modules/swiper/core/classes/index.js","webpack://SMAesthetics/./node_modules/swiper/core/classes/addClasses.js","webpack://SMAesthetics/./node_modules/swiper/core/classes/removeClasses.js","webpack://SMAesthetics/./node_modules/swiper/core/check-overflow/index.js","webpack://SMAesthetics/./node_modules/swiper/core/defaults.js","webpack://SMAesthetics/./node_modules/swiper/core/moduleExtendParams.js","webpack://SMAesthetics/./node_modules/swiper/core/core.js","webpack://SMAesthetics/./node_modules/swiper/core/transition/index.js","webpack://SMAesthetics/./node_modules/swiper/core/transition/setTransition.js","webpack://SMAesthetics/./node_modules/swiper/core/transition/transitionStart.js","webpack://SMAesthetics/./node_modules/swiper/core/transition/transitionEnd.js","webpack://SMAesthetics/./node_modules/swiper/core/grab-cursor/index.js","webpack://SMAesthetics/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://SMAesthetics/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://SMAesthetics/./node_modules/swiper/core/images/index.js","webpack://SMAesthetics/./node_modules/swiper/core/images/loadImage.js","webpack://SMAesthetics/./node_modules/swiper/core/images/preloadImages.js","webpack://SMAesthetics/./node_modules/swiper/core/modules/resize/resize.js","webpack://SMAesthetics/./node_modules/swiper/core/modules/observer/observer.js","webpack://SMAesthetics/./node_modules/swiper/shared/classes-to-selector.js","webpack://SMAesthetics/./node_modules/swiper/modules/pagination/pagination.js","webpack://SMAesthetics/./node_modules/swiper/shared/create-element-if-not-defined.js"],"sourcesContent":["'use strict';\n\nmodule.exports = Point;\n\n/**\n * A standalone point geometry with useful accessor, comparison, and\n * modification methods.\n *\n * @class Point\n * @param {Number} x the x-coordinate. this could be longitude or screen\n * pixels, or any other sort of unit.\n * @param {Number} y the y-coordinate. this could be latitude or screen\n * pixels, or any other sort of unit.\n * @example\n * var point = new Point(-77, 38);\n */\nfunction Point(x, y) {\n this.x = x;\n this.y = y;\n}\n\nPoint.prototype = {\n\n /**\n * Clone this point, returning a new point that can be modified\n * without affecting the old one.\n * @return {Point} the clone\n */\n clone: function() { return new Point(this.x, this.y); },\n\n /**\n * Add this point's x & y coordinates to another point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n add: function(p) { return this.clone()._add(p); },\n\n /**\n * Subtract this point's x & y coordinates to from point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n sub: function(p) { return this.clone()._sub(p); },\n\n /**\n * Multiply this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n multByPoint: function(p) { return this.clone()._multByPoint(p); },\n\n /**\n * Divide this point's x & y coordinates by point,\n * yielding a new point.\n * @param {Point} p the other point\n * @return {Point} output point\n */\n divByPoint: function(p) { return this.clone()._divByPoint(p); },\n\n /**\n * Multiply this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n mult: function(k) { return this.clone()._mult(k); },\n\n /**\n * Divide this point's x & y coordinates by a factor,\n * yielding a new point.\n * @param {Point} k factor\n * @return {Point} output point\n */\n div: function(k) { return this.clone()._div(k); },\n\n /**\n * Rotate this point around the 0, 0 origin by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @return {Point} output point\n */\n rotate: function(a) { return this.clone()._rotate(a); },\n\n /**\n * Rotate this point around p point by an angle a,\n * given in radians\n * @param {Number} a angle to rotate around, in radians\n * @param {Point} p Point to rotate around\n * @return {Point} output point\n */\n rotateAround: function(a,p) { return this.clone()._rotateAround(a,p); },\n\n /**\n * Multiply this point by a 4x1 transformation matrix\n * @param {Array} m transformation matrix\n * @return {Point} output point\n */\n matMult: function(m) { return this.clone()._matMult(m); },\n\n /**\n * Calculate this point but as a unit vector from 0, 0, meaning\n * that the distance from the resulting point to the 0, 0\n * coordinate will be equal to 1 and the angle from the resulting\n * point to the 0, 0 coordinate will be the same as before.\n * @return {Point} unit vector point\n */\n unit: function() { return this.clone()._unit(); },\n\n /**\n * Compute a perpendicular point, where the new y coordinate\n * is the old x coordinate and the new x coordinate is the old y\n * coordinate multiplied by -1\n * @return {Point} perpendicular point\n */\n perp: function() { return this.clone()._perp(); },\n\n /**\n * Return a version of this point with the x & y coordinates\n * rounded to integers.\n * @return {Point} rounded point\n */\n round: function() { return this.clone()._round(); },\n\n /**\n * Return the magitude of this point: this is the Euclidean\n * distance from the 0, 0 coordinate to this point's x and y\n * coordinates.\n * @return {Number} magnitude\n */\n mag: function() {\n return Math.sqrt(this.x * this.x + this.y * this.y);\n },\n\n /**\n * Judge whether this point is equal to another point, returning\n * true or false.\n * @param {Point} other the other point\n * @return {boolean} whether the points are equal\n */\n equals: function(other) {\n return this.x === other.x &&\n this.y === other.y;\n },\n\n /**\n * Calculate the distance from this point to another point\n * @param {Point} p the other point\n * @return {Number} distance\n */\n dist: function(p) {\n return Math.sqrt(this.distSqr(p));\n },\n\n /**\n * Calculate the distance from this point to another point,\n * without the square root step. Useful if you're comparing\n * relative distances.\n * @param {Point} p the other point\n * @return {Number} distance\n */\n distSqr: function(p) {\n var dx = p.x - this.x,\n dy = p.y - this.y;\n return dx * dx + dy * dy;\n },\n\n /**\n * Get the angle from the 0, 0 coordinate to this point, in radians\n * coordinates.\n * @return {Number} angle\n */\n angle: function() {\n return Math.atan2(this.y, this.x);\n },\n\n /**\n * Get the angle from this point to another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleTo: function(b) {\n return Math.atan2(this.y - b.y, this.x - b.x);\n },\n\n /**\n * Get the angle between this point and another point, in radians\n * @param {Point} b the other point\n * @return {Number} angle\n */\n angleWith: function(b) {\n return this.angleWithSep(b.x, b.y);\n },\n\n /*\n * Find the angle of the two vectors, solving the formula for\n * the cross product a x b = |a||b|sin(θ) for θ.\n * @param {Number} x the x-coordinate\n * @param {Number} y the y-coordinate\n * @return {Number} the angle in radians\n */\n angleWithSep: function(x, y) {\n return Math.atan2(\n this.x * y - this.y * x,\n this.x * x + this.y * y);\n },\n\n _matMult: function(m) {\n var x = m[0] * this.x + m[1] * this.y,\n y = m[2] * this.x + m[3] * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _add: function(p) {\n this.x += p.x;\n this.y += p.y;\n return this;\n },\n\n _sub: function(p) {\n this.x -= p.x;\n this.y -= p.y;\n return this;\n },\n\n _mult: function(k) {\n this.x *= k;\n this.y *= k;\n return this;\n },\n\n _div: function(k) {\n this.x /= k;\n this.y /= k;\n return this;\n },\n\n _multByPoint: function(p) {\n this.x *= p.x;\n this.y *= p.y;\n return this;\n },\n\n _divByPoint: function(p) {\n this.x /= p.x;\n this.y /= p.y;\n return this;\n },\n\n _unit: function() {\n this._div(this.mag());\n return this;\n },\n\n _perp: function() {\n var y = this.y;\n this.y = this.x;\n this.x = -y;\n return this;\n },\n\n _rotate: function(angle) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = cos * this.x - sin * this.y,\n y = sin * this.x + cos * this.y;\n this.x = x;\n this.y = y;\n return this;\n },\n\n _rotateAround: function(angle, p) {\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n x = p.x + cos * (this.x - p.x) - sin * (this.y - p.y),\n y = p.y + sin * (this.x - p.x) + cos * (this.y - p.y);\n this.x = x;\n this.y = y;\n return this;\n },\n\n _round: function() {\n this.x = Math.round(this.x);\n this.y = Math.round(this.y);\n return this;\n }\n};\n\n/**\n * Construct a point from an array if necessary, otherwise if the input\n * is already a Point, or an unknown type, return it unchanged\n * @param {Array|Point|*} a any kind of input value\n * @return {Point} constructed point, or passed-through value.\n * @example\n * // this\n * var point = Point.convert([0, 1]);\n * // is equivalent to\n * var point = new Point(0, 1);\n */\nPoint.convert = function (a) {\n if (a instanceof Point) {\n return a;\n }\n if (Array.isArray(a)) {\n return new Point(a[0], a[1]);\n }\n return a;\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","// do not edit .js files directly - edit src/index.jst\n\n\n\nvar fastDeepEqual = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n\n/**\n * Copyright 2019 Google LLC. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at.\n *\n * Http://www.apache.org/licenses/LICENSE-2.0.\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst DEFAULT_ID = \"__googleMapsScriptId\";\n/**\n * The status of the [[Loader]].\n */\nvar LoaderStatus;\n(function (LoaderStatus) {\n LoaderStatus[LoaderStatus[\"INITIALIZED\"] = 0] = \"INITIALIZED\";\n LoaderStatus[LoaderStatus[\"LOADING\"] = 1] = \"LOADING\";\n LoaderStatus[LoaderStatus[\"SUCCESS\"] = 2] = \"SUCCESS\";\n LoaderStatus[LoaderStatus[\"FAILURE\"] = 3] = \"FAILURE\";\n})(LoaderStatus || (LoaderStatus = {}));\n/**\n * [[Loader]] makes it easier to add Google Maps JavaScript API to your application\n * dynamically using\n * [Promises](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).\n * It works by dynamically creating and appending a script node to the the\n * document head and wrapping the callback function so as to return a promise.\n *\n * ```\n * const loader = new Loader({\n * apiKey: \"\",\n * version: \"weekly\",\n * libraries: [\"places\"]\n * });\n *\n * loader.load().then((google) => {\n * const map = new google.maps.Map(...)\n * })\n * ```\n */\nclass Loader {\n /**\n * Creates an instance of Loader using [[LoaderOptions]]. No defaults are set\n * using this library, instead the defaults are set by the Google Maps\n * JavaScript API server.\n *\n * ```\n * const loader = Loader({apiKey, version: 'weekly', libraries: ['places']});\n * ```\n */\n constructor({ apiKey, channel, client, id = DEFAULT_ID, libraries = [], language, region, version, mapIds, nonce, retries = 3, url = \"https://maps.googleapis.com/maps/api/js\", }) {\n this.CALLBACK = \"__googleMapsCallback\";\n this.callbacks = [];\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.version = version;\n this.apiKey = apiKey;\n this.channel = channel;\n this.client = client;\n this.id = id || DEFAULT_ID; // Do not allow empty string\n this.libraries = libraries;\n this.language = language;\n this.region = region;\n this.mapIds = mapIds;\n this.nonce = nonce;\n this.retries = retries;\n this.url = url;\n if (Loader.instance) {\n if (!fastDeepEqual(this.options, Loader.instance.options)) {\n throw new Error(`Loader must not be called again with different options. ${JSON.stringify(this.options)} !== ${JSON.stringify(Loader.instance.options)}`);\n }\n return Loader.instance;\n }\n Loader.instance = this;\n }\n get options() {\n return {\n version: this.version,\n apiKey: this.apiKey,\n channel: this.channel,\n client: this.client,\n id: this.id,\n libraries: this.libraries,\n language: this.language,\n region: this.region,\n mapIds: this.mapIds,\n nonce: this.nonce,\n url: this.url,\n };\n }\n get status() {\n if (this.errors.length) {\n return LoaderStatus.FAILURE;\n }\n if (this.done) {\n return LoaderStatus.SUCCESS;\n }\n if (this.loading) {\n return LoaderStatus.LOADING;\n }\n return LoaderStatus.INITIALIZED;\n }\n get failed() {\n return this.done && !this.loading && this.errors.length >= this.retries + 1;\n }\n /**\n * CreateUrl returns the Google Maps JavaScript API script url given the [[LoaderOptions]].\n *\n * @ignore\n */\n createUrl() {\n let url = this.url;\n url += `?callback=${this.CALLBACK}`;\n if (this.apiKey) {\n url += `&key=${this.apiKey}`;\n }\n if (this.channel) {\n url += `&channel=${this.channel}`;\n }\n if (this.client) {\n url += `&client=${this.client}`;\n }\n if (this.libraries.length > 0) {\n url += `&libraries=${this.libraries.join(\",\")}`;\n }\n if (this.language) {\n url += `&language=${this.language}`;\n }\n if (this.region) {\n url += `®ion=${this.region}`;\n }\n if (this.version) {\n url += `&v=${this.version}`;\n }\n if (this.mapIds) {\n url += `&map_ids=${this.mapIds.join(\",\")}`;\n }\n return url;\n }\n deleteScript() {\n const script = document.getElementById(this.id);\n if (script) {\n script.remove();\n }\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n */\n load() {\n return this.loadPromise();\n }\n /**\n * Load the Google Maps JavaScript API script and return a Promise.\n *\n * @ignore\n */\n loadPromise() {\n return new Promise((resolve, reject) => {\n this.loadCallback((err) => {\n if (!err) {\n resolve(window.google);\n }\n else {\n reject(err.error);\n }\n });\n });\n }\n /**\n * Load the Google Maps JavaScript API script with a callback.\n */\n loadCallback(fn) {\n this.callbacks.push(fn);\n this.execute();\n }\n /**\n * Set the script on document.\n */\n setScript() {\n if (document.getElementById(this.id)) {\n // TODO wrap onerror callback for cases where the script was loaded elsewhere\n this.callback();\n return;\n }\n const url = this.createUrl();\n const script = document.createElement(\"script\");\n script.id = this.id;\n script.type = \"text/javascript\";\n script.src = url;\n script.onerror = this.loadErrorCallback.bind(this);\n script.defer = true;\n script.async = true;\n if (this.nonce) {\n script.nonce = this.nonce;\n }\n document.head.appendChild(script);\n }\n /**\n * Reset the loader state.\n */\n reset() {\n this.deleteScript();\n this.done = false;\n this.loading = false;\n this.errors = [];\n this.onerrorEvent = null;\n }\n resetIfRetryingFailed() {\n if (this.failed) {\n this.reset();\n }\n }\n loadErrorCallback(e) {\n this.errors.push(e);\n if (this.errors.length <= this.retries) {\n const delay = this.errors.length * Math.pow(2, this.errors.length);\n console.log(`Failed to load Google Maps script, retrying in ${delay} ms.`);\n setTimeout(() => {\n this.deleteScript();\n this.setScript();\n }, delay);\n }\n else {\n this.onerrorEvent = e;\n this.callback();\n }\n }\n setCallback() {\n window.__googleMapsCallback = this.callback.bind(this);\n }\n callback() {\n this.done = true;\n this.loading = false;\n this.callbacks.forEach((cb) => {\n cb(this.onerrorEvent);\n });\n this.callbacks = [];\n }\n execute() {\n this.resetIfRetryingFailed();\n if (this.done) {\n this.callback();\n }\n else {\n // short circuit and warn if google.maps is already loaded\n if (window.google && window.google.maps && window.google.maps.version) {\n console.warn(\"Google Maps already loaded outside @googlemaps/js-api-loader.\" +\n \"This may result in undesirable behavior as options and script parameters may not match.\");\n this.callback();\n return;\n }\n if (this.loading) ;\n else {\n this.loading = true;\n this.setCallback();\n this.setScript();\n }\n }\n }\n}\n\nexport { DEFAULT_ID, Loader, LoaderStatus };\n//# sourceMappingURL=index.esm.js.map\n","import e,{Component as t}from\"react\";import o from\"prop-types\";import n from\"react-dom\";import r from\"eventemitter3\";import{Loader as i}from\"@googlemaps/js-api-loader\";import s from\"@mapbox/point-geometry\";function a(){return(a=Object.assign||function(e){for(var t=1;t-1){var n='\"callback\" key in bootstrapURLKeys is not allowed,\\n use onGoogleApiLoaded property instead';throw console.error(n),new Error(n)}if(\"undefined\"==typeof window)throw new Error(\"google map cannot be loaded outside browser env\");var r=e.key,s=function(e,t){if(null==e)return{};var o,n,r={},i=Object.keys(e);for(n=0;n=0||(r[o]=e[o]);return r}(e,[\"key\"]);return w||(w=new i(a({apiKey:r||\"\"},s,{libraries:o}))),L=w.load().then(function(){return b(window.google.maps),window.google.maps}),b(L),L};function k(e,t,o){var n=o-t;return e===o?e:((e-t)%n+n)%n+t}var O=function(){function e(e,t){if(isNaN(e)||isNaN(t))throw new Error(\"Invalid LatLng object: (\"+e+\", \"+t+\")\");this.lat=+e,this.lng=+t}return e.prototype.wrap=function(){return new e(this.lat,k(this.lng,-180,180))},e}();O.convert=function(e){return e instanceof O?e:Array.isArray(e)?new O(e[0],e[1]):\"lng\"in e&&\"lat\"in e?new O(e.lat,e.lng):e};var x=function(){function e(e,t,o){this.tileSize=e||512,this._minZoom=t||0,this._maxZoom=o||52,this.latRange=[-85.05113,85.05113],this.width=0,this.height=0,this.zoom=0,this.center=new O(0,0),this.angle=0}var t,o=e.prototype;return o.zoomScale=function(e){return Math.pow(2,e)},o.scaleZoom=function(e){return Math.log(e)/Math.LN2},o.project=function(e,t){return new s(this.lngX(e.lng,t),this.latY(e.lat,t))},o.unproject=function(e,t){return new O(this.yLat(e.y,t),this.xLng(e.x,t))},o.lngX=function(e,t){return(180+e)*(t||this.worldSize)/360},o.latY=function(e,t){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))*(t||this.worldSize)/360},o.xLng=function(e,t){return 360*e/(t||this.worldSize)-180},o.yLat=function(e,t){return 360/Math.PI*Math.atan(Math.exp((180-360*e/(t||this.worldSize))*Math.PI/180))-90},o.locationPoint=function(e){var t=this.project(e);return this.centerPoint._sub(this.point._sub(t)._rotate(this.angle))},o.pointLocation=function(e){var t=this.centerPoint._sub(e)._rotate(-this.angle);return this.unproject(this.point.sub(t))},(t=[{key:\"minZoom\",get:function(){return this._minZoom},set:function(e){this._minZoom=e,this.zoom=Math.max(this.zoom,e)}},{key:\"maxZoom\",get:function(){return this._maxZoom},set:function(e){this._maxZoom=e,this.zoom=Math.min(this.zoom,e)}},{key:\"worldSize\",get:function(){return this.tileSize*this.scale}},{key:\"centerPoint\",get:function(){return new s(0,0)}},{key:\"size\",get:function(){return new s(this.width,this.height)}},{key:\"bearing\",get:function(){return-this.angle/Math.PI*180},set:function(e){this.angle=-k(e,-180,180)*Math.PI/180}},{key:\"zoom\",get:function(){return this._zoom},set:function(e){var t=Math.min(Math.max(e,this.minZoom),this.maxZoom);this._zoom=t,this.scale=this.zoomScale(t),this.tileZoom=Math.floor(t),this.zoomFraction=t-this.tileZoom}},{key:\"x\",get:function(){return this.lngX(this.center.lng)}},{key:\"y\",get:function(){return this.latY(this.center.lat)}},{key:\"point\",get:function(){return new s(this.x,this.y)}}])&&function(e,t){for(var o=0;o0&&this.getHeight()-o-r>0){var a=this.transform_.pointLocation(s.convert({x:i-this.getWidth()/2,y:o-this.getHeight()/2})),p=this.transform_.pointLocation(s.convert({x:this.getWidth()/2-n,y:this.getHeight()/2-r})),l=[a.lat,a.lng,p.lat,p.lng,p.lat,a.lng,a.lat,p.lng];return t&&(l=l.map(function(e){return Math.round(e*t)/t})),l}return[0,0,0,0]},e}();function S(e){if(window.requestAnimationFrame)return window.requestAnimationFrame(e);var t=window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame;return t?t(e):window.setTimeout(e,1e3/60)}var E=Math.log2?Math.log2:function(e){return Math.log(e)/Math.LN2};function P(e,t){return Object.keys(e).reduce(function(o,n){return t(e[n])&&(o[n]=e[n]),o},{})}var A=function(e){if(null!==e&&\"object\"==typeof e){if(0===Object.keys(e).length)return!0}else if(null==e||\"\"===e)return!0;return!1},I=Object.prototype.toString;function N(e){return\"number\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Number]\"===I.call(e)}var Z=null;function j(){if(Z)return Z;if(\"undefined\"!=typeof navigator){var e=navigator.userAgent.indexOf(\"MSIE\")>-1,t=navigator.userAgent.indexOf(\"Firefox\")>-1,o=navigator.userAgent.toLowerCase().indexOf(\"op\")>-1,n=navigator.userAgent.indexOf(\"Chrome\")>-1,r=navigator.userAgent.indexOf(\"Safari\")>-1;return n&&r&&(r=!1),n&&o&&(n=!1),Z={isExplorer:e,isFirefox:t,isOpera:o,isChrome:n,isSafari:r}}return Z={isChrome:!0,isExplorer:!1,isFirefox:!1,isOpera:!1,isSafari:!1}}var U=function(e){return Function.prototype.toString.call(e)};function H(e){if(!e||\"object\"!=typeof e)return!1;var t=\"function\"==typeof e.constructor?Object.getPrototypeOf(e):Object.prototype;if(null===t)return!0;var o=t.constructor;return\"function\"==typeof o&&o instanceof o&&U(o)===U(Object)}function K(e,t,o,n){e.addEventListener(t,o,function(){var e=!1;try{var t=Object.defineProperty({},\"passive\",{get:function(){e=!0}});window.addEventListener(\"test\",t,t),window.removeEventListener(\"test\",t,t)}catch(t){e=!1}return e}()?{capture:n,passive:!0}:n)}var R,G=!(\"undefined\"==typeof window||!window.document||!window.document.createElement);R=G?window:\"undefined\"!=typeof self?self:void 0;var B,W=\"undefined\"!=typeof document&&document.attachEvent,V=!1;if(G&&!W){var F=function(){var e=R.requestAnimationFrame||R.mozRequestAnimationFrame||R.webkitRequestAnimationFrame||function(e){return R.setTimeout(e,20)};return function(t){return e(t)}}(),$=(B=R.cancelAnimationFrame||R.mozCancelAnimationFrame||R.webkitCancelAnimationFrame||R.clearTimeout,function(e){return B(e)}),q=function(e){var t=e.__resizeTriggers__,o=t.firstElementChild,n=t.lastElementChild,r=o.firstElementChild;n.scrollLeft=n.scrollWidth,n.scrollTop=n.scrollHeight,r.style.width=o.offsetWidth+1+\"px\",r.style.height=o.offsetHeight+1+\"px\",o.scrollLeft=o.scrollWidth,o.scrollTop=o.scrollHeight},Y=function(e){var t=this;q(this),this.__resizeRAF__&&$(this.__resizeRAF__),this.__resizeRAF__=F(function(){(function(e){return e.offsetWidth!=e.__resizeLast__.width||e.offsetHeight!=e.__resizeLast__.height})(t)&&(t.__resizeLast__.width=t.offsetWidth,t.__resizeLast__.height=t.offsetHeight,t.__resizeListeners__.forEach(function(o){o.call(t,e)}))})},X=!1,J=\"\",Q=\"animationstart\",ee=\"Webkit Moz O ms\".split(\" \"),te=\"webkitAnimationStart animationstart oAnimationStart MSAnimationStart\".split(\" \");if(G){var oe=document.createElement(\"fakeelement\");if(void 0!==oe.style.animationName&&(X=!0),!1===X)for(var ne=0;ne0||r.geoService_.getHeight()>0){var e=Math.ceil(r.geoService_.getWidth()/256)+2,t=Math.ceil(r.geoService_.getHeight()/256)+2,o=Math.max(e,t);return Math.ceil(E(o))}return 3},r._computeMinZoom=function(e){return A(e)?r._getMinZoom():e},r._mapDomResizeCallback=function(){if(r.resetSizeOnIdle_=!0,r.maps_){var e=r.props.center||r.props.defaultCenter,t=r.map_.getCenter();r.maps_.event.trigger(r.map_,\"resize\"),r.map_.setCenter(r.props.resetBoundsOnResize?e:t)}},r._setLayers=function(e){e.forEach(function(e){r.layers_[e]=new r.maps_[e],r.layers_[e].setMap(r.map_)})},r._renderPortal=function(){return e.createElement(M,{experimental:r.props.experimental,onChildClick:r._onChildClick,onChildMouseDown:r._onChildMouseDown,onChildMouseEnter:r._onChildMouseEnter,onChildMouseLeave:r._onChildMouseLeave,geoService:r.geoService_,insideMapPanes:!0,distanceToMouse:r.props.distanceToMouse,getHoverDistance:r._getHoverDistance,dispatcher:r.markersDispatcher_})},r._initMap=function(){if(!r.initialized_){r.initialized_=!0;var e=le(r.props.center||r.props.defaultCenter);r.geoService_.setView(e,r.props.zoom||r.props.defaultZoom,0),r._onBoundsChanged();var t=a({},r.props.apiKey&&{key:r.props.apiKey},r.props.bootstrapURLKeys);r.props.googleMapLoader(t,r.props.heatmapLibrary).then(function(e){if(r.mounted_){var t,o,i=r.geoService_.getCenter(),s={zoom:r.props.zoom||r.props.defaultZoom,center:new e.LatLng(i.lat,i.lng)};r.props.heatmap.positions&&(Object.assign(l(r),{heatmap:(t=e,o=r.props.heatmap,new t.visualization.HeatmapLayer({data:o.positions.reduce(function(e,o){var n=o.weight,r=void 0===n?1:n;return e.push({location:new t.LatLng(o.lat,o.lng),weight:r}),e},[])}))}),function(e,t){var o=t.options,n=void 0===o?{}:o;Object.keys(n).map(function(t){return e.set(t,n[t])})}(r.heatmap,r.props.heatmap));var p=P(e,H),u=\"function\"==typeof r.props.options?r.props.options(p):r.props.options,h=!A(r.props.draggable)&&{draggable:r.props.draggable},c=r._computeMinZoom(u.minZoom);r.minZoom_=c;var d=a({},{overviewMapControl:!1,streetViewControl:!1,rotateControl:!0,mapTypeControl:!1,styles:[{featureType:\"poi\",elementType:\"labels\",stylers:[{visibility:\"off\"}]}],minZoom:3},{minZoom:c},u,s);r.defaultDraggableOption_=A(d.draggable)?r.defaultDraggableOption_:d.draggable;var m=a({},d,h);m.minZoom=ue(m.minZoom,c);var g=new e.Map(n.findDOMNode(r.googleMapDom_),m);r.map_=g,r.maps_=e,r._setLayers(r.props.layerTypes);var _=e.version.match(/^3\\.(\\d+)\\./),f=_&&Number(_[1]),v=l(r),M=Object.assign(new e.OverlayView,{onAdd:function(){var t=\"undefined\"!=typeof screen?screen.width+\"px\":\"2000px\",o=\"undefined\"!=typeof screen?screen.height+\"px\":\"2000px\",n=document.createElement(\"div\");if(n.style.backgroundColor=\"transparent\",n.style.position=\"absolute\",n.style.left=\"0px\",n.style.top=\"0px\",n.style.width=t,n.style.height=o,v.props.overlayViewDivStyle){var r=v.props.overlayViewDivStyle;\"object\"==typeof r&&Object.keys(r).forEach(function(e){n.style[e]=r[e]})}this.getPanes().overlayMouseTarget.appendChild(n),v.geoService_.setMapCanvasProjection(e,M.getProjection()),ae?v.setState({overlay:n}):pe(v,v._renderPortal(),n,function(){return v.setState({overlay:n})})},onRemove:function(){var e=v.state.overlay;e&&!ae&&n.unmountComponentAtNode(e),v.setState({overlay:null})},draw:function(){if(v.updateCounter_++,v._onBoundsChanged(g,e,!v.props.debounced),v.googleApiLoadedCalled_||(v._onGoogleApiLoaded({map:g,maps:e,ref:v.googleMapDom_}),v.googleApiLoadedCalled_=!0),v.mouse_){var t=v.geoService_.fromContainerPixelToLatLng(v.mouse_);v.mouse_.lat=t.lat,v.mouse_.lng=t.lng}v._onChildMouseMove(),v.markersDispatcher_&&(v.markersDispatcher_.emit(\"kON_CHANGE\"),v.fireMouseEventOnIdle_&&v.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\"))}});r.overlay_=M,M.setMap(g),r.props.heatmap.positions&&r.heatmap.setMap(g),r.props.onTilesLoaded&&e.event.addListener(g,\"tilesloaded\",function(){v._onTilesLoaded()}),e.event.addListener(g,\"zoom_changed\",function(){v.geoService_.getZoom()!==g.getZoom()&&(v.zoomAnimationInProgress_||(v.zoomAnimationInProgress_=!0,v._onZoomAnimationStart(g.zoom)),f<32)&&((new Date).getTime()-r.zoomControlClickTime_<300?S(function(){return S(function(){v.updateCounter_++,v._onBoundsChanged(g,e)})}):(v.updateCounter_++,v._onBoundsChanged(g,e)))}),e.event.addListener(g,\"idle\",function(){if(r.resetSizeOnIdle_){r._setViewSize();var t=r._computeMinZoom(u.minZoom);t!==r.minZoom_&&(r.minZoom_=t,g.setOptions({minZoom:t})),r.resetSizeOnIdle_=!1}v.zoomAnimationInProgress_&&(v.zoomAnimationInProgress_=!1,v._onZoomAnimationEnd(g.zoom)),v.updateCounter_++,v._onBoundsChanged(g,e),v.dragTime_=0,v.markersDispatcher_&&v.markersDispatcher_.emit(\"kON_CHANGE\")}),e.event.addListener(g,\"mouseover\",function(){v.mouseInMap_=!0}),e.event.addListener(g,\"click\",function(){v.mouseInMap_=!0}),e.event.addListener(g,\"mouseout\",function(){v.mouseInMap_=!1,v.mouse_=null,v.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\")}),e.event.addListener(g,\"drag\",function(){v.dragTime_=(new Date).getTime(),v._onDrag(g)}),e.event.addListener(g,\"dragend\",function(){var t=e.event.addListener(g,\"idle\",function(){e.event.removeListener(t),v._onDragEnd(g)})}),e.event.addListener(g,\"maptypeid_changed\",function(){v._onMapTypeIdChange(g.getMapTypeId())})}}).catch(function(e){throw r._onGoogleApiLoaded({map:null,maps:null,ref:r.googleMapDom_}),console.error(e),e})}},r._onGoogleApiLoaded=function(){var e;r.props.onGoogleApiLoaded&&(\"production\"!==process.env.NODE_ENV&&!0!==r.props.yesIWantToUseGoogleMapApiInternals&&console.warn(\"GoogleMap: Usage of internal api objects is dangerous and can cause a lot of issues.\\nTo hide this warning add yesIWantToUseGoogleMapApiInternals={true} to 50&&(r.boundingRect_=e.currentTarget.getBoundingClientRect()),r.mouseMoveTime_=t;var o=e.clientX-r.boundingRect_.left,n=e.clientY-r.boundingRect_.top;r.mouse_||(r.mouse_={x:0,y:0,lat:0,lng:0}),r.mouse_.x=o,r.mouse_.y=n;var i=r.geoService_.fromContainerPixelToLatLng(r.mouse_);r.mouse_.lat=i.lat,r.mouse_.lng=i.lng,r._onChildMouseMove(),t-r.dragTime_<100?r.fireMouseEventOnIdle_=!0:(r.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\"),r.fireMouseEventOnIdle_=!1)}},r._onClick=function(){var e;return r.props.onClick&&!r.childMouseDownArgs_&&(new Date).getTime()-r.childMouseUpTime_>300&&0===r.dragTime_&&(e=r.props).onClick.apply(e,arguments)},r._onMapClick=function(e){r.markersDispatcher_&&(r._onMapMouseMove(e),(new Date).getTime()-r.dragTime_>100&&(r.mouse_&&r._onClick(a({},r.mouse_,{event:e})),r.markersDispatcher_.emit(\"kON_CLICK\",e)))},r._onMapMouseDownNative=function(e){r.mouseInMap_&&r._onMapMouseDown(e)},r._onMapMouseDown=function(e){r.markersDispatcher_&&(new Date).getTime()-r.dragTime_>100&&(r._onMapMouseMove(e),r.markersDispatcher_.emit(\"kON_MDOWN\",e))},r._onMapMouseDownCapture=function(){j().isChrome&&(r.zoomControlClickTime_=(new Date).getTime())},r._onKeyDownCapture=function(){j().isChrome&&(r.zoomControlClickTime_=(new Date).getTime())},r._isCenterDefined=function(e){return e&&(H(e)&&N(e.lat)&&N(e.lng)||2===e.length&&N(e[0])&&N(e[1]))},r._onBoundsChanged=function(e,t,o){if(e){var n=e.getCenter();r.geoService_.setView([n.lat(),n.lng()],e.getZoom(),0)}if((r.props.onChange||r.props.onBoundsChange)&&r.geoService_.canProject()){var i=r.geoService_.getZoom(),s=r.geoService_.getBounds(),p=r.geoService_.getCenter();if(!function(e,t,o){if(e&&t){for(var n=0;n!==e.length;++n)if(Math.abs(e[n]-t[n])>1e-5)return!1;return!0}return!1}(s,r.prevBounds_)&&!1!==o){var l=r.geoService_.getBounds(r.props.margin);r.props.onBoundsChange&&r.props.onBoundsChange(r.centerIsObject_?a({},p):[p.lat,p.lng],i,s,l),r.props.onChange&&r.props.onChange({center:a({},p),zoom:i,bounds:{nw:{lat:s[0],lng:s[1]},se:{lat:s[2],lng:s[3]},sw:{lat:s[4],lng:s[5]},ne:{lat:s[6],lng:s[7]}},marginBounds:{nw:{lat:l[0],lng:l[1]},se:{lat:l[2],lng:l[3]},sw:{lat:l[4],lng:l[5]},ne:{lat:l[6],lng:l[7]}},size:r.geoService_.hasSize()?{width:r.geoService_.getWidth(),height:r.geoService_.getHeight()}:{width:0,height:0}}),r.prevBounds_=s}}},r._registerChild=function(e){r.googleMapDom_=e},r.mounted_=!1,r.initialized_=!1,r.googleApiLoadedCalled_=!1,r.map_=null,r.maps_=null,r.prevBounds_=null,r.heatmap=null,r.layers_={},r.mouse_=null,r.mouseMoveTime_=0,r.boundingRect_=null,r.mouseInMap_=!0,r.dragTime_=0,r.fireMouseEventOnIdle_=!1,r.updateCounter_=0,r.markersDispatcher_=new c(l(r)),r.geoService_=new T(256),r.centerIsObject_=H(r.props.center),r.minZoom_=3,r.defaultDraggableOption_=!0,r.zoomControlClickTime_=0,r.childMouseDownArgs_=null,r.childMouseUpTime_=0,r.googleMapDom_=null,\"production\"!==process.env.NODE_ENV&&(r.props.apiKey&&console.warn(\"GoogleMap: apiKey is deprecated, use bootstrapURLKeys={{key: YOUR_API_KEY}} instead.\"),r.props.onBoundsChange&&console.warn(\"GoogleMap: onBoundsChange is deprecated, use onChange({center, zoom, bounds, ...other}) instead.\"),A(r.props.center)&&A(r.props.defaultCenter)&&console.warn(\"GoogleMap: center or defaultCenter property must be defined\"),A(r.props.zoom)&&A(r.props.defaultZoom)&&console.warn(\"GoogleMap: zoom or defaultZoom property must be defined\")),r._isCenterDefined(r.props.center||r.props.defaultCenter)){var i=le(r.props.center||r.props.defaultCenter);r.geoService_.setView(i,r.props.zoom||r.props.defaultZoom,0)}return r.zoomAnimationInProgress_=!1,r.state={overlay:null},r}p(o,t);var r=o.prototype;return r.componentDidMount=function(){var e=this;this.mounted_=!0,K(window,\"resize\",this._onWindowResize,!1),K(window,\"keydown\",this._onKeyDownCapture,!0);var t=n.findDOMNode(this.googleMapDom_);t&&K(t,\"mousedown\",this._onMapMouseDownNative,!0),K(window,\"mouseup\",this._onChildMouseUp,!1);var o=a({},this.props.apiKey&&{key:this.props.apiKey},this.props.bootstrapURLKeys);this.props.googleMapLoader(o,this.props.heatmapLibrary),setTimeout(function(){e._setViewSize(),e._isCenterDefined(e.props.center||e.props.defaultCenter)&&e._initMap()},0,this),this.props.resetBoundsOnResize&&function(e,t){if(void 0===e.parentNode){var o=document.createElement(\"div\");e.parentNode=o}e=e.parentNode,W?e.attachEvent(\"onresize\",t):(e.__resizeTriggers__||(\"static\"==getComputedStyle(e).position&&(e.style.position=\"relative\"),function(){if(!V){var e=(ie||\"\")+\".resize-triggers { \"+(se||\"\")+'visibility: hidden; opacity: 0; } .resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',t=document.head||document.getElementsByTagName(\"head\")[0],o=document.createElement(\"style\");o.type=\"text/css\",o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e)),t.appendChild(o),V=!0}}(),e.__resizeLast__={},e.__resizeListeners__=[],(e.__resizeTriggers__=document.createElement(\"div\")).className=\"resize-triggers\",e.__resizeTriggers__.innerHTML='
',e.appendChild(e.__resizeTriggers__),q(e),K(e,\"scroll\",Y,!0),Q&&e.__resizeTriggers__.addEventListener(Q,function(t){t.animationName==re&&q(e)})),e.__resizeListeners__.push(t))}(t,this._mapDomResizeCallback)},r.shouldComponentUpdate=function(e,t){return!_(d(this.props,[\"draggable\"]),d(e,[\"draggable\"]))||!_(this.state,t)},r.componentDidUpdate=function(e){var t=this;if(\"production\"!==process.env.NODE_ENV&&(_(e.defaultCenter,this.props.defaultCenter)||console.warn(\"GoogleMap: defaultCenter prop changed. You can't change default props.\"),_(e.defaultZoom,this.props.defaultZoom)||console.warn(\"GoogleMap: defaultZoom prop changed. You can't change default props.\")),!this._isCenterDefined(e.center)&&this._isCenterDefined(this.props.center)&&setTimeout(function(){return t._initMap()},0),this.map_){var o=this.geoService_.getCenter();if(this._isCenterDefined(this.props.center)){var n=le(this.props.center),r=this._isCenterDefined(e.center)?le(e.center):null;(!r||Math.abs(n.lat-r.lat)+Math.abs(n.lng-r.lng)>1e-5)&&Math.abs(n.lat-o.lat)+Math.abs(n.lng-o.lng)>1e-5&&this.map_.panTo({lat:n.lat,lng:n.lng})}if(A(this.props.zoom)||Math.abs(this.props.zoom-e.zoom)>0&&this.map_.setZoom(this.props.zoom),!A(e.draggable)&&A(this.props.draggable)?this.map_.setOptions({draggable:this.defaultDraggableOption_}):_(e.draggable,this.props.draggable)||this.map_.setOptions({draggable:this.props.draggable}),!A(this.props.options)&&!_(e.options,this.props.options)){var i=P(this.maps_,H),s=\"function\"==typeof this.props.options?this.props.options(i):this.props.options;if(\"minZoom\"in(s=d(s,[\"zoom\",\"center\",\"draggable\"]))){var a=this._computeMinZoom(s.minZoom);s.minZoom=ue(s.minZoom,a)}this.map_.setOptions(s)}_(this.props.layerTypes,e.layerTypes)||(Object.keys(this.layers_).forEach(function(e){t.layers_[e].setMap(null),delete t.layers_[e]}),this._setLayers(this.props.layerTypes)),this.heatmap&&!_(this.props.heatmap.positions,e.heatmap.positions)&&this.heatmap.setData(this.props.heatmap.positions.map(function(e){return{location:new t.maps_.LatLng(e.lat,e.lng),weight:e.weight}})),this.heatmap&&!_(this.props.heatmap.options,e.heatmap.options)&&Object.keys(this.props.heatmap.options).forEach(function(e){t.heatmap.set(e,t.props.heatmap.options[e])})}this.markersDispatcher_.emit(\"kON_CHANGE\"),_(this.props.hoverDistance,e.hoverDistance)||this.markersDispatcher_.emit(\"kON_MOUSE_POSITION_CHANGE\")},r.componentWillUnmount=function(){this.mounted_=!1;var e,t,o=n.findDOMNode(this.googleMapDom_);o&&o.removeEventListener(\"mousedown\",this._onMapMouseDownNative,!0),window.removeEventListener(\"resize\",this._onWindowResize),window.removeEventListener(\"keydown\",this._onKeyDownCapture),window.removeEventListener(\"mouseup\",this._onChildMouseUp,!1),this.props.resetBoundsOnResize&&(t=this._mapDomResizeCallback,e=(e=o).parentNode,W?e.detachEvent(\"onresize\",t):(e.__resizeListeners__.splice(e.__resizeListeners__.indexOf(t),1),e.__resizeListeners__.length||(e.removeEventListener(\"scroll\",Y),e.__resizeTriggers__=!e.removeChild(e.__resizeTriggers__)))),this.overlay_&&this.overlay_.setMap(null),this.maps_&&this.map_&&this.props.shouldUnregisterMapOnUnmount&&(this.map_.setOptions({scrollwheel:!1}),this.maps_.event.clearInstanceListeners(this.map_)),this.props.shouldUnregisterMapOnUnmount&&(this.map_=null,this.maps_=null),this.markersDispatcher_.dispose(),this.resetSizeOnIdle_=!1,this.props.shouldUnregisterMapOnUnmount&&(delete this.map_,delete this.markersDispatcher_)},r.render=function(){var t=this.state.overlay,o=t?null:e.createElement(C,{experimental:this.props.experimental,onChildClick:this._onChildClick,onChildMouseDown:this._onChildMouseDown,onChildMouseEnter:this._onChildMouseEnter,onChildMouseLeave:this._onChildMouseLeave,geoService:this.geoService_,insideMapPanes:!1,distanceToMouse:this.props.distanceToMouse,getHoverDistance:this._getHoverDistance,dispatcher:this.markersDispatcher_});return e.createElement(\"div\",{style:this.props.style,onMouseMove:this._onMapMouseMove,onMouseDownCapture:this._onMapMouseDownCapture,onClick:this._onMapClick},e.createElement(h,{registerChild:this._registerChild}),ae&&t&&pe(this._renderPortal(),t),o)},o}(t);function ce(e){var t=e.lng,o=Math.sin(e.lat*Math.PI/180),n=t/360+.5,r=.5-.25*Math.log((1+o)/(1-o))/Math.PI;return{x:n,y:r=r<0?0:r>1?1:r}}function de(e){var t=e.x,o=Math.PI-2*Math.PI*e.y;return{lat:180/Math.PI*Math.atan(.5*(Math.exp(o)-Math.exp(-o))),lng:360*t-180}}function me(e,t,o,n){var r=ce(e),i=ce(t),s=r.x0?.5*(r.x+i.x-1):.5*(1+r.x+i.x),y:.5*(r.y+i.y)},c=Math.pow(2,u),d=o/c/256/2,m=n/c/256/2,g=de({x:h.x-d,y:h.y-m}),_=de({x:h.x+d,y:h.y+m});return{center:de(h),zoom:u,newBounds:{nw:g,se:_}}}function ge(e){var t=e.ne,o=e.sw;return{nw:{lat:t.lat,lng:o.lng},se:{lat:o.lat,lng:t.lng}}}function _e(e){var t=e.nw,o=e.se;return{ne:{lat:t.lat,lng:o.lng},sw:{lat:o.lat,lng:t.lng}}}function fe(e,t){var o,n=e.nw,r=e.se,i=e.ne,s=e.sw,p=t.width,l=t.height;if(n&&r)o=me(n,r,p,l);else{var u=ge({ne:i,sw:s});o=me(u.nw,u.se,p,l)}return a({},o,{newBounds:a({},o.newBounds,_e(o.newBounds))})}function ve(e,t,o){var n=function(e,t){var o=function(e,t){var o,n=t.lat,r=t.lng,i=(o=n*Math.PI/180,{metersPerLatDegree:111132.92-559.82*Math.cos(2*o)+1.175*Math.cos(4*o)-.0023*Math.cos(6*o),metersPerLngDegree:111412.84*Math.cos(o)-93.5*Math.cos(3*o)+.118*Math.cos(5*o)}),s=.5*e/i.metersPerLatDegree,a=.5*e/i.metersPerLngDegree;return{nw:{lat:n-s,lng:r-a},se:{lat:n+s,lng:r+a}}}(e,{lat:t.lat,lng:t.lng}),n=o.se,r=ce(o.nw),i=ce(n);return{w:Math.abs(i.x-r.x),h:Math.abs(i.y-r.y)}}(e,{lat:t.lat,lng:t.lng}),r=n.w,i=n.h,s=Math.pow(2,o);return{w:r*s*256,h:i*s*256}}function Me(e,t){var o=e.x,n=Math.PI-2*Math.PI*e.y/Math.pow(2,t);return{lat:180/Math.PI*Math.atan(.5*(Math.exp(n)-Math.exp(-n))),lng:o/Math.pow(2,t)*360-180}}function ye(e,t){var o=ce({lat:e.lat,lng:e.lng}),n=Math.pow(2,t);return{x:Math.floor(o.x*n),y:Math.floor(o.y*n)}}function Ce(e,t){for(var o=e.from,n=e.to,r=Math.pow(2,t),i=[],s=o.x;s!==(n.x+1)%r;s=(s+1)%r)for(var a=o.y;a!==(n.y+1)%r;a=(a+1)%r)i.push([t,s,a]);return i}he.propTypes={apiKey:o.string,bootstrapURLKeys:o.any,defaultCenter:o.oneOfType([o.array,o.shape({lat:o.number,lng:o.number})]),center:o.oneOfType([o.array,o.shape({lat:o.number,lng:o.number})]),defaultZoom:o.number,zoom:o.number,onBoundsChange:o.func,onChange:o.func,onClick:o.func,onChildClick:o.func,onChildMouseDown:o.func,onChildMouseUp:o.func,onChildMouseMove:o.func,onChildMouseEnter:o.func,onChildMouseLeave:o.func,onZoomAnimationStart:o.func,onZoomAnimationEnd:o.func,onDrag:o.func,onDragEnd:o.func,onMapTypeIdChange:o.func,onTilesLoaded:o.func,options:o.any,distanceToMouse:o.func,hoverDistance:o.number,debounced:o.bool,margin:o.array,googleMapLoader:o.any,onGoogleApiLoaded:o.func,yesIWantToUseGoogleMapApiInternals:o.bool,draggable:o.bool,style:o.any,resetBoundsOnResize:o.bool,layerTypes:o.arrayOf(o.string),shouldUnregisterMapOnUnmount:o.bool},he.defaultProps={distanceToMouse:function(e,t){return Math.sqrt((e.x-t.x)*(e.x-t.x)+(e.y-t.y)*(e.y-t.y))},hoverDistance:30,debounced:!0,options:function(){return{overviewMapControl:!1,streetViewControl:!1,rotateControl:!0,mapTypeControl:!1,styles:[{featureType:\"poi\",elementType:\"labels\",stylers:[{visibility:\"off\"}]}],minZoom:3}},googleMapLoader:z,yesIWantToUseGoogleMapApiInternals:!1,style:{width:\"100%\",height:\"100%\",margin:0,padding:0,position:\"relative\"},layerTypes:[],heatmap:{},heatmapLibrary:!1,shouldUnregisterMapOnUnmount:!0},he.googleMapLoader=z;export default he;export{ge as convertNeSwToNwSe,_e as convertNwSeToNeSw,fe as fitBounds,Ce as getTilesIds,ye as latLng2Tile,ve as meters2ScreenPixels,Me as tile2LatLng};\n//# sourceMappingURL=index.modern.js.map\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Collapse = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Collapse = /*#__PURE__*/function (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n var _super = _createSuper(Collapse);\n\n function Collapse(props) {\n var _this;\n\n _classCallCheck(this, Collapse);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"timeout\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"container\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"content\", undefined);\n\n _defineProperty(_assertThisInitialized(_this), \"onResize\", function () {\n clearTimeout(_this.timeout);\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var _this$props = _this.props,\n isOpened = _this$props.isOpened,\n checkTimeout = _this$props.checkTimeout;\n var containerHeight = Math.floor(_this.container.clientHeight);\n var contentHeight = Math.floor(_this.content.clientHeight);\n var isFullyOpened = isOpened && Math.abs(contentHeight - containerHeight) <= 1;\n var isFullyClosed = !isOpened && Math.abs(containerHeight) <= 1;\n\n if (isFullyOpened || isFullyClosed) {\n _this.onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n } else {\n _this.onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n\n _this.timeout = setTimeout(function () {\n return _this.onResize();\n }, checkTimeout);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref) {\n var isFullyOpened = _ref.isFullyOpened,\n isFullyClosed = _ref.isFullyClosed,\n isOpened = _ref.isOpened,\n containerHeight = _ref.containerHeight,\n contentHeight = _ref.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var hasOpened = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var hasClosed = !isOpened && _this.container.style.height === '0px';\n\n if (hasOpened || hasClosed) {\n _this.container.style.overflow = isOpened ? 'initial' : 'hidden';\n _this.container.style.height = isOpened ? 'auto' : '0px';\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref2) {\n var isFullyOpened = _ref2.isFullyOpened,\n isFullyClosed = _ref2.isFullyClosed,\n isOpened = _ref2.isOpened,\n containerHeight = _ref2.containerHeight,\n contentHeight = _ref2.contentHeight;\n\n if (!_this.container || !_this.content) {\n return;\n }\n\n var isOpenining = isOpened && _this.container.style.height === \"\".concat(contentHeight, \"px\");\n var isClosing = !isOpened && _this.container.style.height === '0px';\n\n if (isOpenining || isClosing) {\n // No need to do any work\n return;\n }\n\n _this.container.style.overflow = 'hidden';\n _this.container.style.height = isOpened ? \"\".concat(contentHeight, \"px\") : '0px';\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork({\n isFullyOpened: isFullyOpened,\n isFullyClosed: isFullyClosed,\n isOpened: isOpened,\n containerHeight: containerHeight,\n contentHeight: contentHeight\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContainer\", function (container) {\n _this.container = container;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRefContent\", function (content) {\n _this.content = content;\n });\n\n if (props.initialStyle) {\n _this.initialStyle = props.initialStyle;\n } else {\n _this.initialStyle = props.isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.onResize();\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this$props2 = this.props,\n theme = _this$props2.theme,\n isOpened = _this$props2.isOpened,\n children = _this$props2.children;\n return children !== nextProps.children || isOpened !== nextProps.isOpened || Object.keys(theme).some(function (c) {\n return theme[c] !== nextProps.theme[c];\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate() {\n if (!this.container || !this.content) {\n return null;\n }\n\n if (this.container.style.height === 'auto') {\n var contentHeight = this.content.clientHeight;\n this.container.style.height = \"\".concat(contentHeight, \"px\");\n }\n\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.onResize();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timeout);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props3 = this.props,\n theme = _this$props3.theme,\n children = _this$props3.children,\n isOpened = _this$props3.isOpened;\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContainer,\n className: theme.collapse,\n style: this.initialStyle,\n \"aria-hidden\": !isOpened\n }, /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n ref: this.onRefContent,\n className: theme.content\n }, children));\n }\n }]);\n\n return Collapse;\n}(_react[\"default\"].Component);\n\nexports.Collapse = Collapse;\n\n_defineProperty(Collapse, \"defaultProps\", {\n theme: {\n collapse: 'ReactCollapse--collapse',\n content: 'ReactCollapse--content'\n },\n initialStyle: undefined,\n onRest: undefined,\n onWork: undefined,\n checkTimeout: 50\n});","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.UnmountClosed = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Collapse = require(\"./Collapse\");\n\nvar _excluded = [\"isOpened\"],\n _excluded2 = [\"isOpened\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar UnmountClosed = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(UnmountClosed, _React$PureComponent);\n\n var _super = _createSuper(UnmountClosed);\n\n function UnmountClosed(props) {\n var _this;\n\n _classCallCheck(this, UnmountClosed);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onWork\", function (_ref) {\n var isOpened = _ref.isOpened,\n rest = _objectWithoutProperties(_ref, _excluded);\n\n _this.setState({\n isResting: false,\n isOpened: isOpened\n });\n\n var onWork = _this.props.onWork;\n\n if (onWork) {\n onWork(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onRest\", function (_ref2) {\n var isOpened = _ref2.isOpened,\n rest = _objectWithoutProperties(_ref2, _excluded2);\n\n _this.setState({\n isResting: true,\n isOpened: isOpened,\n isInitialRender: false\n });\n\n var onRest = _this.props.onRest;\n\n if (onRest) {\n onRest(_objectSpread({\n isOpened: isOpened\n }, rest));\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getInitialStyle\", function () {\n var _this$state = _this.state,\n isOpened = _this$state.isOpened,\n isInitialRender = _this$state.isInitialRender;\n\n if (isInitialRender) {\n return isOpened ? {\n height: 'auto',\n overflow: 'initial'\n } : {\n height: '0px',\n overflow: 'hidden'\n };\n }\n\n return {\n height: '0px',\n overflow: 'hidden'\n };\n });\n\n _this.state = {\n isResting: true,\n isOpened: props.isOpened,\n isInitialRender: true\n };\n return _this;\n }\n\n _createClass(UnmountClosed, [{\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var isOpened = this.props.isOpened;\n\n if (prevProps.isOpened !== isOpened) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isResting: false,\n isOpened: isOpened,\n isInitialRender: false\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$state2 = this.state,\n isResting = _this$state2.isResting,\n isOpened = _this$state2.isOpened;\n return isResting && !isOpened ? null : /*#__PURE__*/_react[\"default\"].createElement(_Collapse.Collapse, _extends({}, this.props, {\n initialStyle: this.getInitialStyle(),\n onWork: this.onWork,\n onRest: this.onRest\n }));\n }\n }]);\n\n return UnmountClosed;\n}(_react[\"default\"].PureComponent);\n\nexports.UnmountClosed = UnmountClosed;\n\n_defineProperty(UnmountClosed, \"defaultProps\", {\n onWork: undefined,\n onRest: undefined\n});","\"use strict\";\n\nvar _require = require('./Collapse'),\n Collapse = _require.Collapse;\n\nvar _require2 = require('./UnmountClosed'),\n UnmountClosed = _require2.UnmountClosed; // Default export\n\n\nmodule.exports = UnmountClosed; // Extra \"named exports\"\n\nUnmountClosed.Collapse = Collapse;\nUnmountClosed.UnmountClosed = UnmountClosed;","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","/* underscore in name -> watch for changes */\nconst paramsList = ['modules', 'init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","import React from 'react';\nimport Swiper from 'swiper';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n let slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n const breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n const breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n let loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiper, slides, swiperParams) {\n const modifiedSlides = slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n 'data-swiper-slide-index': index\n });\n });\n\n function duplicateSlide(child, index, position) {\n return /*#__PURE__*/React.cloneElement(child, {\n key: `${child.key}-duplicate-${index}-${position}`,\n className: `${child.props.className || ''} ${swiperParams.slideDuplicateClass}`\n });\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n const blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankSlide = /*#__PURE__*/React.createElement(\"div\", {\n className: `${swiperParams.slideClass} ${swiperParams.slideBlankClass}`\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n const loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n const prependSlides = [];\n const appendSlides = [];\n modifiedSlides.forEach((child, index) => {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiper) {\n swiper.loopedSlides = loopedSlides;\n }\n\n return [...prependSlides, ...modifiedSlides, ...appendSlides];\n}\n\nexport { calcLoopedSlides, renderLoop };","import React from 'react';\n\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\n\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (child.type && child.type.displayName === 'SwiperSlide') {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils.js';\n\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n\n if (mod === 'navigation') {\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n const newValue = passedParams[key];\n\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('children') && swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","import { useEffect, useLayoutEffect } from 'react';\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\n\nexport { useIsomorphicLayoutEffect };","import { createContext, useContext } from 'react';\nexport const SwiperSlideContext = /*#__PURE__*/createContext(null);\nexport const useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nexport const SwiperContext = /*#__PURE__*/createContext(null);\nexport const useSwiper = () => {\n return useContext(SwiperContext);\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 React, { useRef, useState, useEffect, forwardRef } from 'react';\nimport SwiperCore from 'swiper';\nimport { getParams } from './get-params.js';\nimport { mountSwiper } from './mount-swiper.js';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils.js';\nimport { renderLoop, calcLoopedSlides } from './loop.js';\nimport { getChangedParams } from './get-changed-params.js';\nimport { getChildren } from './get-children.js';\nimport { updateSwiper } from './update-swiper.js';\nimport { renderVirtual, updateOnVirtualData } from './virtual.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperContext } from './context.js';\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n\n });\n\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n swiperRef.current = new SwiperCore(swiperParams);\n\n swiperRef.current.loopCreate = () => {};\n\n swiperRef.current.loopDestroy = () => {};\n\n if (swiperParams.loop) {\n swiperRef.current.loopedSlides = calcLoopedSlides(slides, swiperParams);\n }\n\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n\n if (!swiperElRef.current) {\n initSwiper();\n } // Listen for breakpoints change\n\n\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n }); // set initialized flag\n\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n }); // mount swiper\n\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n\n if (!swiperElRef.current) return;\n\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current); // eslint-disable-next-line\n\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []); // watch for params change\n\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n\n return () => {\n detachEvents();\n };\n }); // update on virtual update\n\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]); // bypass swiper instance to slides\n\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n\n if (!swiperParams.loop || swiperRef.current && swiperRef.current.destroyed) {\n return slides.map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current\n });\n });\n }\n\n return renderLoop(swiperRef.current, slides, swiperParams);\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), /*#__PURE__*/React.createElement(WrapperTag, {\n className: \"swiper-wrapper\"\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nexport { Swiper };","import Swiper from 'swiper';\nimport { isObject, extend } from './utils.js';\nimport { paramsList } from './params-list.js';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n Object.keys(obj).forEach(key => {\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\n\nexport { getParams };","import { needsNavigation, needsPagination, needsScrollbar } from './utils.js';\n\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { mountSwiper };","import { paramsList } from './params-list.js';\nimport { isObject } from './utils.js';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n const keys = [];\n if (!oldParams) return keys;\n\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n const oldChildrenKeys = oldChildren.map(child => child.key);\n const childrenKeys = children.map(child => child.key);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","import React from 'react';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n return slides.filter((child, index) => index >= virtualData.from && index <= virtualData.to).map(child => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style\n });\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","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 React, { useRef, useState, forwardRef } from 'react';\nimport { uniqueClasses } from './utils.js';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect.js';\nimport { SwiperSlideContext } from './context.js';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n virtualIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n\n useIsomorphicLayoutEffect(() => {\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n\n if (!slideElRef.current || !swiper) {\n return;\n }\n\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n\n return;\n }\n\n swiper.on('_slideClass', updateClasses); // eslint-disable-next-line\n\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0 || slideClasses.indexOf('swiper-slide-duplicate-next') >= 0\n };\n\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex\n }, rest), /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, zoom ? /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren()) : renderChildren()));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { SwiperSlide };","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit() {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","export default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function transitionEmit(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\n }\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor() {\n let el;\n let params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n\n if (exact === void 0) {\n exact = false;\n }\n\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\n\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","export default function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `` + ' / ' + ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n init();\n render();\n update();\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render,\n update,\n init,\n destroy\n });\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}"],"names":["Point","x","y","this","module","exports","prototype","clone","add","p","_add","sub","_sub","multByPoint","_multByPoint","divByPoint","_divByPoint","mult","k","_mult","div","_div","rotate","a","_rotate","rotateAround","_rotateAround","matMult","m","_matMult","unit","_unit","perp","_perp","round","_round","mag","Math","sqrt","equals","other","dist","distSqr","dx","dy","angle","atan2","angleTo","b","angleWith","angleWithSep","cos","sin","convert","Array","isArray","has","Object","hasOwnProperty","prefix","Events","EE","fn","context","once","addListener","emitter","event","TypeError","listener","evt","_events","push","_eventsCount","clearEvent","EventEmitter","create","__proto__","eventNames","events","name","names","call","slice","getOwnPropertySymbols","concat","listeners","handlers","i","l","length","ee","listenerCount","emit","a1","a2","a3","a4","a5","args","len","arguments","removeListener","undefined","apply","j","on","removeAllListeners","off","prefixed","fastDeepEqual","equal","constructor","keys","RegExp","source","flags","valueOf","toString","key","DEFAULT_ID","LoaderStatus","Loader","apiKey","channel","client","id","libraries","language","region","version","mapIds","nonce","retries","url","CALLBACK","callbacks","done","loading","errors","instance","options","Error","JSON","stringify","status","FAILURE","SUCCESS","LOADING","INITIALIZED","failed","createUrl","join","deleteScript","script","document","getElementById","remove","load","loadPromise","Promise","resolve","reject","loadCallback","err","error","window","google","execute","setScript","callback","createElement","type","src","onerror","loadErrorCallback","bind","defer","async","head","appendChild","reset","onerrorEvent","resetIfRetryingFailed","e","delay","pow","console","log","setTimeout","setCallback","__googleMapsCallback","forEach","cb","maps","warn","assign","t","o","n","ReferenceError","u","width","height","left","top","margin","padding","position","h","shouldComponentUpdate","render","ref","props","registerChild","style","c","gmapInstance","getChildren","children","getMousePosition","mouse_","getUpdateCounter","updateCounter_","dispose","d","r","g","_","f","v","backgroundColor","M","_getState","dispatcher","updateCounter","_onChangeHandler","dimensionsCache_","state","setState","_onMouseChangeHandler","_onChildClick","onChildClick","hoverChildProps_","hoverKey_","_onChildMouseDown","onChildMouseDown","_onChildMouseEnter","onChildMouseEnter","hoverKey","_onChildMouseLeave","onChildMouseLeave","_onMouseAllow","allowMouse_","_onMouseChangeHandlerRaf","getHoverDistance","latLng","lat","lng","s","distanceToMouse","sort","_getDimensions","componentDidMount","experimental","componentWillUnmount","$geoService","geoService","$onMouseAllow","$prerender","prerender","insideMapPanes","fromLatLngToDivPixel","fromLatLngToCenterPixel","seLatLng","seLat","seLng","fromLatLngToContainerPixel","className","$markerHolderClassName","$hover","$getDimensions","$dimensionKey","propTypes","defaultProps","C","w","L","D","z","includes","indexOf","then","O","isNaN","wrap","tileSize","_minZoom","_maxZoom","latRange","zoom","center","zoomScale","scaleZoom","LN2","project","lngX","latY","unproject","yLat","xLng","worldSize","PI","tan","atan","exp","locationPoint","centerPoint","point","pointLocation","get","set","max","min","scale","_zoom","minZoom","maxZoom","tileZoom","floor","zoomFraction","enumerable","configurable","writable","defineProperty","T","hasSize_","hasView_","transform_","setView","bearing","setViewSize","setMapCanvasProjection","maps_","mapCanvasProjection_","canProject","hasSize","LatLng","fromContainerPixelToLatLng","getWidth","getHeight","getZoom","getCenter","getBounds","map","S","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","E","log2","P","reduce","A","I","N","Z","navigator","userAgent","toLowerCase","isExplorer","isFirefox","isOpera","isChrome","isSafari","U","Function","H","getPrototypeOf","K","addEventListener","removeEventListener","capture","passive","R","G","self","B","W","attachEvent","V","F","$","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","q","__resizeTriggers__","firstElementChild","lastElementChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","offsetWidth","offsetHeight","Y","__resizeRAF__","__resizeLast__","__resizeListeners__","X","J","Q","split","te","oe","animationName","ne","re","ie","se","ae","pe","le","ue","he","_getMinZoom","geoService_","ceil","_computeMinZoom","_mapDomResizeCallback","resetSizeOnIdle_","defaultCenter","map_","trigger","setCenter","resetBoundsOnResize","_setLayers","layers_","setMap","_renderPortal","_getHoverDistance","markersDispatcher_","_initMap","initialized_","defaultZoom","_onBoundsChanged","bootstrapURLKeys","googleMapLoader","heatmapLibrary","mounted_","heatmap","positions","visualization","HeatmapLayer","data","weight","location","draggable","minZoom_","overviewMapControl","streetViewControl","rotateControl","mapTypeControl","styles","featureType","elementType","stylers","visibility","defaultDraggableOption_","Map","googleMapDom_","layerTypes","match","Number","OverlayView","onAdd","screen","overlayViewDivStyle","getPanes","overlayMouseTarget","getProjection","overlay","onRemove","draw","debounced","googleApiLoadedCalled_","_onGoogleApiLoaded","_onChildMouseMove","fireMouseEventOnIdle_","overlay_","onTilesLoaded","_onTilesLoaded","zoomAnimationInProgress_","_onZoomAnimationStart","Date","getTime","zoomControlClickTime_","_setViewSize","setOptions","_onZoomAnimationEnd","dragTime_","mouseInMap_","_onDrag","_onDragEnd","_onMapTypeIdChange","getMapTypeId","catch","onGoogleApiLoaded","hoverDistance","onDrag","onDragEnd","onMapTypeIdChange","onZoomAnimationStart","onZoomAnimationEnd","childMouseDownArgs_","_onChildMouseUp","onChildMouseUp","childMouseUpTime_","onChildMouseMove","fullscreen","webkitIsFullScreen","mozFullScreen","msFullscreenElement","innerWidth","innerHeight","clientWidth","clientHeight","_onWindowResize","_onMapMouseMove","mouseMoveTime_","boundingRect_","currentTarget","getBoundingClientRect","clientX","clientY","_onClick","onClick","_onMapClick","_onMapMouseDownNative","_onMapMouseDown","_onMapMouseDownCapture","_onKeyDownCapture","_isCenterDefined","onChange","onBoundsChange","abs","prevBounds_","centerIsObject_","bounds","nw","sw","marginBounds","size","_registerChild","parentNode","getComputedStyle","getElementsByTagName","styleSheet","cssText","createTextNode","innerHTML","componentDidUpdate","panTo","setZoom","setData","detachEvent","splice","removeChild","shouldUnregisterMapOnUnmount","scrollwheel","clearInstanceListeners","onMouseMove","onMouseDownCapture","yesIWantToUseGoogleMapApiInternals","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","_typeof","obj","Symbol","iterator","value","Collapse","_react","__esModule","_defineProperties","target","descriptor","_setPrototypeOf","setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","_assertThisInitialized","_possibleConstructorReturn","_defineProperty","_React$Component","subClass","superClass","_inherits","Constructor","protoProps","staticProps","_super","_this","_classCallCheck","timeout","container","content","_this$props","isOpened","checkTimeout","containerHeight","contentHeight","isFullyOpened","isFullyClosed","onRest","onWork","onResize","_ref","hasOpened","hasClosed","overflow","_ref2","isOpenining","isClosing","initialStyle","nextProps","_this$props2","theme","some","_this$props3","onRefContainer","collapse","onRefContent","Component","UnmountClosed","_Collapse","_excluded","_excluded2","_extends","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread","getOwnPropertyDescriptors","defineProperties","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_React$PureComponent","rest","isResting","isInitialRender","_this$state","prevProps","_this$state2","getInitialStyle","PureComponent","isObject","extend","noExtend","__swiper__","needsNavigation","params","navigation","nextEl","prevEl","needsPagination","pagination","el","needsScrollbar","scrollbar","uniqueClasses","classNames","classes","trim","unique","paramsList","calcLoopedSlides","slides","swiperParams","slidesPerViewParams","slidesPerView","breakpoints","breakpoint","breakpointOnlyParams","loopedSlides","parseFloat","loopAdditionalSlides","processChildren","child","displayName","slide","slots","slot","foundSlides","updateSwiper","swiper","passedParams","changedParams","scrollbarEl","paginationEl","updateParams","currentParams","virtual","thumbs","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","controller","control","newValue","mod","destroy","enabled","update","lazy","init","updateSize","setTranslate","allowSlideNext","allowSlidePrev","changeDirection","direction","useIsomorphicLayoutEffect","deps","useEffect","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","Swiper","forwardRef","_temp","externalElRef","tag","Tag","wrapperTag","WrapperTag","onSwiper","eventsAssigned","containerClasses","setContainerClasses","useState","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","useRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","_emitClasses","allowedParams","replace","search","substr","getParams","onBeforeBreakpoint","_containerClasses","initSwiper","current","loopCreate","loopDestroy","loop","extendWith","cache","renderExternal","renderExternalUpdate","originalParams","emitSlidesClasses","destroyed","mountSwiper","eventName","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","newKeys","oldKeys","newKey","oldKey","getChangedParams","updateSlides","updateProgress","updateSlidesClasses","parallax","Provider","isHorizontal","rtlTranslate","offset","index","from","to","renderVirtual","modifiedSlides","duplicateSlide","slideDuplicateClass","loopFillGroupWithBlank","blankSlidesNum","slidesPerGroup","blankSlide","slideClass","slideBlankClass","prependSlides","appendSlides","renderLoop","SwiperSlide","externalRef","virtualIndex","slideElRef","slideClasses","setSlideClasses","updateClasses","_s","getSlideClasses","slideData","isActive","isVisible","isDuplicate","isPrev","isNext","renderChildren","ssrDocument","body","activeElement","blur","nodeName","querySelector","querySelectorAll","createEvent","initEvent","childNodes","setAttribute","createElementNS","importNode","hash","host","hostname","href","origin","pathname","protocol","doc","ssrWindow","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","matchMedia","win","Dom7","items","super","proto","makeReactive","arrayFlat","arr","res","arrayFilter","selector","html","toCreate","tempParent","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","Methods","addClass","classList","removeClass","hasClass","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","handleEvent","dom7LiveListeners","proxyListener","dom7Listeners","handler","dom7proxy","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","outerHeight","box","clientTop","clientLeft","scrollY","scrollX","css","prop","each","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","firstChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","closest","find","foundElements","found","methodName","now","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","nextSource","HTMLElement","keysArray","nextIndex","nextKey","desc","varName","varValue","setProperty","animateCSSModeScroll","targetPosition","side","startPosition","translate","time","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","animate","progress","easeProgress","currentPosition","scrollTo","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isWebView","test","calcBrowser","priority","method","eventsListeners","onceHandler","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","eventHandler","_len2","_key2","$el","isVertical","parseInt","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtl","wrongRTL","isVirtual","previousSlidesLength","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","nextSlide","prevSlide","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getTranslate","virtualTranslate","currentTranslate","byController","newProgress","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","step","slideTo","initial","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","transitionStart","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","$selector","blankNode","cloneNode","diff","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","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","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","touchAngle","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","passiveListeners","move","end","cancel","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","directionChanged","needsReLoop","isEnabled","disable","enable","containerEl","currentHeight","points","minRatio","addClasses","suffixes","entries","resultClasses","item","prepareClasses","removeClasses","resizeObserver","createElements","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","swipers","newParams","modules","__modules__","extendParams","defaults","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","slideEl","updates","view","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","deleteProps","static","newDefaults","installModule","prototypeGroup","protoMethod","use","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","Pagination","pfx","bulletSize","bulletElement","clickable","hideOnClick","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","hiddenClass","progressbarFillClass","progressbarOppositeClass","clickableClass","lockClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scaleX","scaleY","paginationHTML","numberOfBullets","checkProps","targetEl","isHidden"],"sourceRoot":""}