{"version":3,"file":"static/chunks/406-6acf5b09673e1d29.js","mappings":"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","sources":["webpack://_N_E/./node_modules/fast-deep-equal/es6/react.js","webpack://_N_E/./node_modules/next/dist/compiled/buffer/index.js","webpack://_N_E/./node_modules/swiper/modules/autoplay.css","webpack://_N_E/./node_modules/swiper/modules/pagination.css","webpack://_N_E/./node_modules/swiper/swiper.css","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/captions/captions.css","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/thumbnails/thumbnails.css","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/styles.css","webpack://_N_E/./node_modules/react-lottie-player/dist/LottiePlayer.modern.js","webpack://_N_E/./node_modules/rfdc/default.js","webpack://_N_E/./node_modules/rfdc/index.js","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/distance.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/pan/PanSession.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/get-context-window.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/pan/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/delay.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/interfaces/single-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/drag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/components/motion/create.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/resolve-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/viewport/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-in-view.mjs","webpack://_N_E/./node_modules/swiper/modules/virtual.mjs","webpack://_N_E/./node_modules/swiper/modules/keyboard.mjs","webpack://_N_E/./node_modules/swiper/modules/mousewheel.mjs","webpack://_N_E/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://_N_E/./node_modules/swiper/modules/navigation.mjs","webpack://_N_E/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://_N_E/./node_modules/swiper/modules/pagination.mjs","webpack://_N_E/./node_modules/swiper/modules/scrollbar.mjs","webpack://_N_E/./node_modules/swiper/modules/parallax.mjs","webpack://_N_E/./node_modules/swiper/modules/zoom.mjs","webpack://_N_E/./node_modules/swiper/modules/controller.mjs","webpack://_N_E/./node_modules/swiper/modules/a11y.mjs","webpack://_N_E/./node_modules/swiper/modules/history.mjs","webpack://_N_E/./node_modules/swiper/modules/hash-navigation.mjs","webpack://_N_E/./node_modules/swiper/modules/autoplay.mjs","webpack://_N_E/./node_modules/swiper/modules/thumbs.mjs","webpack://_N_E/./node_modules/swiper/modules/free-mode.mjs","webpack://_N_E/./node_modules/swiper/shared/effect-init.mjs","webpack://_N_E/./node_modules/swiper/shared/effect-target.mjs","webpack://_N_E/./node_modules/swiper/shared/effect-virtual-transition-end.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-fade.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-cube.mjs","webpack://_N_E/./node_modules/swiper/shared/create-shadow.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-flip.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-coverflow.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-creative.mjs","webpack://_N_E/./node_modules/swiper/modules/effect-cards.mjs","webpack://_N_E/./node_modules/swiper/modules/index.mjs","webpack://_N_E/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://_N_E/./node_modules/swiper/shared/utils.mjs","webpack://_N_E/./node_modules/swiper/shared/swiper-core.mjs","webpack://_N_E/./node_modules/swiper/shared/update-swiper.mjs","webpack://_N_E/./node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://_N_E/./node_modules/swiper/swiper-react.mjs","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/captions/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/fullscreen/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/slideshow/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/thumbnails/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/plugins/zoom/index.js","webpack://_N_E/./node_modules/yet-another-react-lightbox/dist/types.js"],"sourcesContent":["'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n var envHasBigInt64Array = typeof BigInt64Array !== 'undefined';\n\n\nmodule.exports = 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 if ((a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n for (i of a.entries())\n if (!equal(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if ((a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n for (i of a.entries())\n if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\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 (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n continue;\n }\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","(function(){var e={675:function(e,r){\"use strict\";r.byteLength=byteLength;r.toByteArray=toByteArray;r.fromByteArray=fromByteArray;var t=[];var f=[];var n=typeof Uint8Array!==\"undefined\"?Uint8Array:Array;var i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(var o=0,u=i.length;o0){throw new Error(\"Invalid string. Length must be a multiple of 4\")}var t=e.indexOf(\"=\");if(t===-1)t=r;var f=t===r?0:4-t%4;return[t,f]}function byteLength(e){var r=getLens(e);var t=r[0];var f=r[1];return(t+f)*3/4-f}function _byteLength(e,r,t){return(r+t)*3/4-t}function toByteArray(e){var r;var t=getLens(e);var i=t[0];var o=t[1];var u=new n(_byteLength(e,i,o));var a=0;var s=o>0?i-4:i;var h;for(h=0;h>16&255;u[a++]=r>>8&255;u[a++]=r&255}if(o===2){r=f[e.charCodeAt(h)]<<2|f[e.charCodeAt(h+1)]>>4;u[a++]=r&255}if(o===1){r=f[e.charCodeAt(h)]<<10|f[e.charCodeAt(h+1)]<<4|f[e.charCodeAt(h+2)]>>2;u[a++]=r>>8&255;u[a++]=r&255}return u}function tripletToBase64(e){return t[e>>18&63]+t[e>>12&63]+t[e>>6&63]+t[e&63]}function encodeChunk(e,r,t){var f;var n=[];for(var i=r;ia?a:u+o))}if(n===1){r=e[f-1];i.push(t[r>>2]+t[r<<4&63]+\"==\")}else if(n===2){r=(e[f-2]<<8)+e[f-1];i.push(t[r>>10]+t[r>>4&63]+t[r<<2&63]+\"=\")}return i.join(\"\")}},72:function(e,r,t){\"use strict\";\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */var f=t(675);var n=t(783);var i=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null;r.Buffer=Buffer;r.SlowBuffer=SlowBuffer;r.INSPECT_MAX_BYTES=50;var o=2147483647;r.kMaxLength=o;Buffer.TYPED_ARRAY_SUPPORT=typedArraySupport();if(!Buffer.TYPED_ARRAY_SUPPORT&&typeof console!==\"undefined\"&&typeof console.error===\"function\"){console.error(\"This browser lacks typed array (Uint8Array) support which is required by \"+\"`buffer` v5.x. Use `buffer` v4.x if you require old browser support.\")}function typedArraySupport(){try{var e=new Uint8Array(1);var r={foo:function(){return 42}};Object.setPrototypeOf(r,Uint8Array.prototype);Object.setPrototypeOf(e,r);return e.foo()===42}catch(e){return false}}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:true,get:function(){if(!Buffer.isBuffer(this))return undefined;return this.byteOffset}});function createBuffer(e){if(e>o){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}var r=new Uint8Array(e);Object.setPrototypeOf(r,Buffer.prototype);return r}function Buffer(e,r,t){if(typeof e===\"number\"){if(typeof r===\"string\"){throw new TypeError('The \"string\" argument must be of type string. Received type number')}return allocUnsafe(e)}return from(e,r,t)}Buffer.poolSize=8192;function from(e,r,t){if(typeof e===\"string\"){return fromString(e,r)}if(ArrayBuffer.isView(e)){return fromArrayLike(e)}if(e==null){throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}if(isInstance(e,ArrayBuffer)||e&&isInstance(e.buffer,ArrayBuffer)){return fromArrayBuffer(e,r,t)}if(typeof SharedArrayBuffer!==\"undefined\"&&(isInstance(e,SharedArrayBuffer)||e&&isInstance(e.buffer,SharedArrayBuffer))){return fromArrayBuffer(e,r,t)}if(typeof e===\"number\"){throw new TypeError('The \"value\" argument must not be of type number. Received type number')}var f=e.valueOf&&e.valueOf();if(f!=null&&f!==e){return Buffer.from(f,r,t)}var n=fromObject(e);if(n)return n;if(typeof Symbol!==\"undefined\"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]===\"function\"){return Buffer.from(e[Symbol.toPrimitive](\"string\"),r,t)}throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, \"+\"or Array-like Object. Received type \"+typeof e)}Buffer.from=function(e,r,t){return from(e,r,t)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(e){if(typeof e!==\"number\"){throw new TypeError('\"size\" argument must be of type number')}else if(e<0){throw new RangeError('The value \"'+e+'\" is invalid for option \"size\"')}}function alloc(e,r,t){assertSize(e);if(e<=0){return createBuffer(e)}if(r!==undefined){return typeof t===\"string\"?createBuffer(e).fill(r,t):createBuffer(e).fill(r)}return createBuffer(e)}Buffer.alloc=function(e,r,t){return alloc(e,r,t)};function allocUnsafe(e){assertSize(e);return createBuffer(e<0?0:checked(e)|0)}Buffer.allocUnsafe=function(e){return allocUnsafe(e)};Buffer.allocUnsafeSlow=function(e){return allocUnsafe(e)};function fromString(e,r){if(typeof r!==\"string\"||r===\"\"){r=\"utf8\"}if(!Buffer.isEncoding(r)){throw new TypeError(\"Unknown encoding: \"+r)}var t=byteLength(e,r)|0;var f=createBuffer(t);var n=f.write(e,r);if(n!==t){f=f.slice(0,n)}return f}function fromArrayLike(e){var r=e.length<0?0:checked(e.length)|0;var t=createBuffer(r);for(var f=0;f=o){throw new RangeError(\"Attempt to allocate Buffer larger than maximum \"+\"size: 0x\"+o.toString(16)+\" bytes\")}return e|0}function SlowBuffer(e){if(+e!=e){e=0}return Buffer.alloc(+e)}Buffer.isBuffer=function isBuffer(e){return e!=null&&e._isBuffer===true&&e!==Buffer.prototype};Buffer.compare=function compare(e,r){if(isInstance(e,Uint8Array))e=Buffer.from(e,e.offset,e.byteLength);if(isInstance(r,Uint8Array))r=Buffer.from(r,r.offset,r.byteLength);if(!Buffer.isBuffer(e)||!Buffer.isBuffer(r)){throw new TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array')}if(e===r)return 0;var t=e.length;var f=r.length;for(var n=0,i=Math.min(t,f);n2&&arguments[2]===true;if(!f&&t===0)return 0;var n=false;for(;;){switch(r){case\"ascii\":case\"latin1\":case\"binary\":return t;case\"utf8\":case\"utf-8\":return utf8ToBytes(e).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return t*2;case\"hex\":return t>>>1;case\"base64\":return base64ToBytes(e).length;default:if(n){return f?-1:utf8ToBytes(e).length}r=(\"\"+r).toLowerCase();n=true}}}Buffer.byteLength=byteLength;function slowToString(e,r,t){var f=false;if(r===undefined||r<0){r=0}if(r>this.length){return\"\"}if(t===undefined||t>this.length){t=this.length}if(t<=0){return\"\"}t>>>=0;r>>>=0;if(t<=r){return\"\"}if(!e)e=\"utf8\";while(true){switch(e){case\"hex\":return hexSlice(this,r,t);case\"utf8\":case\"utf-8\":return utf8Slice(this,r,t);case\"ascii\":return asciiSlice(this,r,t);case\"latin1\":case\"binary\":return latin1Slice(this,r,t);case\"base64\":return base64Slice(this,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,r,t);default:if(f)throw new TypeError(\"Unknown encoding: \"+e);e=(e+\"\").toLowerCase();f=true}}}Buffer.prototype._isBuffer=true;function swap(e,r,t){var f=e[r];e[r]=e[t];e[t]=f}Buffer.prototype.swap16=function swap16(){var e=this.length;if(e%2!==0){throw new RangeError(\"Buffer size must be a multiple of 16-bits\")}for(var r=0;rt)e+=\" ... \";return\"\"};if(i){Buffer.prototype[i]=Buffer.prototype.inspect}Buffer.prototype.compare=function compare(e,r,t,f,n){if(isInstance(e,Uint8Array)){e=Buffer.from(e,e.offset,e.byteLength)}if(!Buffer.isBuffer(e)){throw new TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. '+\"Received type \"+typeof e)}if(r===undefined){r=0}if(t===undefined){t=e?e.length:0}if(f===undefined){f=0}if(n===undefined){n=this.length}if(r<0||t>e.length||f<0||n>this.length){throw new RangeError(\"out of range index\")}if(f>=n&&r>=t){return 0}if(f>=n){return-1}if(r>=t){return 1}r>>>=0;t>>>=0;f>>>=0;n>>>=0;if(this===e)return 0;var i=n-f;var o=t-r;var u=Math.min(i,o);var a=this.slice(f,n);var s=e.slice(r,t);for(var h=0;h2147483647){t=2147483647}else if(t<-2147483648){t=-2147483648}t=+t;if(numberIsNaN(t)){t=n?0:e.length-1}if(t<0)t=e.length+t;if(t>=e.length){if(n)return-1;else t=e.length-1}else if(t<0){if(n)t=0;else return-1}if(typeof r===\"string\"){r=Buffer.from(r,f)}if(Buffer.isBuffer(r)){if(r.length===0){return-1}return arrayIndexOf(e,r,t,f,n)}else if(typeof r===\"number\"){r=r&255;if(typeof Uint8Array.prototype.indexOf===\"function\"){if(n){return Uint8Array.prototype.indexOf.call(e,r,t)}else{return Uint8Array.prototype.lastIndexOf.call(e,r,t)}}return arrayIndexOf(e,[r],t,f,n)}throw new TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(e,r,t,f,n){var i=1;var o=e.length;var u=r.length;if(f!==undefined){f=String(f).toLowerCase();if(f===\"ucs2\"||f===\"ucs-2\"||f===\"utf16le\"||f===\"utf-16le\"){if(e.length<2||r.length<2){return-1}i=2;o/=2;u/=2;t/=2}}function read(e,r){if(i===1){return e[r]}else{return e.readUInt16BE(r*i)}}var a;if(n){var s=-1;for(a=t;ao)t=o-u;for(a=t;a>=0;a--){var h=true;for(var c=0;cn){f=n}}var i=r.length;if(f>i/2){f=i/2}for(var o=0;o>>0;if(isFinite(t)){t=t>>>0;if(f===undefined)f=\"utf8\"}else{f=t;t=undefined}}else{throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\")}var n=this.length-r;if(t===undefined||t>n)t=n;if(e.length>0&&(t<0||r<0)||r>this.length){throw new RangeError(\"Attempt to write outside buffer bounds\")}if(!f)f=\"utf8\";var i=false;for(;;){switch(f){case\"hex\":return hexWrite(this,e,r,t);case\"utf8\":case\"utf-8\":return utf8Write(this,e,r,t);case\"ascii\":return asciiWrite(this,e,r,t);case\"latin1\":case\"binary\":return latin1Write(this,e,r,t);case\"base64\":return base64Write(this,e,r,t);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,e,r,t);default:if(i)throw new TypeError(\"Unknown encoding: \"+f);f=(\"\"+f).toLowerCase();i=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(e,r,t){if(r===0&&t===e.length){return f.fromByteArray(e)}else{return f.fromByteArray(e.slice(r,t))}}function utf8Slice(e,r,t){t=Math.min(e.length,t);var f=[];var n=r;while(n239?4:i>223?3:i>191?2:1;if(n+u<=t){var a,s,h,c;switch(u){case 1:if(i<128){o=i}break;case 2:a=e[n+1];if((a&192)===128){c=(i&31)<<6|a&63;if(c>127){o=c}}break;case 3:a=e[n+1];s=e[n+2];if((a&192)===128&&(s&192)===128){c=(i&15)<<12|(a&63)<<6|s&63;if(c>2047&&(c<55296||c>57343)){o=c}}break;case 4:a=e[n+1];s=e[n+2];h=e[n+3];if((a&192)===128&&(s&192)===128&&(h&192)===128){c=(i&15)<<18|(a&63)<<12|(s&63)<<6|h&63;if(c>65535&&c<1114112){o=c}}}}if(o===null){o=65533;u=1}else if(o>65535){o-=65536;f.push(o>>>10&1023|55296);o=56320|o&1023}f.push(o);n+=u}return decodeCodePointsArray(f)}var u=4096;function decodeCodePointsArray(e){var r=e.length;if(r<=u){return String.fromCharCode.apply(String,e)}var t=\"\";var f=0;while(ff)t=f;var n=\"\";for(var i=r;it){e=t}if(r<0){r+=t;if(r<0)r=0}else if(r>t){r=t}if(rt)throw new RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUIntLE=function readUIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i>>0;r=r>>>0;if(!t){checkOffset(e,r,this.length)}var f=this[e+--r];var n=1;while(r>0&&(n*=256)){f+=this[e+--r]*n}return f};Buffer.prototype.readUInt8=function readUInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);return this[e]};Buffer.prototype.readUInt16LE=function readUInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]|this[e+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);return this[e]<<8|this[e+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};Buffer.prototype.readIntLE=function readIntLE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=this[e];var n=1;var i=0;while(++i=n)f-=Math.pow(2,8*r);return f};Buffer.prototype.readIntBE=function readIntBE(e,r,t){e=e>>>0;r=r>>>0;if(!t)checkOffset(e,r,this.length);var f=r;var n=1;var i=this[e+--f];while(f>0&&(n*=256)){i+=this[e+--f]*n}n*=128;if(i>=n)i-=Math.pow(2,8*r);return i};Buffer.prototype.readInt8=function readInt8(e,r){e=e>>>0;if(!r)checkOffset(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e]|this[e+1]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt16BE=function readInt16BE(e,r){e=e>>>0;if(!r)checkOffset(e,2,this.length);var t=this[e+1]|this[e]<<8;return t&32768?t|4294901760:t};Buffer.prototype.readInt32LE=function readInt32LE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};Buffer.prototype.readFloatLE=function readFloatLE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(e,r){e=e>>>0;if(!r)checkOffset(e,4,this.length);return n.read(this,e,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(e,r){e=e>>>0;if(!r)checkOffset(e,8,this.length);return n.read(this,e,false,52,8)};function checkInt(e,r,t,f,n,i){if(!Buffer.isBuffer(e))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(r>n||re.length)throw new RangeError(\"Index out of range\")}Buffer.prototype.writeUIntLE=function writeUIntLE(e,r,t,f){e=+e;r=r>>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=1;var o=0;this[r]=e&255;while(++o>>0;t=t>>>0;if(!f){var n=Math.pow(2,8*t)-1;checkInt(this,e,r,t,n,0)}var i=t-1;var o=1;this[r+i]=e&255;while(--i>=0&&(o*=256)){this[r+i]=e/o&255}return r+t};Buffer.prototype.writeUInt8=function writeUInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,255,0);this[r]=e&255;return r+1};Buffer.prototype.writeUInt16LE=function writeUInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,65535,0);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeUInt32LE=function writeUInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r+3]=e>>>24;this[r+2]=e>>>16;this[r+1]=e>>>8;this[r]=e&255;return r+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,4294967295,0);this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};Buffer.prototype.writeIntLE=function writeIntLE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=0;var o=1;var u=0;this[r]=e&255;while(++i>0)-u&255}return r+t};Buffer.prototype.writeIntBE=function writeIntBE(e,r,t,f){e=+e;r=r>>>0;if(!f){var n=Math.pow(2,8*t-1);checkInt(this,e,r,t,n-1,-n)}var i=t-1;var o=1;var u=0;this[r+i]=e&255;while(--i>=0&&(o*=256)){if(e<0&&u===0&&this[r+i+1]!==0){u=1}this[r+i]=(e/o>>0)-u&255}return r+t};Buffer.prototype.writeInt8=function writeInt8(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,1,127,-128);if(e<0)e=255+e+1;this[r]=e&255;return r+1};Buffer.prototype.writeInt16LE=function writeInt16LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e&255;this[r+1]=e>>>8;return r+2};Buffer.prototype.writeInt16BE=function writeInt16BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,2,32767,-32768);this[r]=e>>>8;this[r+1]=e&255;return r+2};Buffer.prototype.writeInt32LE=function writeInt32LE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);this[r]=e&255;this[r+1]=e>>>8;this[r+2]=e>>>16;this[r+3]=e>>>24;return r+4};Buffer.prototype.writeInt32BE=function writeInt32BE(e,r,t){e=+e;r=r>>>0;if(!t)checkInt(this,e,r,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;this[r]=e>>>24;this[r+1]=e>>>16;this[r+2]=e>>>8;this[r+3]=e&255;return r+4};function checkIEEE754(e,r,t,f,n,i){if(t+f>e.length)throw new RangeError(\"Index out of range\");if(t<0)throw new RangeError(\"Index out of range\")}function writeFloat(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,4,34028234663852886e22,-34028234663852886e22)}n.write(e,r,t,f,23,4);return t+4}Buffer.prototype.writeFloatLE=function writeFloatLE(e,r,t){return writeFloat(this,e,r,true,t)};Buffer.prototype.writeFloatBE=function writeFloatBE(e,r,t){return writeFloat(this,e,r,false,t)};function writeDouble(e,r,t,f,i){r=+r;t=t>>>0;if(!i){checkIEEE754(e,r,t,8,17976931348623157e292,-17976931348623157e292)}n.write(e,r,t,f,52,8);return t+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(e,r,t){return writeDouble(this,e,r,true,t)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(e,r,t){return writeDouble(this,e,r,false,t)};Buffer.prototype.copy=function copy(e,r,t,f){if(!Buffer.isBuffer(e))throw new TypeError(\"argument should be a Buffer\");if(!t)t=0;if(!f&&f!==0)f=this.length;if(r>=e.length)r=e.length;if(!r)r=0;if(f>0&&f=this.length)throw new RangeError(\"Index out of range\");if(f<0)throw new RangeError(\"sourceEnd out of bounds\");if(f>this.length)f=this.length;if(e.length-r=0;--i){e[i+r]=this[i+t]}}else{Uint8Array.prototype.set.call(e,this.subarray(t,f),r)}return n};Buffer.prototype.fill=function fill(e,r,t,f){if(typeof e===\"string\"){if(typeof r===\"string\"){f=r;r=0;t=this.length}else if(typeof t===\"string\"){f=t;t=this.length}if(f!==undefined&&typeof f!==\"string\"){throw new TypeError(\"encoding must be a string\")}if(typeof f===\"string\"&&!Buffer.isEncoding(f)){throw new TypeError(\"Unknown encoding: \"+f)}if(e.length===1){var n=e.charCodeAt(0);if(f===\"utf8\"&&n<128||f===\"latin1\"){e=n}}}else if(typeof e===\"number\"){e=e&255}else if(typeof e===\"boolean\"){e=Number(e)}if(r<0||this.length>>0;t=t===undefined?this.length:t>>>0;if(!e)e=0;var i;if(typeof e===\"number\"){for(i=r;i55295&&t<57344){if(!n){if(t>56319){if((r-=3)>-1)i.push(239,191,189);continue}else if(o+1===f){if((r-=3)>-1)i.push(239,191,189);continue}n=t;continue}if(t<56320){if((r-=3)>-1)i.push(239,191,189);n=t;continue}t=(n-55296<<10|t-56320)+65536}else if(n){if((r-=3)>-1)i.push(239,191,189)}n=null;if(t<128){if((r-=1)<0)break;i.push(t)}else if(t<2048){if((r-=2)<0)break;i.push(t>>6|192,t&63|128)}else if(t<65536){if((r-=3)<0)break;i.push(t>>12|224,t>>6&63|128,t&63|128)}else if(t<1114112){if((r-=4)<0)break;i.push(t>>18|240,t>>12&63|128,t>>6&63|128,t&63|128)}else{throw new Error(\"Invalid code point\")}}return i}function asciiToBytes(e){var r=[];for(var t=0;t>8;n=t%256;i.push(n);i.push(f)}return i}function base64ToBytes(e){return f.toByteArray(base64clean(e))}function blitBuffer(e,r,t,f){for(var n=0;n=r.length||n>=e.length)break;r[n+t]=e[n]}return n}function isInstance(e,r){return e instanceof r||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===r.name}function numberIsNaN(e){return e!==e}var s=function(){var e=\"0123456789abcdef\";var r=new Array(256);for(var t=0;t<16;++t){var f=t*16;for(var n=0;n<16;++n){r[f+n]=e[t]+e[n]}}return r}()},783:function(e,r){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nr.read=function(e,r,t,f,n){var i,o;var u=n*8-f-1;var a=(1<>1;var h=-7;var c=t?n-1:0;var l=t?-1:1;var p=e[r+c];c+=l;i=p&(1<<-h)-1;p>>=-h;h+=u;for(;h>0;i=i*256+e[r+c],c+=l,h-=8){}o=i&(1<<-h)-1;i>>=-h;h+=f;for(;h>0;o=o*256+e[r+c],c+=l,h-=8){}if(i===0){i=1-s}else if(i===a){return o?NaN:(p?-1:1)*Infinity}else{o=o+Math.pow(2,f);i=i-s}return(p?-1:1)*o*Math.pow(2,i-f)};r.write=function(e,r,t,f,n,i){var o,u,a;var s=i*8-n-1;var h=(1<>1;var l=n===23?Math.pow(2,-24)-Math.pow(2,-77):0;var p=f?0:i-1;var y=f?1:-1;var g=r<0||r===0&&1/r<0?1:0;r=Math.abs(r);if(isNaN(r)||r===Infinity){u=isNaN(r)?1:0;o=h}else{o=Math.floor(Math.log(r)/Math.LN2);if(r*(a=Math.pow(2,-o))<1){o--;a*=2}if(o+c>=1){r+=l/a}else{r+=l*Math.pow(2,1-c)}if(r*a>=2){o++;a/=2}if(o+c>=h){u=0;o=h}else if(o+c>=1){u=(r*a-1)*Math.pow(2,n);o=o+c}else{u=r*Math.pow(2,c-1)*Math.pow(2,n);o=0}}for(;n>=8;e[t+p]=u&255,p+=y,u/=256,n-=8){}o=o<0;e[t+p]=o&255,p+=y,o/=256,s-=8){}e[t+p-y]|=g*128}}};var r={};function __nccwpck_require__(t){var f=r[t];if(f!==undefined){return f.exports}var n=r[t]={exports:{}};var i=true;try{e[t](n,n.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return n.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var t=__nccwpck_require__(72);module.exports=t})();","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","// extracted by mini-css-extract-plugin","import lottie from 'lottie-web';\nimport React, { memo, forwardRef, useRef, useCallback, useState, useEffect } from 'react';\nimport equal from 'fast-deep-equal/es6/react';\nimport clone from 'rfdc/default';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\n\nvar emptyObject = {};\nvar noOp = function noOp() {\n return undefined;\n};\nvar makeLottiePlayer = function makeLottiePlayer(_ref) {\n var loadAnimation = _ref.loadAnimation;\n var Lottie = memo(forwardRef(function (params, forwardedRef) {\n var _params$play = params.play,\n play = _params$play === void 0 ? null : _params$play,\n _params$speed = params.speed,\n speed = _params$speed === void 0 ? 1 : _params$speed,\n _params$direction = params.direction,\n direction = _params$direction === void 0 ? 1 : _params$direction,\n _params$segments = params.segments,\n segmentsIn = _params$segments === void 0 ? null : _params$segments,\n _params$goTo = params.goTo,\n goTo = _params$goTo === void 0 ? null : _params$goTo,\n _params$useSubframes = params.useSubframes,\n useSubframes = _params$useSubframes === void 0 ? true : _params$useSubframes,\n _params$renderer = params.renderer,\n renderer = _params$renderer === void 0 ? 'svg' : _params$renderer,\n _params$loop = params.loop,\n loop = _params$loop === void 0 ? true : _params$loop,\n _params$rendererSetti = params.rendererSettings,\n rendererSettingsIn = _params$rendererSetti === void 0 ? emptyObject : _params$rendererSetti,\n audioFactory = params.audioFactory,\n _params$onLoad = params.onLoad,\n onLoad = _params$onLoad === void 0 ? noOp : _params$onLoad,\n _params$onComplete = params.onComplete,\n onComplete = _params$onComplete === void 0 ? noOp : _params$onComplete,\n _params$onLoopComplet = params.onLoopComplete,\n onLoopComplete = _params$onLoopComplet === void 0 ? noOp : _params$onLoopComplet,\n _params$onEnterFrame = params.onEnterFrame,\n onEnterFrame = _params$onEnterFrame === void 0 ? noOp : _params$onEnterFrame,\n _params$onSegmentStar = params.onSegmentStart,\n onSegmentStart = _params$onSegmentStar === void 0 ? noOp : _params$onSegmentStar,\n props = _objectWithoutPropertiesLoose(params, [\"play\", \"speed\", \"direction\", \"segments\", \"goTo\", \"useSubframes\", \"renderer\", \"loop\", \"rendererSettings\", \"audioFactory\", \"onLoad\", \"onComplete\", \"onLoopComplete\", \"onEnterFrame\", \"onSegmentStart\"]);\n var propsFiltered = props;\n var animationData;\n var path;\n if ('animationData' in props) {\n var _props = props;\n animationData = _props.animationData;\n propsFiltered = _objectWithoutPropertiesLoose(_props, [\"animationData\"]);\n }\n if ('path' in props) {\n var _props2 = props;\n path = _props2.path;\n propsFiltered = _objectWithoutPropertiesLoose(_props2, [\"path\"]);\n }\n var animElementRef = useRef(null);\n var animRef = useRef();\n var getAnim = useCallback(function () {\n if (animRef.current == null) throw new Error('Lottie ref is not set');\n return animRef.current;\n }, []);\n var _useState = useState(false),\n ready = _useState[0],\n setReady = _useState[1];\n var _useState2 = useState(segmentsIn),\n segments = _useState2[0],\n setSegments = _useState2[1];\n useEffect(function () {\n if (!equal(segments, segmentsIn)) setSegments(segmentsIn);\n }, [segmentsIn, segments]);\n var _useState3 = useState(rendererSettingsIn),\n rendererSettings = _useState3[0],\n setRendererSettings = _useState3[1];\n useEffect(function () {\n if (!equal(rendererSettings, rendererSettingsIn)) setRendererSettings(rendererSettingsIn);\n }, [rendererSettingsIn, rendererSettings]);\n useEffect(function () {\n return function () {\n return getAnim().removeEventListener('complete', onComplete);\n };\n }, [getAnim, onComplete]);\n useEffect(function () {\n return function () {\n return getAnim().removeEventListener('loopComplete', onLoopComplete);\n };\n }, [getAnim, onLoopComplete]);\n useEffect(function () {\n return function () {\n return getAnim().removeEventListener('enterFrame', onEnterFrame);\n };\n }, [getAnim, onEnterFrame]);\n useEffect(function () {\n return function () {\n return getAnim().removeEventListener('segmentStart', onSegmentStart);\n };\n }, [getAnim, onSegmentStart]);\n useEffect(function () {\n return function () {\n return getAnim().removeEventListener('DOMLoaded', onLoad);\n };\n }, [getAnim, onLoad]);\n var setLottieRefs = useCallback(function (newRef) {\n animRef.current = newRef;\n if (typeof forwardedRef === 'function') {\n forwardedRef(newRef);\n } else if (forwardedRef !== undefined && forwardedRef !== null) {\n forwardedRef.current = newRef;\n }\n }, [forwardedRef]);\n useEffect(function () {\n function parseAnimationData() {\n if (animationData == null || typeof animationData !== 'object') return animationData;\n if ('default' in animationData && typeof animationData[\"default\"] === 'object') {\n return clone(animationData[\"default\"]);\n }\n return clone(animationData);\n }\n if (animElementRef.current == null) throw new Error('animElementRef is not set');\n var lottie = loadAnimation(_extends({\n animationData: parseAnimationData(),\n path: path,\n container: animElementRef.current,\n renderer: renderer,\n loop: false,\n autoplay: false,\n rendererSettings: rendererSettings\n }, audioFactory ? {\n audioFactory: audioFactory\n } : {}));\n setLottieRefs(lottie);\n var onDomLoaded = function onDomLoaded() {\n return setReady(true);\n };\n getAnim().addEventListener('DOMLoaded', onDomLoaded);\n return function () {\n getAnim().removeEventListener('DOMLoaded', onDomLoaded);\n setReady(false);\n getAnim().destroy();\n setLottieRefs(undefined);\n };\n }, [loop, renderer, rendererSettings, animationData, path, audioFactory, setLottieRefs, getAnim]);\n useEffect(function () {\n getAnim().addEventListener('DOMLoaded', onLoad);\n }, [getAnim, onLoad]);\n useEffect(function () {\n getAnim().addEventListener('complete', onComplete);\n }, [getAnim, onComplete]);\n useEffect(function () {\n getAnim().addEventListener('loopComplete', onLoopComplete);\n }, [getAnim, onLoopComplete]);\n useEffect(function () {\n getAnim().addEventListener('enterFrame', onEnterFrame);\n }, [getAnim, onEnterFrame]);\n useEffect(function () {\n getAnim().addEventListener('segmentStart', onSegmentStart);\n }, [getAnim, onSegmentStart]);\n useEffect(function () {\n if (!ready) return;\n getAnim().loop = loop;\n }, [ready, loop, getAnim]);\n var wasPlayingSegmentsRef = useRef(false);\n useEffect(function () {\n if (!ready) return;\n function playReverse(lastFrame) {\n getAnim().goToAndPlay(lastFrame, true);\n getAnim().setDirection(direction);\n }\n if (play === true) {\n var force = true;\n if (segments) {\n getAnim().playSegments(segments, force);\n wasPlayingSegmentsRef.current = true;\n if (direction === -1) {\n var lastFrame = typeof segments[1] === 'number' ? segments[1] : segments[1][1];\n playReverse(lastFrame);\n }\n } else {\n if (wasPlayingSegmentsRef.current) getAnim().resetSegments(force);\n wasPlayingSegmentsRef.current = false;\n if (direction === -1) {\n var _lastFrame = getAnim().getDuration(true);\n playReverse(_lastFrame);\n } else {\n getAnim().play();\n }\n }\n } else if (play === false) {\n getAnim().pause();\n }\n }, [play, segments, ready, direction, getAnim]);\n useEffect(function () {\n if (!ready) return;\n if (Number.isNaN(speed)) return;\n getAnim().setSpeed(speed);\n }, [speed, ready, getAnim]);\n useEffect(function () {\n if (!ready) return;\n getAnim().setDirection(direction);\n }, [direction, getAnim, ready]);\n useEffect(function () {\n if (!ready) return;\n if (goTo == null) return;\n var isFrame = true;\n if (play) getAnim().goToAndPlay(goTo, isFrame);else getAnim().goToAndStop(goTo, isFrame);\n }, [getAnim, goTo, play, ready]);\n useEffect(function () {\n if (getAnim().setSubframe) getAnim().setSubframe(useSubframes);\n }, [getAnim, useSubframes]);\n return (\n /*#__PURE__*/\n React.createElement(\"div\", _extends({}, propsFiltered, {\n ref: animElementRef\n }))\n );\n }));\n return Lottie;\n};\n\nvar LottiePlayer = makeLottiePlayer(lottie);\n\nexport default LottiePlayer;\n//# sourceMappingURL=LottiePlayer.modern.js.map\n","'use strict'\n\nmodule.exports = require('./index.js')()\n","'use strict'\nmodule.exports = rfdc\n\nfunction copyBuffer (cur) {\n if (cur instanceof Buffer) {\n return Buffer.from(cur)\n }\n\n return new cur.constructor(cur.buffer.slice(), cur.byteOffset, cur.length)\n}\n\nfunction rfdc (opts) {\n opts = opts || {}\n if (opts.circles) return rfdcCircles(opts)\n\n const constructorHandlers = new Map()\n constructorHandlers.set(Date, (o) => new Date(o))\n constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)))\n constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)))\n if (opts.constructorHandlers) {\n for (const handler of opts.constructorHandlers) {\n constructorHandlers.set(handler[0], handler[1])\n }\n }\n\n let handler = null\n\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n const keys = Object.keys(a)\n const a2 = new Array(keys.length)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n const cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n a2[k] = fn(cur)\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, clone)\n }\n const o2 = {}\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, clone)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = clone(cur)\n }\n }\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, cloneProto)\n }\n const o2 = {}\n for (const k in o) {\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, cloneProto)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n return o2\n }\n}\n\nfunction rfdcCircles (opts) {\n const refs = []\n const refsNew = []\n\n const constructorHandlers = new Map()\n constructorHandlers.set(Date, (o) => new Date(o))\n constructorHandlers.set(Map, (o, fn) => new Map(cloneArray(Array.from(o), fn)))\n constructorHandlers.set(Set, (o, fn) => new Set(cloneArray(Array.from(o), fn)))\n if (opts.constructorHandlers) {\n for (const handler of opts.constructorHandlers) {\n constructorHandlers.set(handler[0], handler[1])\n }\n }\n\n let handler = null\n return opts.proto ? cloneProto : clone\n\n function cloneArray (a, fn) {\n const keys = Object.keys(a)\n const a2 = new Array(keys.length)\n for (let i = 0; i < keys.length; i++) {\n const k = keys[i]\n const cur = a[k]\n if (typeof cur !== 'object' || cur === null) {\n a2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n a2[k] = handler(cur, fn)\n } else if (ArrayBuffer.isView(cur)) {\n a2[k] = copyBuffer(cur)\n } else {\n const index = refs.indexOf(cur)\n if (index !== -1) {\n a2[k] = refsNew[index]\n } else {\n a2[k] = fn(cur)\n }\n }\n }\n return a2\n }\n\n function clone (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, clone)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, clone)\n }\n const o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (const k in o) {\n if (Object.hasOwnProperty.call(o, k) === false) continue\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, clone)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n const i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = clone(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n\n function cloneProto (o) {\n if (typeof o !== 'object' || o === null) return o\n if (Array.isArray(o)) return cloneArray(o, cloneProto)\n if (o.constructor !== Object && (handler = constructorHandlers.get(o.constructor))) {\n return handler(o, cloneProto)\n }\n const o2 = {}\n refs.push(o)\n refsNew.push(o2)\n for (const k in o) {\n const cur = o[k]\n if (typeof cur !== 'object' || cur === null) {\n o2[k] = cur\n } else if (cur.constructor !== Object && (handler = constructorHandlers.get(cur.constructor))) {\n o2[k] = handler(cur, cloneProto)\n } else if (ArrayBuffer.isView(cur)) {\n o2[k] = copyBuffer(cur)\n } else {\n const i = refs.indexOf(cur)\n if (i !== -1) {\n o2[k] = refsNew[i]\n } else {\n o2[k] = cloneProto(cur)\n }\n }\n }\n refs.pop()\n refsNew.pop()\n return o2\n }\n}\n","const distance = (a, b) => Math.abs(a - b);\nfunction distance2D(a, b) {\n // Multi-dimensional\n const xDelta = distance(a.x, b.x);\n const yDelta = distance(a.y, b.y);\n return Math.sqrt(xDelta ** 2 + yDelta ** 2);\n}\n\nexport { distance, distance2D };\n","import { extractEventInfo } from '../../events/event-info.mjs';\nimport { secondsToMilliseconds, millisecondsToSeconds } from '../../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { pipe } from '../../utils/pipe.mjs';\nimport { distance2D } from '../../utils/distance.mjs';\nimport { isPrimaryPointer } from '../../events/utils/is-primary-pointer.mjs';\nimport { frame, cancelFrame, frameData } from '../../frameloop/frame.mjs';\n\n/**\n * @internal\n */\nclass PanSession {\n constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false } = {}) {\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n /**\n * @internal\n */\n this.contextWindow = window;\n this.updatePoint = () => {\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const info = getPanInfo(this.lastMoveEventInfo, this.history);\n const isPanStarted = this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n const isDistancePastThreshold = distance2D(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n const { point } = info;\n const { timestamp } = frameData;\n this.history.push({ ...point, timestamp });\n const { onStart, onMove } = this.handlers;\n if (!isPanStarted) {\n onStart && onStart(this.lastMoveEvent, info);\n this.startEvent = this.lastMoveEvent;\n }\n onMove && onMove(this.lastMoveEvent, info);\n };\n this.handlePointerMove = (event, info) => {\n this.lastMoveEvent = event;\n this.lastMoveEventInfo = transformPoint(info, this.transformPagePoint);\n // Throttle mouse move event to once per frame\n frame.update(this.updatePoint, true);\n };\n this.handlePointerUp = (event, info) => {\n this.end();\n const { onEnd, onSessionEnd, resumeAnimation } = this.handlers;\n if (this.dragSnapToOrigin)\n resumeAnimation && resumeAnimation();\n if (!(this.lastMoveEvent && this.lastMoveEventInfo))\n return;\n const panInfo = getPanInfo(event.type === \"pointercancel\"\n ? this.lastMoveEventInfo\n : transformPoint(info, this.transformPagePoint), this.history);\n if (this.startEvent && onEnd) {\n onEnd(event, panInfo);\n }\n onSessionEnd && onSessionEnd(event, panInfo);\n };\n // If we have more than one touch, don't start detecting this gesture\n if (!isPrimaryPointer(event))\n return;\n this.dragSnapToOrigin = dragSnapToOrigin;\n this.handlers = handlers;\n this.transformPagePoint = transformPagePoint;\n this.contextWindow = contextWindow || window;\n const info = extractEventInfo(event);\n const initialInfo = transformPoint(info, this.transformPagePoint);\n const { point } = initialInfo;\n const { timestamp } = frameData;\n this.history = [{ ...point, timestamp }];\n const { onSessionStart } = handlers;\n onSessionStart &&\n onSessionStart(event, getPanInfo(initialInfo, this.history));\n this.removeListeners = pipe(addPointerEvent(this.contextWindow, \"pointermove\", this.handlePointerMove), addPointerEvent(this.contextWindow, \"pointerup\", this.handlePointerUp), addPointerEvent(this.contextWindow, \"pointercancel\", this.handlePointerUp));\n }\n updateHandlers(handlers) {\n this.handlers = handlers;\n }\n end() {\n this.removeListeners && this.removeListeners();\n cancelFrame(this.updatePoint);\n }\n}\nfunction transformPoint(info, transformPagePoint) {\n return transformPagePoint ? { point: transformPagePoint(info.point) } : info;\n}\nfunction subtractPoint(a, b) {\n return { x: a.x - b.x, y: a.y - b.y };\n}\nfunction getPanInfo({ point }, history) {\n return {\n point,\n delta: subtractPoint(point, lastDevicePoint(history)),\n offset: subtractPoint(point, startDevicePoint(history)),\n velocity: getVelocity(history, 0.1),\n };\n}\nfunction startDevicePoint(history) {\n return history[0];\n}\nfunction lastDevicePoint(history) {\n return history[history.length - 1];\n}\nfunction getVelocity(history, timeDelta) {\n if (history.length < 2) {\n return { x: 0, y: 0 };\n }\n let i = history.length - 1;\n let timestampedPoint = null;\n const lastPoint = lastDevicePoint(history);\n while (i >= 0) {\n timestampedPoint = history[i];\n if (lastPoint.timestamp - timestampedPoint.timestamp >\n secondsToMilliseconds(timeDelta)) {\n break;\n }\n i--;\n }\n if (!timestampedPoint) {\n return { x: 0, y: 0 };\n }\n const time = millisecondsToSeconds(lastPoint.timestamp - timestampedPoint.timestamp);\n if (time === 0) {\n return { x: 0, y: 0 };\n }\n const currentVelocity = {\n x: (lastPoint.x - timestampedPoint.x) / time,\n y: (lastPoint.y - timestampedPoint.y) / time,\n };\n if (currentVelocity.x === Infinity) {\n currentVelocity.x = 0;\n }\n if (currentVelocity.y === Infinity) {\n currentVelocity.y = 0;\n }\n return currentVelocity;\n}\n\nexport { PanSession };\n","import { mixNumber } from '../../utils/mix/number.mjs';\n\nconst SCALE_PRECISION = 0.0001;\nconst SCALE_MIN = 1 - SCALE_PRECISION;\nconst SCALE_MAX = 1 + SCALE_PRECISION;\nconst TRANSLATE_PRECISION = 0.01;\nconst TRANSLATE_MIN = 0 - TRANSLATE_PRECISION;\nconst TRANSLATE_MAX = 0 + TRANSLATE_PRECISION;\nfunction calcLength(axis) {\n return axis.max - axis.min;\n}\nfunction isNear(value, target, maxDistance) {\n return Math.abs(value - target) <= maxDistance;\n}\nfunction calcAxisDelta(delta, source, target, origin = 0.5) {\n delta.origin = origin;\n delta.originPoint = mixNumber(source.min, source.max, delta.origin);\n delta.scale = calcLength(target) / calcLength(source);\n delta.translate =\n mixNumber(target.min, target.max, delta.origin) - delta.originPoint;\n if ((delta.scale >= SCALE_MIN && delta.scale <= SCALE_MAX) ||\n isNaN(delta.scale)) {\n delta.scale = 1.0;\n }\n if ((delta.translate >= TRANSLATE_MIN &&\n delta.translate <= TRANSLATE_MAX) ||\n isNaN(delta.translate)) {\n delta.translate = 0.0;\n }\n}\nfunction calcBoxDelta(delta, source, target, origin) {\n calcAxisDelta(delta.x, source.x, target.x, origin ? origin.originX : undefined);\n calcAxisDelta(delta.y, source.y, target.y, origin ? origin.originY : undefined);\n}\nfunction calcRelativeAxis(target, relative, parent) {\n target.min = parent.min + relative.min;\n target.max = target.min + calcLength(relative);\n}\nfunction calcRelativeBox(target, relative, parent) {\n calcRelativeAxis(target.x, relative.x, parent.x);\n calcRelativeAxis(target.y, relative.y, parent.y);\n}\nfunction calcRelativeAxisPosition(target, layout, parent) {\n target.min = layout.min - parent.min;\n target.max = target.min + calcLength(layout);\n}\nfunction calcRelativePosition(target, layout, parent) {\n calcRelativeAxisPosition(target.x, layout.x, parent.x);\n calcRelativeAxisPosition(target.y, layout.y, parent.y);\n}\n\nexport { calcAxisDelta, calcBoxDelta, calcLength, calcRelativeAxis, calcRelativeAxisPosition, calcRelativeBox, calcRelativePosition, isNear };\n","import { progress } from '../../../utils/progress.mjs';\nimport { calcLength } from '../../../projection/geometry/delta-calc.mjs';\nimport { clamp } from '../../../utils/clamp.mjs';\nimport { mixNumber } from '../../../utils/mix/number.mjs';\n\n/**\n * Apply constraints to a point. These constraints are both physical along an\n * axis, and an elastic factor that determines how much to constrain the point\n * by if it does lie outside the defined parameters.\n */\nfunction applyConstraints(point, { min, max }, elastic) {\n if (min !== undefined && point < min) {\n // If we have a min point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(min, point, elastic.min)\n : Math.max(point, min);\n }\n else if (max !== undefined && point > max) {\n // If we have a max point defined, and this is outside of that, constrain\n point = elastic\n ? mixNumber(max, point, elastic.max)\n : Math.min(point, max);\n }\n return point;\n}\n/**\n * Calculate constraints in terms of the viewport when defined relatively to the\n * measured axis. This is measured from the nearest edge, so a max constraint of 200\n * on an axis with a max value of 300 would return a constraint of 500 - axis length\n */\nfunction calcRelativeAxisConstraints(axis, min, max) {\n return {\n min: min !== undefined ? axis.min + min : undefined,\n max: max !== undefined\n ? axis.max + max - (axis.max - axis.min)\n : undefined,\n };\n}\n/**\n * Calculate constraints in terms of the viewport when\n * defined relatively to the measured bounding box.\n */\nfunction calcRelativeConstraints(layoutBox, { top, left, bottom, right }) {\n return {\n x: calcRelativeAxisConstraints(layoutBox.x, left, right),\n y: calcRelativeAxisConstraints(layoutBox.y, top, bottom),\n };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative axis\n */\nfunction calcViewportAxisConstraints(layoutAxis, constraintsAxis) {\n let min = constraintsAxis.min - layoutAxis.min;\n let max = constraintsAxis.max - layoutAxis.max;\n // If the constraints axis is actually smaller than the layout axis then we can\n // flip the constraints\n if (constraintsAxis.max - constraintsAxis.min <\n layoutAxis.max - layoutAxis.min) {\n [min, max] = [max, min];\n }\n return { min, max };\n}\n/**\n * Calculate viewport constraints when defined as another viewport-relative box\n */\nfunction calcViewportConstraints(layoutBox, constraintsBox) {\n return {\n x: calcViewportAxisConstraints(layoutBox.x, constraintsBox.x),\n y: calcViewportAxisConstraints(layoutBox.y, constraintsBox.y),\n };\n}\n/**\n * Calculate a transform origin relative to the source axis, between 0-1, that results\n * in an asthetically pleasing scale/transform needed to project from source to target.\n */\nfunction calcOrigin(source, target) {\n let origin = 0.5;\n const sourceLength = calcLength(source);\n const targetLength = calcLength(target);\n if (targetLength > sourceLength) {\n origin = progress(target.min, target.max - sourceLength, source.min);\n }\n else if (sourceLength > targetLength) {\n origin = progress(source.min, source.max - targetLength, target.min);\n }\n return clamp(0, 1, origin);\n}\n/**\n * Rebase the calculated viewport constraints relative to the layout.min point.\n */\nfunction rebaseAxisConstraints(layout, constraints) {\n const relativeConstraints = {};\n if (constraints.min !== undefined) {\n relativeConstraints.min = constraints.min - layout.min;\n }\n if (constraints.max !== undefined) {\n relativeConstraints.max = constraints.max - layout.min;\n }\n return relativeConstraints;\n}\nconst defaultElastic = 0.35;\n/**\n * Accepts a dragElastic prop and returns resolved elastic values for each axis.\n */\nfunction resolveDragElastic(dragElastic = defaultElastic) {\n if (dragElastic === false) {\n dragElastic = 0;\n }\n else if (dragElastic === true) {\n dragElastic = defaultElastic;\n }\n return {\n x: resolveAxisElastic(dragElastic, \"left\", \"right\"),\n y: resolveAxisElastic(dragElastic, \"top\", \"bottom\"),\n };\n}\nfunction resolveAxisElastic(dragElastic, minLabel, maxLabel) {\n return {\n min: resolvePointElastic(dragElastic, minLabel),\n max: resolvePointElastic(dragElastic, maxLabel),\n };\n}\nfunction resolvePointElastic(dragElastic, label) {\n return typeof dragElastic === \"number\"\n ? dragElastic\n : dragElastic[label] || 0;\n}\n\nexport { applyConstraints, calcOrigin, calcRelativeAxisConstraints, calcRelativeConstraints, calcViewportAxisConstraints, calcViewportConstraints, defaultElastic, rebaseAxisConstraints, resolveAxisElastic, resolveDragElastic, resolvePointElastic };\n","function eachAxis(callback) {\n return [callback(\"x\"), callback(\"y\")];\n}\n\nexport { eachAxis };\n","// Fixes https://github.com/framer/motion/issues/2270\nconst getContextWindow = ({ current }) => {\n return current ? current.ownerDocument.defaultView : null;\n};\n\nexport { getContextWindow };\n","import { invariant } from '../../utils/errors.mjs';\nimport { PanSession } from '../pan/PanSession.mjs';\nimport { getGlobalLock } from './utils/lock.mjs';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { applyConstraints, calcRelativeConstraints, resolveDragElastic, rebaseAxisConstraints, calcViewportConstraints, calcOrigin, defaultElastic } from './utils/constraints.mjs';\nimport { createBox } from '../../projection/geometry/models.mjs';\nimport { eachAxis } from '../../projection/utils/each-axis.mjs';\nimport { measurePageBox } from '../../projection/utils/measure.mjs';\nimport { extractEventInfo } from '../../events/event-info.mjs';\nimport { convertBoxToBoundingBox, convertBoundingBoxToBox } from '../../projection/geometry/conversion.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\nimport { calcLength } from '../../projection/geometry/delta-calc.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { animateMotionValue } from '../../animation/interfaces/motion-value.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { addValueToWillChange } from '../../value/use-will-change/add-will-change.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst elementDragControls = new WeakMap();\n/**\n *\n */\n// let latestPointerEvent: PointerEvent\nclass VisualElementDragControls {\n constructor(visualElement) {\n // This is a reference to the global drag gesture lock, ensuring only one component\n // can \"capture\" the drag of one or both axes.\n // TODO: Look into moving this into pansession?\n this.openGlobalLock = null;\n this.isDragging = false;\n this.currentDirection = null;\n this.originPoint = { x: 0, y: 0 };\n /**\n * The permitted boundaries of travel, in pixels.\n */\n this.constraints = false;\n this.hasMutatedConstraints = false;\n /**\n * The per-axis resolved elastic values.\n */\n this.elastic = createBox();\n this.visualElement = visualElement;\n }\n start(originEvent, { snapToCursor = false } = {}) {\n /**\n * Don't start dragging if this component is exiting\n */\n const { presenceContext } = this.visualElement;\n if (presenceContext && presenceContext.isPresent === false)\n return;\n const onSessionStart = (event) => {\n const { dragSnapToOrigin } = this.getProps();\n // Stop or pause any animations on both axis values immediately. This allows the user to throw and catch\n // the component.\n dragSnapToOrigin ? this.pauseAnimation() : this.stopAnimation();\n if (snapToCursor) {\n this.snapToCursor(extractEventInfo(event, \"page\").point);\n }\n };\n const onStart = (event, info) => {\n var _a;\n // Attempt to grab the global drag gesture lock - maybe make this part of PanSession\n const { drag, dragPropagation, onDragStart } = this.getProps();\n if (drag && !dragPropagation) {\n if (this.openGlobalLock)\n this.openGlobalLock();\n this.openGlobalLock = getGlobalLock(drag);\n // If we don 't have the lock, don't start dragging\n if (!this.openGlobalLock)\n return;\n }\n this.isDragging = true;\n this.currentDirection = null;\n this.resolveConstraints();\n if (this.visualElement.projection) {\n this.visualElement.projection.isAnimationBlocked = true;\n this.visualElement.projection.target = undefined;\n }\n /**\n * Record gesture origin\n */\n eachAxis((axis) => {\n let current = this.getAxisMotionValue(axis).get() || 0;\n /**\n * If the MotionValue is a percentage value convert to px\n */\n if (percent.test(current)) {\n const { projection } = this.visualElement;\n if (projection && projection.layout) {\n const measuredAxis = projection.layout.layoutBox[axis];\n if (measuredAxis) {\n const length = calcLength(measuredAxis);\n current = length * (parseFloat(current) / 100);\n }\n }\n }\n this.originPoint[axis] = current;\n });\n // Fire onDragStart event\n if (onDragStart) {\n frame.postRender(() => onDragStart(event, info));\n }\n (_a = this.removeWillChange) === null || _a === void 0 ? void 0 : _a.call(this);\n this.removeWillChange = addValueToWillChange(this.visualElement, \"transform\");\n const { animationState } = this.visualElement;\n animationState && animationState.setActive(\"whileDrag\", true);\n };\n const onMove = (event, info) => {\n // latestPointerEvent = event\n const { dragPropagation, dragDirectionLock, onDirectionLock, onDrag, } = this.getProps();\n // If we didn't successfully receive the gesture lock, early return.\n if (!dragPropagation && !this.openGlobalLock)\n return;\n const { offset } = info;\n // Attempt to detect drag direction if directionLock is true\n if (dragDirectionLock && this.currentDirection === null) {\n this.currentDirection = getCurrentDirection(offset);\n // If we've successfully set a direction, notify listener\n if (this.currentDirection !== null) {\n onDirectionLock && onDirectionLock(this.currentDirection);\n }\n return;\n }\n // Update each point with the latest position\n this.updateAxis(\"x\", info.point, offset);\n this.updateAxis(\"y\", info.point, offset);\n /**\n * Ideally we would leave the renderer to fire naturally at the end of\n * this frame but if the element is about to change layout as the result\n * of a re-render we want to ensure the browser can read the latest\n * bounding box to ensure the pointer and element don't fall out of sync.\n */\n this.visualElement.render();\n /**\n * This must fire after the render call as it might trigger a state\n * change which itself might trigger a layout update.\n */\n onDrag && onDrag(event, info);\n };\n const onSessionEnd = (event, info) => this.stop(event, info);\n const resumeAnimation = () => eachAxis((axis) => {\n var _a;\n return this.getAnimationState(axis) === \"paused\" &&\n ((_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.play());\n });\n const { dragSnapToOrigin } = this.getProps();\n this.panSession = new PanSession(originEvent, {\n onSessionStart,\n onStart,\n onMove,\n onSessionEnd,\n resumeAnimation,\n }, {\n transformPagePoint: this.visualElement.getTransformPagePoint(),\n dragSnapToOrigin,\n contextWindow: getContextWindow(this.visualElement),\n });\n }\n stop(event, info) {\n var _a;\n (_a = this.removeWillChange) === null || _a === void 0 ? void 0 : _a.call(this);\n const isDragging = this.isDragging;\n this.cancel();\n if (!isDragging)\n return;\n const { velocity } = info;\n this.startAnimation(velocity);\n const { onDragEnd } = this.getProps();\n if (onDragEnd) {\n frame.postRender(() => onDragEnd(event, info));\n }\n }\n cancel() {\n this.isDragging = false;\n const { projection, animationState } = this.visualElement;\n if (projection) {\n projection.isAnimationBlocked = false;\n }\n this.panSession && this.panSession.end();\n this.panSession = undefined;\n const { dragPropagation } = this.getProps();\n if (!dragPropagation && this.openGlobalLock) {\n this.openGlobalLock();\n this.openGlobalLock = null;\n }\n animationState && animationState.setActive(\"whileDrag\", false);\n }\n updateAxis(axis, _point, offset) {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!offset || !shouldDrag(axis, drag, this.currentDirection))\n return;\n const axisValue = this.getAxisMotionValue(axis);\n let next = this.originPoint[axis] + offset[axis];\n // Apply constraints\n if (this.constraints && this.constraints[axis]) {\n next = applyConstraints(next, this.constraints[axis], this.elastic[axis]);\n }\n axisValue.set(next);\n }\n resolveConstraints() {\n var _a;\n const { dragConstraints, dragElastic } = this.getProps();\n const layout = this.visualElement.projection &&\n !this.visualElement.projection.layout\n ? this.visualElement.projection.measure(false)\n : (_a = this.visualElement.projection) === null || _a === void 0 ? void 0 : _a.layout;\n const prevConstraints = this.constraints;\n if (dragConstraints && isRefObject(dragConstraints)) {\n if (!this.constraints) {\n this.constraints = this.resolveRefConstraints();\n }\n }\n else {\n if (dragConstraints && layout) {\n this.constraints = calcRelativeConstraints(layout.layoutBox, dragConstraints);\n }\n else {\n this.constraints = false;\n }\n }\n this.elastic = resolveDragElastic(dragElastic);\n /**\n * If we're outputting to external MotionValues, we want to rebase the measured constraints\n * from viewport-relative to component-relative.\n */\n if (prevConstraints !== this.constraints &&\n layout &&\n this.constraints &&\n !this.hasMutatedConstraints) {\n eachAxis((axis) => {\n if (this.constraints !== false &&\n this.getAxisMotionValue(axis)) {\n this.constraints[axis] = rebaseAxisConstraints(layout.layoutBox[axis], this.constraints[axis]);\n }\n });\n }\n }\n resolveRefConstraints() {\n const { dragConstraints: constraints, onMeasureDragConstraints } = this.getProps();\n if (!constraints || !isRefObject(constraints))\n return false;\n const constraintsElement = constraints.current;\n invariant(constraintsElement !== null, \"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.\");\n const { projection } = this.visualElement;\n // TODO\n if (!projection || !projection.layout)\n return false;\n const constraintsBox = measurePageBox(constraintsElement, projection.root, this.visualElement.getTransformPagePoint());\n let measuredConstraints = calcViewportConstraints(projection.layout.layoutBox, constraintsBox);\n /**\n * If there's an onMeasureDragConstraints listener we call it and\n * if different constraints are returned, set constraints to that\n */\n if (onMeasureDragConstraints) {\n const userConstraints = onMeasureDragConstraints(convertBoxToBoundingBox(measuredConstraints));\n this.hasMutatedConstraints = !!userConstraints;\n if (userConstraints) {\n measuredConstraints = convertBoundingBoxToBox(userConstraints);\n }\n }\n return measuredConstraints;\n }\n startAnimation(velocity) {\n const { drag, dragMomentum, dragElastic, dragTransition, dragSnapToOrigin, onDragTransitionEnd, } = this.getProps();\n const constraints = this.constraints || {};\n const momentumAnimations = eachAxis((axis) => {\n if (!shouldDrag(axis, drag, this.currentDirection)) {\n return;\n }\n let transition = (constraints && constraints[axis]) || {};\n if (dragSnapToOrigin)\n transition = { min: 0, max: 0 };\n /**\n * Overdamp the boundary spring if `dragElastic` is disabled. There's still a frame\n * of spring animations so we should look into adding a disable spring option to `inertia`.\n * We could do something here where we affect the `bounceStiffness` and `bounceDamping`\n * using the value of `dragElastic`.\n */\n const bounceStiffness = dragElastic ? 200 : 1000000;\n const bounceDamping = dragElastic ? 40 : 10000000;\n const inertia = {\n type: \"inertia\",\n velocity: dragMomentum ? velocity[axis] : 0,\n bounceStiffness,\n bounceDamping,\n timeConstant: 750,\n restDelta: 1,\n restSpeed: 10,\n ...dragTransition,\n ...transition,\n };\n // If we're not animating on an externally-provided `MotionValue` we can use the\n // component's animation controls which will handle interactions with whileHover (etc),\n // otherwise we just have to animate the `MotionValue` itself.\n return this.startAxisValueAnimation(axis, inertia);\n });\n // Run all animations and then resolve the new drag constraints.\n return Promise.all(momentumAnimations).then(onDragTransitionEnd);\n }\n startAxisValueAnimation(axis, transition) {\n const axisValue = this.getAxisMotionValue(axis);\n return axisValue.start(animateMotionValue(axis, axisValue, 0, transition, this.visualElement, false, addValueToWillChange(this.visualElement, axis)));\n }\n stopAnimation() {\n eachAxis((axis) => this.getAxisMotionValue(axis).stop());\n }\n pauseAnimation() {\n eachAxis((axis) => { var _a; return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.pause(); });\n }\n getAnimationState(axis) {\n var _a;\n return (_a = this.getAxisMotionValue(axis).animation) === null || _a === void 0 ? void 0 : _a.state;\n }\n /**\n * Drag works differently depending on which props are provided.\n *\n * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.\n * - Otherwise, we apply the delta to the x/y motion values.\n */\n getAxisMotionValue(axis) {\n const dragKey = `_drag${axis.toUpperCase()}`;\n const props = this.visualElement.getProps();\n const externalMotionValue = props[dragKey];\n return externalMotionValue\n ? externalMotionValue\n : this.visualElement.getValue(axis, (props.initial\n ? props.initial[axis]\n : undefined) || 0);\n }\n snapToCursor(point) {\n eachAxis((axis) => {\n const { drag } = this.getProps();\n // If we're not dragging this axis, do an early return.\n if (!shouldDrag(axis, drag, this.currentDirection))\n return;\n const { projection } = this.visualElement;\n const axisValue = this.getAxisMotionValue(axis);\n if (projection && projection.layout) {\n const { min, max } = projection.layout.layoutBox[axis];\n axisValue.set(point[axis] - mixNumber(min, max, 0.5));\n }\n });\n }\n /**\n * When the viewport resizes we want to check if the measured constraints\n * have changed and, if so, reposition the element within those new constraints\n * relative to where it was before the resize.\n */\n scalePositionWithinConstraints() {\n if (!this.visualElement.current)\n return;\n const { drag, dragConstraints } = this.getProps();\n const { projection } = this.visualElement;\n if (!isRefObject(dragConstraints) || !projection || !this.constraints)\n return;\n /**\n * Stop current animations as there can be visual glitching if we try to do\n * this mid-animation\n */\n this.stopAnimation();\n /**\n * Record the relative position of the dragged element relative to the\n * constraints box and save as a progress value.\n */\n const boxProgress = { x: 0, y: 0 };\n eachAxis((axis) => {\n const axisValue = this.getAxisMotionValue(axis);\n if (axisValue && this.constraints !== false) {\n const latest = axisValue.get();\n boxProgress[axis] = calcOrigin({ min: latest, max: latest }, this.constraints[axis]);\n }\n });\n /**\n * Update the layout of this element and resolve the latest drag constraints\n */\n const { transformTemplate } = this.visualElement.getProps();\n this.visualElement.current.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n this.resolveConstraints();\n /**\n * For each axis, calculate the current progress of the layout axis\n * within the new constraints.\n */\n eachAxis((axis) => {\n if (!shouldDrag(axis, drag, null))\n return;\n /**\n * Calculate a new transform based on the previous box progress\n */\n const axisValue = this.getAxisMotionValue(axis);\n const { min, max } = this.constraints[axis];\n axisValue.set(mixNumber(min, max, boxProgress[axis]));\n });\n }\n addListeners() {\n if (!this.visualElement.current)\n return;\n elementDragControls.set(this.visualElement, this);\n const element = this.visualElement.current;\n /**\n * Attach a pointerdown event listener on this DOM element to initiate drag tracking.\n */\n const stopPointerListener = addPointerEvent(element, \"pointerdown\", (event) => {\n const { drag, dragListener = true } = this.getProps();\n drag && dragListener && this.start(event);\n });\n const measureDragConstraints = () => {\n const { dragConstraints } = this.getProps();\n if (isRefObject(dragConstraints) && dragConstraints.current) {\n this.constraints = this.resolveRefConstraints();\n }\n };\n const { projection } = this.visualElement;\n const stopMeasureLayoutListener = projection.addEventListener(\"measure\", measureDragConstraints);\n if (projection && !projection.layout) {\n projection.root && projection.root.updateScroll();\n projection.updateLayout();\n }\n frame.read(measureDragConstraints);\n /**\n * Attach a window resize listener to scale the draggable target within its defined\n * constraints as the window resizes.\n */\n const stopResizeListener = addDomEvent(window, \"resize\", () => this.scalePositionWithinConstraints());\n /**\n * If the element's layout changes, calculate the delta and apply that to\n * the drag gesture's origin point.\n */\n const stopLayoutUpdateListener = projection.addEventListener(\"didUpdate\", (({ delta, hasLayoutChanged }) => {\n if (this.isDragging && hasLayoutChanged) {\n eachAxis((axis) => {\n const motionValue = this.getAxisMotionValue(axis);\n if (!motionValue)\n return;\n this.originPoint[axis] += delta[axis].translate;\n motionValue.set(motionValue.get() + delta[axis].translate);\n });\n this.visualElement.render();\n }\n }));\n return () => {\n stopResizeListener();\n stopPointerListener();\n stopMeasureLayoutListener();\n stopLayoutUpdateListener && stopLayoutUpdateListener();\n };\n }\n getProps() {\n const props = this.visualElement.getProps();\n const { drag = false, dragDirectionLock = false, dragPropagation = false, dragConstraints = false, dragElastic = defaultElastic, dragMomentum = true, } = props;\n return {\n ...props,\n drag,\n dragDirectionLock,\n dragPropagation,\n dragConstraints,\n dragElastic,\n dragMomentum,\n };\n }\n}\nfunction shouldDrag(direction, drag, currentDirection) {\n return ((drag === true || drag === direction) &&\n (currentDirection === null || currentDirection === direction));\n}\n/**\n * Based on an x/y offset determine the current drag direction. If both axis' offsets are lower\n * than the provided threshold, return `null`.\n *\n * @param offset - The x/y offset from origin.\n * @param lockThreshold - (Optional) - the minimum absolute offset before we can determine a drag direction.\n */\nfunction getCurrentDirection(offset, lockThreshold = 10) {\n let direction = null;\n if (Math.abs(offset.y) > lockThreshold) {\n direction = \"y\";\n }\n else if (Math.abs(offset.x) > lockThreshold) {\n direction = \"x\";\n }\n return direction;\n}\n\nexport { VisualElementDragControls, elementDragControls };\n","import { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { VisualElementDragControls } from './VisualElementDragControls.mjs';\n\nclass DragGesture extends Feature {\n constructor(node) {\n super(node);\n this.removeGroupControls = noop;\n this.removeListeners = noop;\n this.controls = new VisualElementDragControls(node);\n }\n mount() {\n // If we've been provided a DragControls for manual control over the drag gesture,\n // subscribe this component to it on mount.\n const { dragControls } = this.node.getProps();\n if (dragControls) {\n this.removeGroupControls = dragControls.subscribe(this.controls);\n }\n this.removeListeners = this.controls.addListeners() || noop;\n }\n unmount() {\n this.removeGroupControls();\n this.removeListeners();\n }\n}\n\nexport { DragGesture };\n","import { PanSession } from './PanSession.mjs';\nimport { addPointerEvent } from '../../events/add-pointer-event.mjs';\nimport { Feature } from '../../motion/features/Feature.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { getContextWindow } from '../../utils/get-context-window.mjs';\nimport { frame } from '../../frameloop/frame.mjs';\n\nconst asyncHandler = (handler) => (event, info) => {\n if (handler) {\n frame.postRender(() => handler(event, info));\n }\n};\nclass PanGesture extends Feature {\n constructor() {\n super(...arguments);\n this.removePointerDownListener = noop;\n }\n onPointerDown(pointerDownEvent) {\n this.session = new PanSession(pointerDownEvent, this.createPanHandlers(), {\n transformPagePoint: this.node.getTransformPagePoint(),\n contextWindow: getContextWindow(this.node),\n });\n }\n createPanHandlers() {\n const { onPanSessionStart, onPanStart, onPan, onPanEnd } = this.node.getProps();\n return {\n onSessionStart: asyncHandler(onPanSessionStart),\n onStart: asyncHandler(onPanStart),\n onMove: onPan,\n onEnd: (event, info) => {\n delete this.session;\n if (onPanEnd) {\n frame.postRender(() => onPanEnd(event, info));\n }\n },\n };\n }\n mount() {\n this.removePointerDownListener = addPointerEvent(this.node.current, \"pointerdown\", (event) => this.onPointerDown(event));\n }\n update() {\n this.session && this.session.updateHandlers(this.createPanHandlers());\n }\n unmount() {\n this.removePointerDownListener();\n this.session && this.session.end();\n }\n}\n\nexport { PanGesture };\n","import { useContext, useId, useEffect, useCallback } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n const context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n const { isPresent, onExitComplete, register } = context;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n const id = useId();\n useEffect(() => register(id), []);\n const safeToRemove = useCallback(() => onExitComplete && onExitComplete(id), [id, onExitComplete]);\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nconst globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","import { px } from '../../value/types/numbers/units.mjs';\n\nfunction pixelsToPercent(pixels, axis) {\n if (axis.max === axis.min)\n return 0;\n return (pixels / (axis.max - axis.min)) * 100;\n}\n/**\n * We always correct borderRadius as a percentage rather than pixels to reduce paints.\n * For example, if you are projecting a box that is 100px wide with a 10px borderRadius\n * into a box that is 200px wide with a 20px borderRadius, that is actually a 10%\n * borderRadius in both states. If we animate between the two in pixels that will trigger\n * a paint each time. If we animate between the two in percentage we'll avoid a paint.\n */\nconst correctBorderRadius = {\n correct: (latest, node) => {\n if (!node.target)\n return latest;\n /**\n * If latest is a string, if it's a percentage we can return immediately as it's\n * going to be stretched appropriately. Otherwise, if it's a pixel, convert it to a number.\n */\n if (typeof latest === \"string\") {\n if (px.test(latest)) {\n latest = parseFloat(latest);\n }\n else {\n return latest;\n }\n }\n /**\n * If latest is a number, it's a pixel value. We use the current viewportBox to calculate that\n * pixel value as a percentage of each axis\n */\n const x = pixelsToPercent(latest, node.target.x);\n const y = pixelsToPercent(latest, node.target.y);\n return `${x}% ${y}%`;\n },\n};\n\nexport { correctBorderRadius, pixelsToPercent };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { complex } from '../../value/types/complex/index.mjs';\n\nconst correctBoxShadow = {\n correct: (latest, { treeScale, projectionDelta }) => {\n const original = latest;\n const shadow = complex.parse(latest);\n // TODO: Doesn't support multiple shadows\n if (shadow.length > 5)\n return original;\n const template = complex.createTransformer(latest);\n const offset = typeof shadow[0] !== \"number\" ? 1 : 0;\n // Calculate the overall context scale\n const xScale = projectionDelta.x.scale * treeScale.x;\n const yScale = projectionDelta.y.scale * treeScale.y;\n shadow[0 + offset] /= xScale;\n shadow[1 + offset] /= yScale;\n /**\n * Ideally we'd correct x and y scales individually, but because blur and\n * spread apply to both we have to take a scale average and apply that instead.\n * We could potentially improve the outcome of this by incorporating the ratio between\n * the two scales.\n */\n const averageScale = mixNumber(xScale, yScale, 0.5);\n // Blur\n if (typeof shadow[2 + offset] === \"number\")\n shadow[2 + offset] /= averageScale;\n // Spread\n if (typeof shadow[3 + offset] === \"number\")\n shadow[3 + offset] /= averageScale;\n return template(shadow);\n },\n};\n\nexport { correctBoxShadow };\n","\"use client\";\nimport { jsx } from 'react/jsx-runtime';\nimport { useContext, Component } from 'react';\nimport { usePresence } from '../../../components/AnimatePresence/use-presence.mjs';\nimport { LayoutGroupContext } from '../../../context/LayoutGroupContext.mjs';\nimport { SwitchLayoutGroupContext } from '../../../context/SwitchLayoutGroupContext.mjs';\nimport { globalProjectionState } from '../../../projection/node/state.mjs';\nimport { correctBorderRadius } from '../../../projection/styles/scale-border-radius.mjs';\nimport { correctBoxShadow } from '../../../projection/styles/scale-box-shadow.mjs';\nimport { addScaleCorrector } from '../../../projection/styles/scale-correction.mjs';\nimport { microtask } from '../../../frameloop/microtask.mjs';\nimport { frame } from '../../../frameloop/frame.mjs';\n\nclass MeasureLayoutWithContext extends Component {\n /**\n * This only mounts projection nodes for components that\n * need measuring, we might want to do it for all components\n * in order to incorporate transforms\n */\n componentDidMount() {\n const { visualElement, layoutGroup, switchLayoutGroup, layoutId } = this.props;\n const { projection } = visualElement;\n addScaleCorrector(defaultScaleCorrectors);\n if (projection) {\n if (layoutGroup.group)\n layoutGroup.group.add(projection);\n if (switchLayoutGroup && switchLayoutGroup.register && layoutId) {\n switchLayoutGroup.register(projection);\n }\n projection.root.didUpdate();\n projection.addEventListener(\"animationComplete\", () => {\n this.safeToRemove();\n });\n projection.setOptions({\n ...projection.options,\n onExitComplete: () => this.safeToRemove(),\n });\n }\n globalProjectionState.hasEverUpdated = true;\n }\n getSnapshotBeforeUpdate(prevProps) {\n const { layoutDependency, visualElement, drag, isPresent } = this.props;\n const projection = visualElement.projection;\n if (!projection)\n return null;\n /**\n * TODO: We use this data in relegate to determine whether to\n * promote a previous element. There's no guarantee its presence data\n * will have updated by this point - if a bug like this arises it will\n * have to be that we markForRelegation and then find a new lead some other way,\n * perhaps in didUpdate\n */\n projection.isPresent = isPresent;\n if (drag ||\n prevProps.layoutDependency !== layoutDependency ||\n layoutDependency === undefined) {\n projection.willUpdate();\n }\n else {\n this.safeToRemove();\n }\n if (prevProps.isPresent !== isPresent) {\n if (isPresent) {\n projection.promote();\n }\n else if (!projection.relegate()) {\n /**\n * If there's another stack member taking over from this one,\n * it's in charge of the exit animation and therefore should\n * be in charge of the safe to remove. Otherwise we call it here.\n */\n frame.postRender(() => {\n const stack = projection.getStack();\n if (!stack || !stack.members.length) {\n this.safeToRemove();\n }\n });\n }\n }\n return null;\n }\n componentDidUpdate() {\n const { projection } = this.props.visualElement;\n if (projection) {\n projection.root.didUpdate();\n microtask.postRender(() => {\n if (!projection.currentAnimation && projection.isLead()) {\n this.safeToRemove();\n }\n });\n }\n }\n componentWillUnmount() {\n const { visualElement, layoutGroup, switchLayoutGroup: promoteContext, } = this.props;\n const { projection } = visualElement;\n if (projection) {\n projection.scheduleCheckAfterUnmount();\n if (layoutGroup && layoutGroup.group)\n layoutGroup.group.remove(projection);\n if (promoteContext && promoteContext.deregister)\n promoteContext.deregister(projection);\n }\n }\n safeToRemove() {\n const { safeToRemove } = this.props;\n safeToRemove && safeToRemove();\n }\n render() {\n return null;\n }\n}\nfunction MeasureLayout(props) {\n const [isPresent, safeToRemove] = usePresence();\n const layoutGroup = useContext(LayoutGroupContext);\n return (jsx(MeasureLayoutWithContext, { ...props, layoutGroup: layoutGroup, switchLayoutGroup: useContext(SwitchLayoutGroupContext), isPresent: isPresent, safeToRemove: safeToRemove }));\n}\nconst defaultScaleCorrectors = {\n borderRadius: {\n ...correctBorderRadius,\n applyTo: [\n \"borderTopLeftRadius\",\n \"borderTopRightRadius\",\n \"borderBottomLeftRadius\",\n \"borderBottomRightRadius\",\n ],\n },\n borderTopLeftRadius: correctBorderRadius,\n borderTopRightRadius: correctBorderRadius,\n borderBottomLeftRadius: correctBorderRadius,\n borderBottomRightRadius: correctBorderRadius,\n boxShadow: correctBoxShadow,\n};\n\nexport { MeasureLayout };\n","import { circOut } from '../../easing/circ.mjs';\nimport { progress } from '../../utils/progress.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { percent, px } from '../../value/types/numbers/units.mjs';\n\nconst borders = [\"TopLeft\", \"TopRight\", \"BottomLeft\", \"BottomRight\"];\nconst numBorders = borders.length;\nconst asNumber = (value) => typeof value === \"string\" ? parseFloat(value) : value;\nconst isPx = (value) => typeof value === \"number\" || px.test(value);\nfunction mixValues(target, follow, lead, progress, shouldCrossfadeOpacity, isOnlyMember) {\n if (shouldCrossfadeOpacity) {\n target.opacity = mixNumber(0, \n // TODO Reinstate this if only child\n lead.opacity !== undefined ? lead.opacity : 1, easeCrossfadeIn(progress));\n target.opacityExit = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, 0, easeCrossfadeOut(progress));\n }\n else if (isOnlyMember) {\n target.opacity = mixNumber(follow.opacity !== undefined ? follow.opacity : 1, lead.opacity !== undefined ? lead.opacity : 1, progress);\n }\n /**\n * Mix border radius\n */\n for (let i = 0; i < numBorders; i++) {\n const borderLabel = `border${borders[i]}Radius`;\n let followRadius = getRadius(follow, borderLabel);\n let leadRadius = getRadius(lead, borderLabel);\n if (followRadius === undefined && leadRadius === undefined)\n continue;\n followRadius || (followRadius = 0);\n leadRadius || (leadRadius = 0);\n const canMix = followRadius === 0 ||\n leadRadius === 0 ||\n isPx(followRadius) === isPx(leadRadius);\n if (canMix) {\n target[borderLabel] = Math.max(mixNumber(asNumber(followRadius), asNumber(leadRadius), progress), 0);\n if (percent.test(leadRadius) || percent.test(followRadius)) {\n target[borderLabel] += \"%\";\n }\n }\n else {\n target[borderLabel] = leadRadius;\n }\n }\n /**\n * Mix rotation\n */\n if (follow.rotate || lead.rotate) {\n target.rotate = mixNumber(follow.rotate || 0, lead.rotate || 0, progress);\n }\n}\nfunction getRadius(values, radiusName) {\n return values[radiusName] !== undefined\n ? values[radiusName]\n : values.borderRadius;\n}\n// /**\n// * We only want to mix the background color if there's a follow element\n// * that we're not crossfading opacity between. For instance with switch\n// * AnimateSharedLayout animations, this helps the illusion of a continuous\n// * element being animated but also cuts down on the number of paints triggered\n// * for elements where opacity is doing that work for us.\n// */\n// if (\n// !hasFollowElement &&\n// latestLeadValues.backgroundColor &&\n// latestFollowValues.backgroundColor\n// ) {\n// /**\n// * This isn't ideal performance-wise as mixColor is creating a new function every frame.\n// * We could probably create a mixer that runs at the start of the animation but\n// * the idea behind the crossfader is that it runs dynamically between two potentially\n// * changing targets (ie opacity or borderRadius may be animating independently via variants)\n// */\n// leadState.backgroundColor = followState.backgroundColor = mixColor(\n// latestFollowValues.backgroundColor as string,\n// latestLeadValues.backgroundColor as string\n// )(p)\n// }\nconst easeCrossfadeIn = /*@__PURE__*/ compress(0, 0.5, circOut);\nconst easeCrossfadeOut = /*@__PURE__*/ compress(0.5, 0.95, noop);\nfunction compress(min, max, easing) {\n return (p) => {\n // Could replace ifs with clamp\n if (p < min)\n return 0;\n if (p > max)\n return 1;\n return easing(progress(min, max, p));\n };\n}\n\nexport { mixValues };\n","/**\n * Reset an axis to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisInto(axis, originAxis) {\n axis.min = originAxis.min;\n axis.max = originAxis.max;\n}\n/**\n * Reset a box to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyBoxInto(box, originBox) {\n copyAxisInto(box.x, originBox.x);\n copyAxisInto(box.y, originBox.y);\n}\n/**\n * Reset a delta to the provided origin box.\n *\n * This is a mutative operation.\n */\nfunction copyAxisDeltaInto(delta, originDelta) {\n delta.translate = originDelta.translate;\n delta.scale = originDelta.scale;\n delta.originPoint = originDelta.originPoint;\n delta.origin = originDelta.origin;\n}\n\nexport { copyAxisDeltaInto, copyAxisInto, copyBoxInto };\n","import { mixNumber } from '../../utils/mix/number.mjs';\nimport { percent } from '../../value/types/numbers/units.mjs';\nimport { scalePoint } from './delta-apply.mjs';\n\n/**\n * Remove a delta from a point. This is essentially the steps of applyPointDelta in reverse\n */\nfunction removePointDelta(point, translate, scale, originPoint, boxScale) {\n point -= translate;\n point = scalePoint(point, 1 / scale, originPoint);\n if (boxScale !== undefined) {\n point = scalePoint(point, 1 / boxScale, originPoint);\n }\n return point;\n}\n/**\n * Remove a delta from an axis. This is essentially the steps of applyAxisDelta in reverse\n */\nfunction removeAxisDelta(axis, translate = 0, scale = 1, origin = 0.5, boxScale, originAxis = axis, sourceAxis = axis) {\n if (percent.test(translate)) {\n translate = parseFloat(translate);\n const relativeProgress = mixNumber(sourceAxis.min, sourceAxis.max, translate / 100);\n translate = relativeProgress - sourceAxis.min;\n }\n if (typeof translate !== \"number\")\n return;\n let originPoint = mixNumber(originAxis.min, originAxis.max, origin);\n if (axis === originAxis)\n originPoint -= translate;\n axis.min = removePointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = removePointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Remove a transforms from an axis. This is essentially the steps of applyAxisTransforms in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeAxisTransforms(axis, transforms, [key, scaleKey, originKey], origin, sourceAxis) {\n removeAxisDelta(axis, transforms[key], transforms[scaleKey], transforms[originKey], transforms.scale, origin, sourceAxis);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nconst xKeys = [\"x\", \"scaleX\", \"originX\"];\nconst yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Remove a transforms from an box. This is essentially the steps of applyAxisBox in reverse\n * and acts as a bridge between motion values and removeAxisDelta\n */\nfunction removeBoxTransforms(box, transforms, originBox, sourceBox) {\n removeAxisTransforms(box.x, transforms, xKeys, originBox ? originBox.x : undefined, sourceBox ? sourceBox.x : undefined);\n removeAxisTransforms(box.y, transforms, yKeys, originBox ? originBox.y : undefined, sourceBox ? sourceBox.y : undefined);\n}\n\nexport { removeAxisDelta, removeAxisTransforms, removeBoxTransforms, removePointDelta };\n","import { calcLength } from './delta-calc.mjs';\n\nfunction isAxisDeltaZero(delta) {\n return delta.translate === 0 && delta.scale === 1;\n}\nfunction isDeltaZero(delta) {\n return isAxisDeltaZero(delta.x) && isAxisDeltaZero(delta.y);\n}\nfunction axisEquals(a, b) {\n return a.min === b.min && a.max === b.max;\n}\nfunction boxEquals(a, b) {\n return axisEquals(a.x, b.x) && axisEquals(a.y, b.y);\n}\nfunction axisEqualsRounded(a, b) {\n return (Math.round(a.min) === Math.round(b.min) &&\n Math.round(a.max) === Math.round(b.max));\n}\nfunction boxEqualsRounded(a, b) {\n return axisEqualsRounded(a.x, b.x) && axisEqualsRounded(a.y, b.y);\n}\nfunction aspectRatio(box) {\n return calcLength(box.x) / calcLength(box.y);\n}\nfunction axisDeltaEquals(a, b) {\n return (a.translate === b.translate &&\n a.scale === b.scale &&\n a.originPoint === b.originPoint);\n}\n\nexport { aspectRatio, axisDeltaEquals, axisEquals, axisEqualsRounded, boxEquals, boxEqualsRounded, isDeltaZero };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\n\nclass NodeStack {\n constructor() {\n this.members = [];\n }\n add(node) {\n addUniqueItem(this.members, node);\n node.scheduleRender();\n }\n remove(node) {\n removeItem(this.members, node);\n if (node === this.prevLead) {\n this.prevLead = undefined;\n }\n if (node === this.lead) {\n const prevLead = this.members[this.members.length - 1];\n if (prevLead) {\n this.promote(prevLead);\n }\n }\n }\n relegate(node) {\n const indexOfNode = this.members.findIndex((member) => node === member);\n if (indexOfNode === 0)\n return false;\n /**\n * Find the next projection node that is present\n */\n let prevLead;\n for (let i = indexOfNode; i >= 0; i--) {\n const member = this.members[i];\n if (member.isPresent !== false) {\n prevLead = member;\n break;\n }\n }\n if (prevLead) {\n this.promote(prevLead);\n return true;\n }\n else {\n return false;\n }\n }\n promote(node, preserveFollowOpacity) {\n const prevLead = this.lead;\n if (node === prevLead)\n return;\n this.prevLead = prevLead;\n this.lead = node;\n node.show();\n if (prevLead) {\n prevLead.instance && prevLead.scheduleRender();\n node.scheduleRender();\n node.resumeFrom = prevLead;\n if (preserveFollowOpacity) {\n node.resumeFrom.preserveOpacity = true;\n }\n if (prevLead.snapshot) {\n node.snapshot = prevLead.snapshot;\n node.snapshot.latestValues =\n prevLead.animationValues || prevLead.latestValues;\n }\n if (node.root && node.root.isUpdating) {\n node.isLayoutDirty = true;\n }\n const { crossfade } = node.options;\n if (crossfade === false) {\n prevLead.hide();\n }\n /**\n * TODO:\n * - Test border radius when previous node was deleted\n * - boxShadow mixing\n * - Shared between element A in scrolled container and element B (scroll stays the same or changes)\n * - Shared between element A in transformed container and element B (transform stays the same or changes)\n * - Shared between element A in scrolled page and element B (scroll stays the same or changes)\n * ---\n * - Crossfade opacity of root nodes\n * - layoutId changes after animation\n * - layoutId changes mid animation\n */\n }\n }\n exitAnimationComplete() {\n this.members.forEach((node) => {\n const { options, resumingFrom } = node;\n options.onExitComplete && options.onExitComplete();\n if (resumingFrom) {\n resumingFrom.options.onExitComplete &&\n resumingFrom.options.onExitComplete();\n }\n });\n }\n scheduleRender() {\n this.members.forEach((node) => {\n node.instance && node.scheduleRender(false);\n });\n }\n /**\n * Clear any leads that have been removed this render to prevent them from being\n * used in future animations and to prevent memory leaks\n */\n removeLeadSnapshot() {\n if (this.lead && this.lead.snapshot) {\n this.lead.snapshot = undefined;\n }\n }\n}\n\nexport { NodeStack };\n","function buildProjectionTransform(delta, treeScale, latestTransform) {\n let transform = \"\";\n /**\n * The translations we use to calculate are always relative to the viewport coordinate space.\n * But when we apply scales, we also scale the coordinate space of an element and its children.\n * For instance if we have a treeScale (the culmination of all parent scales) of 0.5 and we need\n * to move an element 100 pixels, we actually need to move it 200 in within that scaled space.\n */\n const xTranslate = delta.x.translate / treeScale.x;\n const yTranslate = delta.y.translate / treeScale.y;\n const zTranslate = (latestTransform === null || latestTransform === void 0 ? void 0 : latestTransform.z) || 0;\n if (xTranslate || yTranslate || zTranslate) {\n transform = `translate3d(${xTranslate}px, ${yTranslate}px, ${zTranslate}px) `;\n }\n /**\n * Apply scale correction for the tree transform.\n * This will apply scale to the screen-orientated axes.\n */\n if (treeScale.x !== 1 || treeScale.y !== 1) {\n transform += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;\n }\n if (latestTransform) {\n const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY } = latestTransform;\n if (transformPerspective)\n transform = `perspective(${transformPerspective}px) ${transform}`;\n if (rotate)\n transform += `rotate(${rotate}deg) `;\n if (rotateX)\n transform += `rotateX(${rotateX}deg) `;\n if (rotateY)\n transform += `rotateY(${rotateY}deg) `;\n if (skewX)\n transform += `skewX(${skewX}deg) `;\n if (skewY)\n transform += `skewY(${skewY}deg) `;\n }\n /**\n * Apply scale to match the size of the element to the size we want it.\n * This will apply scale to the element-orientated axes.\n */\n const elementScaleX = delta.x.scale * treeScale.x;\n const elementScaleY = delta.y.scale * treeScale.y;\n if (elementScaleX !== 1 || elementScaleY !== 1) {\n transform += `scale(${elementScaleX}, ${elementScaleY})`;\n }\n return transform || \"none\";\n}\n\nexport { buildProjectionTransform };\n","const compareByDepth = (a, b) => a.depth - b.depth;\n\nexport { compareByDepth };\n","import { addUniqueItem, removeItem } from '../../utils/array.mjs';\nimport { compareByDepth } from './compare-by-depth.mjs';\n\nclass FlatTree {\n constructor() {\n this.children = [];\n this.isDirty = false;\n }\n add(child) {\n addUniqueItem(this.children, child);\n this.isDirty = true;\n }\n remove(child) {\n removeItem(this.children, child);\n this.isDirty = true;\n }\n forEach(callback) {\n this.isDirty && this.children.sort(compareByDepth);\n this.isDirty = false;\n this.children.forEach(callback);\n }\n}\n\nexport { FlatTree };\n","import { time } from '../frameloop/sync-time.mjs';\nimport { frame, cancelFrame } from '../frameloop/frame.mjs';\n\n/**\n * Timeout defined in ms\n */\nfunction delay(callback, timeout) {\n const start = time.now();\n const checkElapsed = ({ timestamp }) => {\n const elapsed = timestamp - start;\n if (elapsed >= timeout) {\n cancelFrame(checkElapsed);\n callback(elapsed - timeout);\n }\n };\n frame.read(checkElapsed, true);\n return () => cancelFrame(checkElapsed);\n}\n\nexport { delay };\n","function isSVGElement(element) {\n return element instanceof SVGElement && element.tagName !== \"svg\";\n}\n\nexport { isSVGElement };\n","import { animateMotionValue } from './motion-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction animateSingleValue(value, keyframes, options) {\n const motionValue$1 = isMotionValue(value) ? value : motionValue(value);\n motionValue$1.start(animateMotionValue(\"\", motionValue$1, keyframes, options));\n return motionValue$1.animation;\n}\n\nexport { animateSingleValue };\n","import { SubscriptionManager } from '../../utils/subscription-manager.mjs';\nimport { mixValues } from '../animation/mix-values.mjs';\nimport { copyBoxInto, copyAxisDeltaInto } from '../geometry/copy.mjs';\nimport { translateAxis, transformBox, applyBoxDelta, applyTreeDeltas } from '../geometry/delta-apply.mjs';\nimport { calcRelativePosition, calcRelativeBox, calcBoxDelta, calcLength, isNear } from '../geometry/delta-calc.mjs';\nimport { removeBoxTransforms } from '../geometry/delta-remove.mjs';\nimport { getValueTransition } from '../../animation/utils/transitions.mjs';\nimport { boxEqualsRounded, isDeltaZero, axisDeltaEquals, aspectRatio, boxEquals } from '../geometry/utils.mjs';\nimport { NodeStack } from '../shared/stack.mjs';\nimport { scaleCorrectors } from '../styles/scale-correction.mjs';\nimport { buildProjectionTransform } from '../styles/transform.mjs';\nimport { eachAxis } from '../utils/each-axis.mjs';\nimport { hasTransform, hasScale, has2DTranslate } from '../utils/has-transform.mjs';\nimport { FlatTree } from '../../render/utils/flat-tree.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { globalProjectionState } from './state.mjs';\nimport { delay } from '../../utils/delay.mjs';\nimport { mixNumber } from '../../utils/mix/number.mjs';\nimport { isSVGElement } from '../../render/dom/utils/is-svg-element.mjs';\nimport { animateSingleValue } from '../../animation/interfaces/single-value.mjs';\nimport { clamp } from '../../utils/clamp.mjs';\nimport { cancelFrame, frameData, steps, frame } from '../../frameloop/frame.mjs';\nimport { noop } from '../../utils/noop.mjs';\nimport { time } from '../../frameloop/sync-time.mjs';\nimport { microtask } from '../../frameloop/microtask.mjs';\nimport { getOptimisedAppearId } from '../../animation/optimized-appear/get-appear-id.mjs';\nimport { createBox, createDelta } from '../geometry/models.mjs';\n\nconst metrics = {\n type: \"projectionFrame\",\n totalNodes: 0,\n resolvedTargetDeltas: 0,\n recalculatedProjection: 0,\n};\nconst isDebug = typeof window !== \"undefined\" && window.MotionDebug !== undefined;\nconst transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\nconst hiddenVisibility = { visibility: \"hidden\" };\n/**\n * We use 1000 as the animation target as 0-1000 maps better to pixels than 0-1\n * which has a noticeable difference in spring animations\n */\nconst animationTarget = 1000;\nlet id = 0;\nfunction resetDistortingTransform(key, visualElement, values, sharedAnimationValues) {\n const { latestValues } = visualElement;\n // Record the distorting transform and then temporarily set it to 0\n if (latestValues[key]) {\n values[key] = latestValues[key];\n visualElement.setStaticValue(key, 0);\n if (sharedAnimationValues) {\n sharedAnimationValues[key] = 0;\n }\n }\n}\nfunction cancelTreeOptimisedTransformAnimations(projectionNode) {\n projectionNode.hasCheckedOptimisedAppear = true;\n if (projectionNode.root === projectionNode)\n return;\n const { visualElement } = projectionNode.options;\n if (!visualElement)\n return;\n const appearId = getOptimisedAppearId(visualElement);\n if (window.MotionHasOptimisedAnimation(appearId, \"transform\")) {\n const { layout, layoutId } = projectionNode.options;\n window.MotionCancelOptimisedAnimation(appearId, \"transform\", frame, !(layout || layoutId));\n }\n const { parent } = projectionNode;\n if (parent && !parent.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(parent);\n }\n}\nfunction createProjectionNode({ attachResizeListener, defaultParent, measureScroll, checkIsScrollRoot, resetTransform, }) {\n return class ProjectionNode {\n constructor(latestValues = {}, parent = defaultParent === null || defaultParent === void 0 ? void 0 : defaultParent()) {\n /**\n * A unique ID generated for every projection node.\n */\n this.id = id++;\n /**\n * An id that represents a unique session instigated by startUpdate.\n */\n this.animationId = 0;\n /**\n * A Set containing all this component's children. This is used to iterate\n * through the children.\n *\n * TODO: This could be faster to iterate as a flat array stored on the root node.\n */\n this.children = new Set();\n /**\n * Options for the node. We use this to configure what kind of layout animations\n * we should perform (if any).\n */\n this.options = {};\n /**\n * We use this to detect when its safe to shut down part of a projection tree.\n * We have to keep projecting children for scale correction and relative projection\n * until all their parents stop performing layout animations.\n */\n this.isTreeAnimating = false;\n this.isAnimationBlocked = false;\n /**\n * Flag to true if we think this layout has been changed. We can't always know this,\n * currently we set it to true every time a component renders, or if it has a layoutDependency\n * if that has changed between renders. Additionally, components can be grouped by LayoutGroup\n * and if one node is dirtied, they all are.\n */\n this.isLayoutDirty = false;\n /**\n * Flag to true if we think the projection calculations for this node needs\n * recalculating as a result of an updated transform or layout animation.\n */\n this.isProjectionDirty = false;\n /**\n * Flag to true if the layout *or* transform has changed. This then gets propagated\n * throughout the projection tree, forcing any element below to recalculate on the next frame.\n */\n this.isSharedProjectionDirty = false;\n /**\n * Flag transform dirty. This gets propagated throughout the whole tree but is only\n * respected by shared nodes.\n */\n this.isTransformDirty = false;\n /**\n * Block layout updates for instant layout transitions throughout the tree.\n */\n this.updateManuallyBlocked = false;\n this.updateBlockedByResize = false;\n /**\n * Set to true between the start of the first `willUpdate` call and the end of the `didUpdate`\n * call.\n */\n this.isUpdating = false;\n /**\n * If this is an SVG element we currently disable projection transforms\n */\n this.isSVG = false;\n /**\n * Flag to true (during promotion) if a node doing an instant layout transition needs to reset\n * its projection styles.\n */\n this.needsReset = false;\n /**\n * Flags whether this node should have its transform reset prior to measuring.\n */\n this.shouldResetTransform = false;\n /**\n * Store whether this node has been checked for optimised appear animations. As\n * effects fire bottom-up, and we want to look up the tree for appear animations,\n * this makes sure we only check each path once, stopping at nodes that\n * have already been checked.\n */\n this.hasCheckedOptimisedAppear = false;\n /**\n * An object representing the calculated contextual/accumulated/tree scale.\n * This will be used to scale calculcated projection transforms, as these are\n * calculated in screen-space but need to be scaled for elements to layoutly\n * make it to their calculated destinations.\n *\n * TODO: Lazy-init\n */\n this.treeScale = { x: 1, y: 1 };\n /**\n *\n */\n this.eventHandlers = new Map();\n this.hasTreeAnimated = false;\n // Note: Currently only running on root node\n this.updateScheduled = false;\n this.scheduleUpdate = () => this.update();\n this.projectionUpdateScheduled = false;\n this.checkUpdateFailed = () => {\n if (this.isUpdating) {\n this.isUpdating = false;\n this.clearAllSnapshots();\n }\n };\n /**\n * This is a multi-step process as shared nodes might be of different depths. Nodes\n * are sorted by depth order, so we need to resolve the entire tree before moving to\n * the next step.\n */\n this.updateProjection = () => {\n this.projectionUpdateScheduled = false;\n /**\n * Reset debug counts. Manually resetting rather than creating a new\n * object each frame.\n */\n if (isDebug) {\n metrics.totalNodes =\n metrics.resolvedTargetDeltas =\n metrics.recalculatedProjection =\n 0;\n }\n this.nodes.forEach(propagateDirtyNodes);\n this.nodes.forEach(resolveTargetDelta);\n this.nodes.forEach(calcProjection);\n this.nodes.forEach(cleanDirtyNodes);\n if (isDebug) {\n window.MotionDebug.record(metrics);\n }\n };\n /**\n * Frame calculations\n */\n this.resolvedRelativeTargetAt = 0.0;\n this.hasProjected = false;\n this.isVisible = true;\n this.animationProgress = 0;\n /**\n * Shared layout\n */\n // TODO Only running on root node\n this.sharedNodes = new Map();\n this.latestValues = latestValues;\n this.root = parent ? parent.root || parent : this;\n this.path = parent ? [...parent.path, parent] : [];\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n for (let i = 0; i < this.path.length; i++) {\n this.path[i].shouldResetTransform = true;\n }\n if (this.root === this)\n this.nodes = new FlatTree();\n }\n addEventListener(name, handler) {\n if (!this.eventHandlers.has(name)) {\n this.eventHandlers.set(name, new SubscriptionManager());\n }\n return this.eventHandlers.get(name).add(handler);\n }\n notifyListeners(name, ...args) {\n const subscriptionManager = this.eventHandlers.get(name);\n subscriptionManager && subscriptionManager.notify(...args);\n }\n hasListeners(name) {\n return this.eventHandlers.has(name);\n }\n /**\n * Lifecycles\n */\n mount(instance, isLayoutDirty = this.root.hasTreeAnimated) {\n if (this.instance)\n return;\n this.isSVG = isSVGElement(instance);\n this.instance = instance;\n const { layoutId, layout, visualElement } = this.options;\n if (visualElement && !visualElement.current) {\n visualElement.mount(instance);\n }\n this.root.nodes.add(this);\n this.parent && this.parent.children.add(this);\n if (isLayoutDirty && (layout || layoutId)) {\n this.isLayoutDirty = true;\n }\n if (attachResizeListener) {\n let cancelDelay;\n const resizeUnblockUpdate = () => (this.root.updateBlockedByResize = false);\n attachResizeListener(instance, () => {\n this.root.updateBlockedByResize = true;\n cancelDelay && cancelDelay();\n cancelDelay = delay(resizeUnblockUpdate, 250);\n if (globalProjectionState.hasAnimatedSinceResize) {\n globalProjectionState.hasAnimatedSinceResize = false;\n this.nodes.forEach(finishAnimation);\n }\n });\n }\n if (layoutId) {\n this.root.registerSharedNode(layoutId, this);\n }\n // Only register the handler if it requires layout animation\n if (this.options.animate !== false &&\n visualElement &&\n (layoutId || layout)) {\n this.addEventListener(\"didUpdate\", ({ delta, hasLayoutChanged, hasRelativeTargetChanged, layout: newLayout, }) => {\n if (this.isTreeAnimationBlocked()) {\n this.target = undefined;\n this.relativeTarget = undefined;\n return;\n }\n // TODO: Check here if an animation exists\n const layoutTransition = this.options.transition ||\n visualElement.getDefaultTransition() ||\n defaultLayoutTransition;\n const { onLayoutAnimationStart, onLayoutAnimationComplete, } = visualElement.getProps();\n /**\n * The target layout of the element might stay the same,\n * but its position relative to its parent has changed.\n */\n const targetChanged = !this.targetLayout ||\n !boxEqualsRounded(this.targetLayout, newLayout) ||\n hasRelativeTargetChanged;\n /**\n * If the layout hasn't seemed to have changed, it might be that the\n * element is visually in the same place in the document but its position\n * relative to its parent has indeed changed. So here we check for that.\n */\n const hasOnlyRelativeTargetChanged = !hasLayoutChanged && hasRelativeTargetChanged;\n if (this.options.layoutRoot ||\n (this.resumeFrom && this.resumeFrom.instance) ||\n hasOnlyRelativeTargetChanged ||\n (hasLayoutChanged &&\n (targetChanged || !this.currentAnimation))) {\n if (this.resumeFrom) {\n this.resumingFrom = this.resumeFrom;\n this.resumingFrom.resumingFrom = undefined;\n }\n this.setAnimationOrigin(delta, hasOnlyRelativeTargetChanged);\n const animationOptions = {\n ...getValueTransition(layoutTransition, \"layout\"),\n onPlay: onLayoutAnimationStart,\n onComplete: onLayoutAnimationComplete,\n };\n if (visualElement.shouldReduceMotion ||\n this.options.layoutRoot) {\n animationOptions.delay = 0;\n animationOptions.type = false;\n }\n this.startAnimation(animationOptions);\n }\n else {\n /**\n * If the layout hasn't changed and we have an animation that hasn't started yet,\n * finish it immediately. Otherwise it will be animating from a location\n * that was probably never commited to screen and look like a jumpy box.\n */\n if (!hasLayoutChanged) {\n finishAnimation(this);\n }\n if (this.isLead() && this.options.onExitComplete) {\n this.options.onExitComplete();\n }\n }\n this.targetLayout = newLayout;\n });\n }\n }\n unmount() {\n this.options.layoutId && this.willUpdate();\n this.root.nodes.remove(this);\n const stack = this.getStack();\n stack && stack.remove(this);\n this.parent && this.parent.children.delete(this);\n this.instance = undefined;\n cancelFrame(this.updateProjection);\n }\n // only on the root\n blockUpdate() {\n this.updateManuallyBlocked = true;\n }\n unblockUpdate() {\n this.updateManuallyBlocked = false;\n }\n isUpdateBlocked() {\n return this.updateManuallyBlocked || this.updateBlockedByResize;\n }\n isTreeAnimationBlocked() {\n return (this.isAnimationBlocked ||\n (this.parent && this.parent.isTreeAnimationBlocked()) ||\n false);\n }\n // Note: currently only running on root node\n startUpdate() {\n if (this.isUpdateBlocked())\n return;\n this.isUpdating = true;\n this.nodes && this.nodes.forEach(resetSkewAndRotation);\n this.animationId++;\n }\n getTransformTemplate() {\n const { visualElement } = this.options;\n return visualElement && visualElement.getProps().transformTemplate;\n }\n willUpdate(shouldNotifyListeners = true) {\n this.root.hasTreeAnimated = true;\n if (this.root.isUpdateBlocked()) {\n this.options.onExitComplete && this.options.onExitComplete();\n return;\n }\n /**\n * If we're running optimised appear animations then these must be\n * cancelled before measuring the DOM. This is so we can measure\n * the true layout of the element rather than the WAAPI animation\n * which will be unaffected by the resetSkewAndRotate step.\n *\n * Note: This is a DOM write. Worst case scenario is this is sandwiched\n * between other snapshot reads which will cause unnecessary style recalculations.\n * This has to happen here though, as we don't yet know which nodes will need\n * snapshots in startUpdate(), but we only want to cancel optimised animations\n * if a layout animation measurement is actually going to be affected by them.\n */\n if (window.MotionCancelOptimisedAnimation &&\n !this.hasCheckedOptimisedAppear) {\n cancelTreeOptimisedTransformAnimations(this);\n }\n !this.root.isUpdating && this.root.startUpdate();\n if (this.isLayoutDirty)\n return;\n this.isLayoutDirty = true;\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.shouldResetTransform = true;\n node.updateScroll(\"snapshot\");\n if (node.options.layoutRoot) {\n node.willUpdate(false);\n }\n }\n const { layoutId, layout } = this.options;\n if (layoutId === undefined && !layout)\n return;\n const transformTemplate = this.getTransformTemplate();\n this.prevTransformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n this.updateSnapshot();\n shouldNotifyListeners && this.notifyListeners(\"willUpdate\");\n }\n update() {\n this.updateScheduled = false;\n const updateWasBlocked = this.isUpdateBlocked();\n // When doing an instant transition, we skip the layout update,\n // but should still clean up the measurements so that the next\n // snapshot could be taken correctly.\n if (updateWasBlocked) {\n this.unblockUpdate();\n this.clearAllSnapshots();\n this.nodes.forEach(clearMeasurements);\n return;\n }\n if (!this.isUpdating) {\n this.nodes.forEach(clearIsLayoutDirty);\n }\n this.isUpdating = false;\n /**\n * Write\n */\n this.nodes.forEach(resetTransformStyle);\n /**\n * Read ==================\n */\n // Update layout measurements of updated children\n this.nodes.forEach(updateLayout);\n /**\n * Write\n */\n // Notify listeners that the layout is updated\n this.nodes.forEach(notifyLayoutUpdate);\n this.clearAllSnapshots();\n /**\n * Manually flush any pending updates. Ideally\n * we could leave this to the following requestAnimationFrame but this seems\n * to leave a flash of incorrectly styled content.\n */\n const now = time.now();\n frameData.delta = clamp(0, 1000 / 60, now - frameData.timestamp);\n frameData.timestamp = now;\n frameData.isProcessing = true;\n steps.update.process(frameData);\n steps.preRender.process(frameData);\n steps.render.process(frameData);\n frameData.isProcessing = false;\n }\n didUpdate() {\n if (!this.updateScheduled) {\n this.updateScheduled = true;\n microtask.read(this.scheduleUpdate);\n }\n }\n clearAllSnapshots() {\n this.nodes.forEach(clearSnapshot);\n this.sharedNodes.forEach(removeLeadSnapshots);\n }\n scheduleUpdateProjection() {\n if (!this.projectionUpdateScheduled) {\n this.projectionUpdateScheduled = true;\n frame.preRender(this.updateProjection, false, true);\n }\n }\n scheduleCheckAfterUnmount() {\n /**\n * If the unmounting node is in a layoutGroup and did trigger a willUpdate,\n * we manually call didUpdate to give a chance to the siblings to animate.\n * Otherwise, cleanup all snapshots to prevents future nodes from reusing them.\n */\n frame.postRender(() => {\n if (this.isLayoutDirty) {\n this.root.didUpdate();\n }\n else {\n this.root.checkUpdateFailed();\n }\n });\n }\n /**\n * Update measurements\n */\n updateSnapshot() {\n if (this.snapshot || !this.instance)\n return;\n this.snapshot = this.measure();\n }\n updateLayout() {\n if (!this.instance)\n return;\n // TODO: Incorporate into a forwarded scroll offset\n this.updateScroll();\n if (!(this.options.alwaysMeasureLayout && this.isLead()) &&\n !this.isLayoutDirty) {\n return;\n }\n /**\n * When a node is mounted, it simply resumes from the prevLead's\n * snapshot instead of taking a new one, but the ancestors scroll\n * might have updated while the prevLead is unmounted. We need to\n * update the scroll again to make sure the layout we measure is\n * up to date.\n */\n if (this.resumeFrom && !this.resumeFrom.instance) {\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n node.updateScroll();\n }\n }\n const prevLayout = this.layout;\n this.layout = this.measure(false);\n this.layoutCorrected = createBox();\n this.isLayoutDirty = false;\n this.projectionDelta = undefined;\n this.notifyListeners(\"measure\", this.layout.layoutBox);\n const { visualElement } = this.options;\n visualElement &&\n visualElement.notify(\"LayoutMeasure\", this.layout.layoutBox, prevLayout ? prevLayout.layoutBox : undefined);\n }\n updateScroll(phase = \"measure\") {\n let needsMeasurement = Boolean(this.options.layoutScroll && this.instance);\n if (this.scroll &&\n this.scroll.animationId === this.root.animationId &&\n this.scroll.phase === phase) {\n needsMeasurement = false;\n }\n if (needsMeasurement) {\n const isRoot = checkIsScrollRoot(this.instance);\n this.scroll = {\n animationId: this.root.animationId,\n phase,\n isRoot,\n offset: measureScroll(this.instance),\n wasRoot: this.scroll ? this.scroll.isRoot : isRoot,\n };\n }\n }\n resetTransform() {\n if (!resetTransform)\n return;\n const isResetRequested = this.isLayoutDirty ||\n this.shouldResetTransform ||\n this.options.alwaysMeasureLayout;\n const hasProjection = this.projectionDelta && !isDeltaZero(this.projectionDelta);\n const transformTemplate = this.getTransformTemplate();\n const transformTemplateValue = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : undefined;\n const transformTemplateHasChanged = transformTemplateValue !== this.prevTransformTemplateValue;\n if (isResetRequested &&\n (hasProjection ||\n hasTransform(this.latestValues) ||\n transformTemplateHasChanged)) {\n resetTransform(this.instance, transformTemplateValue);\n this.shouldResetTransform = false;\n this.scheduleRender();\n }\n }\n measure(removeTransform = true) {\n const pageBox = this.measurePageBox();\n let layoutBox = this.removeElementScroll(pageBox);\n /**\n * Measurements taken during the pre-render stage\n * still have transforms applied so we remove them\n * via calculation.\n */\n if (removeTransform) {\n layoutBox = this.removeTransform(layoutBox);\n }\n roundBox(layoutBox);\n return {\n animationId: this.root.animationId,\n measuredBox: pageBox,\n layoutBox,\n latestValues: {},\n source: this.id,\n };\n }\n measurePageBox() {\n var _a;\n const { visualElement } = this.options;\n if (!visualElement)\n return createBox();\n const box = visualElement.measureViewportBox();\n const wasInScrollRoot = ((_a = this.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot) || this.path.some(checkNodeWasScrollRoot);\n if (!wasInScrollRoot) {\n // Remove viewport scroll to give page-relative coordinates\n const { scroll } = this.root;\n if (scroll) {\n translateAxis(box.x, scroll.offset.x);\n translateAxis(box.y, scroll.offset.y);\n }\n }\n return box;\n }\n removeElementScroll(box) {\n var _a;\n const boxWithoutScroll = createBox();\n copyBoxInto(boxWithoutScroll, box);\n if ((_a = this.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot) {\n return boxWithoutScroll;\n }\n /**\n * Performance TODO: Keep a cumulative scroll offset down the tree\n * rather than loop back up the path.\n */\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n const { scroll, options } = node;\n if (node !== this.root && scroll && options.layoutScroll) {\n /**\n * If this is a new scroll root, we want to remove all previous scrolls\n * from the viewport box.\n */\n if (scroll.wasRoot) {\n copyBoxInto(boxWithoutScroll, box);\n }\n translateAxis(boxWithoutScroll.x, scroll.offset.x);\n translateAxis(boxWithoutScroll.y, scroll.offset.y);\n }\n }\n return boxWithoutScroll;\n }\n applyTransform(box, transformOnly = false) {\n const withTransforms = createBox();\n copyBoxInto(withTransforms, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!transformOnly &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(withTransforms, {\n x: -node.scroll.offset.x,\n y: -node.scroll.offset.y,\n });\n }\n if (!hasTransform(node.latestValues))\n continue;\n transformBox(withTransforms, node.latestValues);\n }\n if (hasTransform(this.latestValues)) {\n transformBox(withTransforms, this.latestValues);\n }\n return withTransforms;\n }\n removeTransform(box) {\n const boxWithoutTransform = createBox();\n copyBoxInto(boxWithoutTransform, box);\n for (let i = 0; i < this.path.length; i++) {\n const node = this.path[i];\n if (!node.instance)\n continue;\n if (!hasTransform(node.latestValues))\n continue;\n hasScale(node.latestValues) && node.updateSnapshot();\n const sourceBox = createBox();\n const nodeBox = node.measurePageBox();\n copyBoxInto(sourceBox, nodeBox);\n removeBoxTransforms(boxWithoutTransform, node.latestValues, node.snapshot ? node.snapshot.layoutBox : undefined, sourceBox);\n }\n if (hasTransform(this.latestValues)) {\n removeBoxTransforms(boxWithoutTransform, this.latestValues);\n }\n return boxWithoutTransform;\n }\n setTargetDelta(delta) {\n this.targetDelta = delta;\n this.root.scheduleUpdateProjection();\n this.isProjectionDirty = true;\n }\n setOptions(options) {\n this.options = {\n ...this.options,\n ...options,\n crossfade: options.crossfade !== undefined ? options.crossfade : true,\n };\n }\n clearMeasurements() {\n this.scroll = undefined;\n this.layout = undefined;\n this.snapshot = undefined;\n this.prevTransformTemplateValue = undefined;\n this.targetDelta = undefined;\n this.target = undefined;\n this.isLayoutDirty = false;\n }\n forceRelativeParentToResolveTarget() {\n if (!this.relativeParent)\n return;\n /**\n * If the parent target isn't up-to-date, force it to update.\n * This is an unfortunate de-optimisation as it means any updating relative\n * projection will cause all the relative parents to recalculate back\n * up the tree.\n */\n if (this.relativeParent.resolvedRelativeTargetAt !==\n frameData.timestamp) {\n this.relativeParent.resolveTargetDelta(true);\n }\n }\n resolveTargetDelta(forceRecalculation = false) {\n var _a;\n /**\n * Once the dirty status of nodes has been spread through the tree, we also\n * need to check if we have a shared node of a different depth that has itself\n * been dirtied.\n */\n const lead = this.getLead();\n this.isProjectionDirty || (this.isProjectionDirty = lead.isProjectionDirty);\n this.isTransformDirty || (this.isTransformDirty = lead.isTransformDirty);\n this.isSharedProjectionDirty || (this.isSharedProjectionDirty = lead.isSharedProjectionDirty);\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n /**\n * We don't use transform for this step of processing so we don't\n * need to check whether any nodes have changed transform.\n */\n const canSkip = !(forceRecalculation ||\n (isShared && this.isSharedProjectionDirty) ||\n this.isProjectionDirty ||\n ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty) ||\n this.attemptToResolveRelativeTarget ||\n this.root.updateBlockedByResize);\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If we have no layout, we can't perform projection, so early return\n */\n if (!this.layout || !(layout || layoutId))\n return;\n this.resolvedRelativeTargetAt = frameData.timestamp;\n /**\n * If we don't have a targetDelta but do have a layout, we can attempt to resolve\n * a relativeParent. This will allow a component to perform scale correction\n * even if no animation has started.\n */\n if (!this.targetDelta && !this.relativeTarget) {\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n relativeParent.layout &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.layout.layoutBox, relativeParent.layout.layoutBox);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * If we have no relative target or no target delta our target isn't valid\n * for this frame.\n */\n if (!this.relativeTarget && !this.targetDelta)\n return;\n /**\n * Lazy-init target data structure\n */\n if (!this.target) {\n this.target = createBox();\n this.targetWithTransforms = createBox();\n }\n /**\n * If we've got a relative box for this component, resolve it into a target relative to the parent.\n */\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.relativeParent &&\n this.relativeParent.target) {\n this.forceRelativeParentToResolveTarget();\n calcRelativeBox(this.target, this.relativeTarget, this.relativeParent.target);\n /**\n * If we've only got a targetDelta, resolve it into a target\n */\n }\n else if (this.targetDelta) {\n if (Boolean(this.resumingFrom)) {\n // TODO: This is creating a new object every frame\n this.target = this.applyTransform(this.layout.layoutBox);\n }\n else {\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n applyBoxDelta(this.target, this.targetDelta);\n }\n else {\n /**\n * If no target, use own layout as target\n */\n copyBoxInto(this.target, this.layout.layoutBox);\n }\n /**\n * If we've been told to attempt to resolve a relative target, do so.\n */\n if (this.attemptToResolveRelativeTarget) {\n this.attemptToResolveRelativeTarget = false;\n const relativeParent = this.getClosestProjectingParent();\n if (relativeParent &&\n Boolean(relativeParent.resumingFrom) ===\n Boolean(this.resumingFrom) &&\n !relativeParent.options.layoutScroll &&\n relativeParent.target &&\n this.animationProgress !== 1) {\n this.relativeParent = relativeParent;\n this.forceRelativeParentToResolveTarget();\n this.relativeTarget = createBox();\n this.relativeTargetOrigin = createBox();\n calcRelativePosition(this.relativeTargetOrigin, this.target, relativeParent.target);\n copyBoxInto(this.relativeTarget, this.relativeTargetOrigin);\n }\n else {\n this.relativeParent = this.relativeTarget = undefined;\n }\n }\n /**\n * Increase debug counter for resolved target deltas\n */\n if (isDebug) {\n metrics.resolvedTargetDeltas++;\n }\n }\n getClosestProjectingParent() {\n if (!this.parent ||\n hasScale(this.parent.latestValues) ||\n has2DTranslate(this.parent.latestValues)) {\n return undefined;\n }\n if (this.parent.isProjecting()) {\n return this.parent;\n }\n else {\n return this.parent.getClosestProjectingParent();\n }\n }\n isProjecting() {\n return Boolean((this.relativeTarget ||\n this.targetDelta ||\n this.options.layoutRoot) &&\n this.layout);\n }\n calcProjection() {\n var _a;\n const lead = this.getLead();\n const isShared = Boolean(this.resumingFrom) || this !== lead;\n let canSkip = true;\n /**\n * If this is a normal layout animation and neither this node nor its nearest projecting\n * is dirty then we can't skip.\n */\n if (this.isProjectionDirty || ((_a = this.parent) === null || _a === void 0 ? void 0 : _a.isProjectionDirty)) {\n canSkip = false;\n }\n /**\n * If this is a shared layout animation and this node's shared projection is dirty then\n * we can't skip.\n */\n if (isShared &&\n (this.isSharedProjectionDirty || this.isTransformDirty)) {\n canSkip = false;\n }\n /**\n * If we have resolved the target this frame we must recalculate the\n * projection to ensure it visually represents the internal calculations.\n */\n if (this.resolvedRelativeTargetAt === frameData.timestamp) {\n canSkip = false;\n }\n if (canSkip)\n return;\n const { layout, layoutId } = this.options;\n /**\n * If this section of the tree isn't animating we can\n * delete our target sources for the following frame.\n */\n this.isTreeAnimating = Boolean((this.parent && this.parent.isTreeAnimating) ||\n this.currentAnimation ||\n this.pendingAnimation);\n if (!this.isTreeAnimating) {\n this.targetDelta = this.relativeTarget = undefined;\n }\n if (!this.layout || !(layout || layoutId))\n return;\n /**\n * Reset the corrected box with the latest values from box, as we're then going\n * to perform mutative operations on it.\n */\n copyBoxInto(this.layoutCorrected, this.layout.layoutBox);\n /**\n * Record previous tree scales before updating.\n */\n const prevTreeScaleX = this.treeScale.x;\n const prevTreeScaleY = this.treeScale.y;\n /**\n * Apply all the parent deltas to this box to produce the corrected box. This\n * is the layout box, as it will appear on screen as a result of the transforms of its parents.\n */\n applyTreeDeltas(this.layoutCorrected, this.treeScale, this.path, isShared);\n /**\n * If this layer needs to perform scale correction but doesn't have a target,\n * use the layout as the target.\n */\n if (lead.layout &&\n !lead.target &&\n (this.treeScale.x !== 1 || this.treeScale.y !== 1)) {\n lead.target = lead.layout.layoutBox;\n lead.targetWithTransforms = createBox();\n }\n const { target } = lead;\n if (!target) {\n /**\n * If we don't have a target to project into, but we were previously\n * projecting, we want to remove the stored transform and schedule\n * a render to ensure the elements reflect the removed transform.\n */\n if (this.prevProjectionDelta) {\n this.createProjectionDeltas();\n this.scheduleRender();\n }\n return;\n }\n if (!this.projectionDelta || !this.prevProjectionDelta) {\n this.createProjectionDeltas();\n }\n else {\n copyAxisDeltaInto(this.prevProjectionDelta.x, this.projectionDelta.x);\n copyAxisDeltaInto(this.prevProjectionDelta.y, this.projectionDelta.y);\n }\n /**\n * Update the delta between the corrected box and the target box before user-set transforms were applied.\n * This will allow us to calculate the corrected borderRadius and boxShadow to compensate\n * for our layout reprojection, but still allow them to be scaled correctly by the user.\n * It might be that to simplify this we may want to accept that user-set scale is also corrected\n * and we wouldn't have to keep and calc both deltas, OR we could support a user setting\n * to allow people to choose whether these styles are corrected based on just the\n * layout reprojection or the final bounding box.\n */\n calcBoxDelta(this.projectionDelta, this.layoutCorrected, target, this.latestValues);\n if (this.treeScale.x !== prevTreeScaleX ||\n this.treeScale.y !== prevTreeScaleY ||\n !axisDeltaEquals(this.projectionDelta.x, this.prevProjectionDelta.x) ||\n !axisDeltaEquals(this.projectionDelta.y, this.prevProjectionDelta.y)) {\n this.hasProjected = true;\n this.scheduleRender();\n this.notifyListeners(\"projectionUpdate\", target);\n }\n /**\n * Increase debug counter for recalculated projections\n */\n if (isDebug) {\n metrics.recalculatedProjection++;\n }\n }\n hide() {\n this.isVisible = false;\n // TODO: Schedule render\n }\n show() {\n this.isVisible = true;\n // TODO: Schedule render\n }\n scheduleRender(notifyAll = true) {\n var _a;\n (_a = this.options.visualElement) === null || _a === void 0 ? void 0 : _a.scheduleRender();\n if (notifyAll) {\n const stack = this.getStack();\n stack && stack.scheduleRender();\n }\n if (this.resumingFrom && !this.resumingFrom.instance) {\n this.resumingFrom = undefined;\n }\n }\n createProjectionDeltas() {\n this.prevProjectionDelta = createDelta();\n this.projectionDelta = createDelta();\n this.projectionDeltaWithTransform = createDelta();\n }\n setAnimationOrigin(delta, hasOnlyRelativeTargetChanged = false) {\n const snapshot = this.snapshot;\n const snapshotLatestValues = snapshot\n ? snapshot.latestValues\n : {};\n const mixedValues = { ...this.latestValues };\n const targetDelta = createDelta();\n if (!this.relativeParent ||\n !this.relativeParent.options.layoutRoot) {\n this.relativeTarget = this.relativeTargetOrigin = undefined;\n }\n this.attemptToResolveRelativeTarget = !hasOnlyRelativeTargetChanged;\n const relativeLayout = createBox();\n const snapshotSource = snapshot ? snapshot.source : undefined;\n const layoutSource = this.layout ? this.layout.source : undefined;\n const isSharedLayoutAnimation = snapshotSource !== layoutSource;\n const stack = this.getStack();\n const isOnlyMember = !stack || stack.members.length <= 1;\n const shouldCrossfadeOpacity = Boolean(isSharedLayoutAnimation &&\n !isOnlyMember &&\n this.options.crossfade === true &&\n !this.path.some(hasOpacityCrossfade));\n this.animationProgress = 0;\n let prevRelativeTarget;\n this.mixTargetDelta = (latest) => {\n const progress = latest / 1000;\n mixAxisDelta(targetDelta.x, delta.x, progress);\n mixAxisDelta(targetDelta.y, delta.y, progress);\n this.setTargetDelta(targetDelta);\n if (this.relativeTarget &&\n this.relativeTargetOrigin &&\n this.layout &&\n this.relativeParent &&\n this.relativeParent.layout) {\n calcRelativePosition(relativeLayout, this.layout.layoutBox, this.relativeParent.layout.layoutBox);\n mixBox(this.relativeTarget, this.relativeTargetOrigin, relativeLayout, progress);\n /**\n * If this is an unchanged relative target we can consider the\n * projection not dirty.\n */\n if (prevRelativeTarget &&\n boxEquals(this.relativeTarget, prevRelativeTarget)) {\n this.isProjectionDirty = false;\n }\n if (!prevRelativeTarget)\n prevRelativeTarget = createBox();\n copyBoxInto(prevRelativeTarget, this.relativeTarget);\n }\n if (isSharedLayoutAnimation) {\n this.animationValues = mixedValues;\n mixValues(mixedValues, snapshotLatestValues, this.latestValues, progress, shouldCrossfadeOpacity, isOnlyMember);\n }\n this.root.scheduleUpdateProjection();\n this.scheduleRender();\n this.animationProgress = progress;\n };\n this.mixTargetDelta(this.options.layoutRoot ? 1000 : 0);\n }\n startAnimation(options) {\n this.notifyListeners(\"animationStart\");\n this.currentAnimation && this.currentAnimation.stop();\n if (this.resumingFrom && this.resumingFrom.currentAnimation) {\n this.resumingFrom.currentAnimation.stop();\n }\n if (this.pendingAnimation) {\n cancelFrame(this.pendingAnimation);\n this.pendingAnimation = undefined;\n }\n /**\n * Start the animation in the next frame to have a frame with progress 0,\n * where the target is the same as when the animation started, so we can\n * calculate the relative positions correctly for instant transitions.\n */\n this.pendingAnimation = frame.update(() => {\n globalProjectionState.hasAnimatedSinceResize = true;\n this.currentAnimation = animateSingleValue(0, animationTarget, {\n ...options,\n onUpdate: (latest) => {\n this.mixTargetDelta(latest);\n options.onUpdate && options.onUpdate(latest);\n },\n onComplete: () => {\n options.onComplete && options.onComplete();\n this.completeAnimation();\n },\n });\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = this.currentAnimation;\n }\n this.pendingAnimation = undefined;\n });\n }\n completeAnimation() {\n if (this.resumingFrom) {\n this.resumingFrom.currentAnimation = undefined;\n this.resumingFrom.preserveOpacity = undefined;\n }\n const stack = this.getStack();\n stack && stack.exitAnimationComplete();\n this.resumingFrom =\n this.currentAnimation =\n this.animationValues =\n undefined;\n this.notifyListeners(\"animationComplete\");\n }\n finishAnimation() {\n if (this.currentAnimation) {\n this.mixTargetDelta && this.mixTargetDelta(animationTarget);\n this.currentAnimation.stop();\n }\n this.completeAnimation();\n }\n applyTransformsToTarget() {\n const lead = this.getLead();\n let { targetWithTransforms, target, layout, latestValues } = lead;\n if (!targetWithTransforms || !target || !layout)\n return;\n /**\n * If we're only animating position, and this element isn't the lead element,\n * then instead of projecting into the lead box we instead want to calculate\n * a new target that aligns the two boxes but maintains the layout shape.\n */\n if (this !== lead &&\n this.layout &&\n layout &&\n shouldAnimatePositionOnly(this.options.animationType, this.layout.layoutBox, layout.layoutBox)) {\n target = this.target || createBox();\n const xLength = calcLength(this.layout.layoutBox.x);\n target.x.min = lead.target.x.min;\n target.x.max = target.x.min + xLength;\n const yLength = calcLength(this.layout.layoutBox.y);\n target.y.min = lead.target.y.min;\n target.y.max = target.y.min + yLength;\n }\n copyBoxInto(targetWithTransforms, target);\n /**\n * Apply the latest user-set transforms to the targetBox to produce the targetBoxFinal.\n * This is the final box that we will then project into by calculating a transform delta and\n * applying it to the corrected box.\n */\n transformBox(targetWithTransforms, latestValues);\n /**\n * Update the delta between the corrected box and the final target box, after\n * user-set transforms are applied to it. This will be used by the renderer to\n * create a transform style that will reproject the element from its layout layout\n * into the desired bounding box.\n */\n calcBoxDelta(this.projectionDeltaWithTransform, this.layoutCorrected, targetWithTransforms, latestValues);\n }\n registerSharedNode(layoutId, node) {\n if (!this.sharedNodes.has(layoutId)) {\n this.sharedNodes.set(layoutId, new NodeStack());\n }\n const stack = this.sharedNodes.get(layoutId);\n stack.add(node);\n const config = node.options.initialPromotionConfig;\n node.promote({\n transition: config ? config.transition : undefined,\n preserveFollowOpacity: config && config.shouldPreserveFollowOpacity\n ? config.shouldPreserveFollowOpacity(node)\n : undefined,\n });\n }\n isLead() {\n const stack = this.getStack();\n return stack ? stack.lead === this : true;\n }\n getLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? ((_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.lead) || this : this;\n }\n getPrevLead() {\n var _a;\n const { layoutId } = this.options;\n return layoutId ? (_a = this.getStack()) === null || _a === void 0 ? void 0 : _a.prevLead : undefined;\n }\n getStack() {\n const { layoutId } = this.options;\n if (layoutId)\n return this.root.sharedNodes.get(layoutId);\n }\n promote({ needsReset, transition, preserveFollowOpacity, } = {}) {\n const stack = this.getStack();\n if (stack)\n stack.promote(this, preserveFollowOpacity);\n if (needsReset) {\n this.projectionDelta = undefined;\n this.needsReset = true;\n }\n if (transition)\n this.setOptions({ transition });\n }\n relegate() {\n const stack = this.getStack();\n if (stack) {\n return stack.relegate(this);\n }\n else {\n return false;\n }\n }\n resetSkewAndRotation() {\n const { visualElement } = this.options;\n if (!visualElement)\n return;\n // If there's no detected skew or rotation values, we can early return without a forced render.\n let hasDistortingTransform = false;\n /**\n * An unrolled check for rotation values. Most elements don't have any rotation and\n * skipping the nested loop and new object creation is 50% faster.\n */\n const { latestValues } = visualElement;\n if (latestValues.z ||\n latestValues.rotate ||\n latestValues.rotateX ||\n latestValues.rotateY ||\n latestValues.rotateZ ||\n latestValues.skewX ||\n latestValues.skewY) {\n hasDistortingTransform = true;\n }\n // If there's no distorting values, we don't need to do any more.\n if (!hasDistortingTransform)\n return;\n const resetValues = {};\n if (latestValues.z) {\n resetDistortingTransform(\"z\", visualElement, resetValues, this.animationValues);\n }\n // Check the skew and rotate value of all axes and reset to 0\n for (let i = 0; i < transformAxes.length; i++) {\n resetDistortingTransform(`rotate${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n resetDistortingTransform(`skew${transformAxes[i]}`, visualElement, resetValues, this.animationValues);\n }\n // Force a render of this element to apply the transform with all skews and rotations\n // set to 0.\n visualElement.render();\n // Put back all the values we reset\n for (const key in resetValues) {\n visualElement.setStaticValue(key, resetValues[key]);\n if (this.animationValues) {\n this.animationValues[key] = resetValues[key];\n }\n }\n // Schedule a render for the next frame. This ensures we won't visually\n // see the element with the reset rotate value applied.\n visualElement.scheduleRender();\n }\n getProjectionStyles(styleProp) {\n var _a, _b;\n if (!this.instance || this.isSVG)\n return undefined;\n if (!this.isVisible) {\n return hiddenVisibility;\n }\n const styles = {\n visibility: \"\",\n };\n const transformTemplate = this.getTransformTemplate();\n if (this.needsReset) {\n this.needsReset = false;\n styles.opacity = \"\";\n styles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n styles.transform = transformTemplate\n ? transformTemplate(this.latestValues, \"\")\n : \"none\";\n return styles;\n }\n const lead = this.getLead();\n if (!this.projectionDelta || !this.layout || !lead.target) {\n const emptyStyles = {};\n if (this.options.layoutId) {\n emptyStyles.opacity =\n this.latestValues.opacity !== undefined\n ? this.latestValues.opacity\n : 1;\n emptyStyles.pointerEvents =\n resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\";\n }\n if (this.hasProjected && !hasTransform(this.latestValues)) {\n emptyStyles.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n this.hasProjected = false;\n }\n return emptyStyles;\n }\n const valuesToRender = lead.animationValues || lead.latestValues;\n this.applyTransformsToTarget();\n styles.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);\n if (transformTemplate) {\n styles.transform = transformTemplate(valuesToRender, styles.transform);\n }\n const { x, y } = this.projectionDelta;\n styles.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;\n if (lead.animationValues) {\n /**\n * If the lead component is animating, assign this either the entering/leaving\n * opacity\n */\n styles.opacity =\n lead === this\n ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0 ? _b : 1\n : this.preserveOpacity\n ? this.latestValues.opacity\n : valuesToRender.opacityExit;\n }\n else {\n /**\n * Or we're not animating at all, set the lead component to its layout\n * opacity and other components to hidden.\n */\n styles.opacity =\n lead === this\n ? valuesToRender.opacity !== undefined\n ? valuesToRender.opacity\n : \"\"\n : valuesToRender.opacityExit !== undefined\n ? valuesToRender.opacityExit\n : 0;\n }\n /**\n * Apply scale correction\n */\n for (const key in scaleCorrectors) {\n if (valuesToRender[key] === undefined)\n continue;\n const { correct, applyTo } = scaleCorrectors[key];\n /**\n * Only apply scale correction to the value if we have an\n * active projection transform. Otherwise these values become\n * vulnerable to distortion if the element changes size without\n * a corresponding layout animation.\n */\n const corrected = styles.transform === \"none\"\n ? valuesToRender[key]\n : correct(valuesToRender[key], lead);\n if (applyTo) {\n const num = applyTo.length;\n for (let i = 0; i < num; i++) {\n styles[applyTo[i]] = corrected;\n }\n }\n else {\n styles[key] = corrected;\n }\n }\n /**\n * Disable pointer events on follow components. This is to ensure\n * that if a follow component covers a lead component it doesn't block\n * pointer events on the lead.\n */\n if (this.options.layoutId) {\n styles.pointerEvents =\n lead === this\n ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || \"\"\n : \"none\";\n }\n return styles;\n }\n clearSnapshot() {\n this.resumeFrom = this.snapshot = undefined;\n }\n // Only run on root\n resetTree() {\n this.root.nodes.forEach((node) => { var _a; return (_a = node.currentAnimation) === null || _a === void 0 ? void 0 : _a.stop(); });\n this.root.nodes.forEach(clearMeasurements);\n this.root.sharedNodes.clear();\n }\n };\n}\nfunction updateLayout(node) {\n node.updateLayout();\n}\nfunction notifyLayoutUpdate(node) {\n var _a;\n const snapshot = ((_a = node.resumeFrom) === null || _a === void 0 ? void 0 : _a.snapshot) || node.snapshot;\n if (node.isLead() &&\n node.layout &&\n snapshot &&\n node.hasListeners(\"didUpdate\")) {\n const { layoutBox: layout, measuredBox: measuredLayout } = node.layout;\n const { animationType } = node.options;\n const isShared = snapshot.source !== node.layout.source;\n // TODO Maybe we want to also resize the layout snapshot so we don't trigger\n // animations for instance if layout=\"size\" and an element has only changed position\n if (animationType === \"size\") {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(axisSnapshot);\n axisSnapshot.min = layout[axis].min;\n axisSnapshot.max = axisSnapshot.min + length;\n });\n }\n else if (shouldAnimatePositionOnly(animationType, snapshot.layoutBox, layout)) {\n eachAxis((axis) => {\n const axisSnapshot = isShared\n ? snapshot.measuredBox[axis]\n : snapshot.layoutBox[axis];\n const length = calcLength(layout[axis]);\n axisSnapshot.max = axisSnapshot.min + length;\n /**\n * Ensure relative target gets resized and rerendererd\n */\n if (node.relativeTarget && !node.currentAnimation) {\n node.isProjectionDirty = true;\n node.relativeTarget[axis].max =\n node.relativeTarget[axis].min + length;\n }\n });\n }\n const layoutDelta = createDelta();\n calcBoxDelta(layoutDelta, layout, snapshot.layoutBox);\n const visualDelta = createDelta();\n if (isShared) {\n calcBoxDelta(visualDelta, node.applyTransform(measuredLayout, true), snapshot.measuredBox);\n }\n else {\n calcBoxDelta(visualDelta, layout, snapshot.layoutBox);\n }\n const hasLayoutChanged = !isDeltaZero(layoutDelta);\n let hasRelativeTargetChanged = false;\n if (!node.resumeFrom) {\n const relativeParent = node.getClosestProjectingParent();\n /**\n * If the relativeParent is itself resuming from a different element then\n * the relative snapshot is not relavent\n */\n if (relativeParent && !relativeParent.resumeFrom) {\n const { snapshot: parentSnapshot, layout: parentLayout } = relativeParent;\n if (parentSnapshot && parentLayout) {\n const relativeSnapshot = createBox();\n calcRelativePosition(relativeSnapshot, snapshot.layoutBox, parentSnapshot.layoutBox);\n const relativeLayout = createBox();\n calcRelativePosition(relativeLayout, layout, parentLayout.layoutBox);\n if (!boxEqualsRounded(relativeSnapshot, relativeLayout)) {\n hasRelativeTargetChanged = true;\n }\n if (relativeParent.options.layoutRoot) {\n node.relativeTarget = relativeLayout;\n node.relativeTargetOrigin = relativeSnapshot;\n node.relativeParent = relativeParent;\n }\n }\n }\n }\n node.notifyListeners(\"didUpdate\", {\n layout,\n snapshot,\n delta: visualDelta,\n layoutDelta,\n hasLayoutChanged,\n hasRelativeTargetChanged,\n });\n }\n else if (node.isLead()) {\n const { onExitComplete } = node.options;\n onExitComplete && onExitComplete();\n }\n /**\n * Clearing transition\n * TODO: Investigate why this transition is being passed in as {type: false } from Framer\n * and why we need it at all\n */\n node.options.transition = undefined;\n}\nfunction propagateDirtyNodes(node) {\n /**\n * Increase debug counter for nodes encountered this frame\n */\n if (isDebug) {\n metrics.totalNodes++;\n }\n if (!node.parent)\n return;\n /**\n * If this node isn't projecting, propagate isProjectionDirty. It will have\n * no performance impact but it will allow the next child that *is* projecting\n * but *isn't* dirty to just check its parent to see if *any* ancestor needs\n * correcting.\n */\n if (!node.isProjecting()) {\n node.isProjectionDirty = node.parent.isProjectionDirty;\n }\n /**\n * Propagate isSharedProjectionDirty and isTransformDirty\n * throughout the whole tree. A future revision can take another look at\n * this but for safety we still recalcualte shared nodes.\n */\n node.isSharedProjectionDirty || (node.isSharedProjectionDirty = Boolean(node.isProjectionDirty ||\n node.parent.isProjectionDirty ||\n node.parent.isSharedProjectionDirty));\n node.isTransformDirty || (node.isTransformDirty = node.parent.isTransformDirty);\n}\nfunction cleanDirtyNodes(node) {\n node.isProjectionDirty =\n node.isSharedProjectionDirty =\n node.isTransformDirty =\n false;\n}\nfunction clearSnapshot(node) {\n node.clearSnapshot();\n}\nfunction clearMeasurements(node) {\n node.clearMeasurements();\n}\nfunction clearIsLayoutDirty(node) {\n node.isLayoutDirty = false;\n}\nfunction resetTransformStyle(node) {\n const { visualElement } = node.options;\n if (visualElement && visualElement.getProps().onBeforeLayoutMeasure) {\n visualElement.notify(\"BeforeLayoutMeasure\");\n }\n node.resetTransform();\n}\nfunction finishAnimation(node) {\n node.finishAnimation();\n node.targetDelta = node.relativeTarget = node.target = undefined;\n node.isProjectionDirty = true;\n}\nfunction resolveTargetDelta(node) {\n node.resolveTargetDelta();\n}\nfunction calcProjection(node) {\n node.calcProjection();\n}\nfunction resetSkewAndRotation(node) {\n node.resetSkewAndRotation();\n}\nfunction removeLeadSnapshots(stack) {\n stack.removeLeadSnapshot();\n}\nfunction mixAxisDelta(output, delta, p) {\n output.translate = mixNumber(delta.translate, 0, p);\n output.scale = mixNumber(delta.scale, 1, p);\n output.origin = delta.origin;\n output.originPoint = delta.originPoint;\n}\nfunction mixAxis(output, from, to, p) {\n output.min = mixNumber(from.min, to.min, p);\n output.max = mixNumber(from.max, to.max, p);\n}\nfunction mixBox(output, from, to, p) {\n mixAxis(output.x, from.x, to.x, p);\n mixAxis(output.y, from.y, to.y, p);\n}\nfunction hasOpacityCrossfade(node) {\n return (node.animationValues && node.animationValues.opacityExit !== undefined);\n}\nconst defaultLayoutTransition = {\n duration: 0.45,\n ease: [0.4, 0, 0.1, 1],\n};\nconst userAgentContains = (string) => typeof navigator !== \"undefined\" &&\n navigator.userAgent &&\n navigator.userAgent.toLowerCase().includes(string);\n/**\n * Measured bounding boxes must be rounded in Safari and\n * left untouched in Chrome, otherwise non-integer layouts within scaled-up elements\n * can appear to jump.\n */\nconst roundPoint = userAgentContains(\"applewebkit/\") && !userAgentContains(\"chrome/\")\n ? Math.round\n : noop;\nfunction roundAxis(axis) {\n // Round to the nearest .5 pixels to support subpixel layouts\n axis.min = roundPoint(axis.min);\n axis.max = roundPoint(axis.max);\n}\nfunction roundBox(box) {\n roundAxis(box.x);\n roundAxis(box.y);\n}\nfunction shouldAnimatePositionOnly(animationType, snapshot, layout) {\n return (animationType === \"position\" ||\n (animationType === \"preserve-aspect\" &&\n !isNear(aspectRatio(snapshot), aspectRatio(layout), 0.2)));\n}\nfunction checkNodeWasScrollRoot(node) {\n var _a;\n return node !== node.root && ((_a = node.scroll) === null || _a === void 0 ? void 0 : _a.wasRoot);\n}\n\nexport { cleanDirtyNodes, createProjectionNode, mixAxis, mixAxisDelta, mixBox, propagateDirtyNodes };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { addDomEvent } from '../../events/add-dom-event.mjs';\n\nconst DocumentProjectionNode = createProjectionNode({\n attachResizeListener: (ref, notify) => addDomEvent(ref, \"resize\", notify),\n measureScroll: () => ({\n x: document.documentElement.scrollLeft || document.body.scrollLeft,\n y: document.documentElement.scrollTop || document.body.scrollTop,\n }),\n checkIsScrollRoot: () => true,\n});\n\nexport { DocumentProjectionNode };\n","import { createProjectionNode } from './create-projection-node.mjs';\nimport { DocumentProjectionNode } from './DocumentProjectionNode.mjs';\n\nconst rootProjectionNode = {\n current: undefined,\n};\nconst HTMLProjectionNode = createProjectionNode({\n measureScroll: (instance) => ({\n x: instance.scrollLeft,\n y: instance.scrollTop,\n }),\n defaultParent: () => {\n if (!rootProjectionNode.current) {\n const documentNode = new DocumentProjectionNode({});\n documentNode.mount(window);\n documentNode.setOptions({ layoutScroll: true });\n rootProjectionNode.current = documentNode;\n }\n return rootProjectionNode.current;\n },\n resetTransform: (instance, value) => {\n instance.style.transform = value !== undefined ? value : \"none\";\n },\n checkIsScrollRoot: (instance) => Boolean(window.getComputedStyle(instance).position === \"fixed\"),\n});\n\nexport { HTMLProjectionNode, rootProjectionNode };\n","import { DragGesture } from '../../gestures/drag/index.mjs';\nimport { PanGesture } from '../../gestures/pan/index.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\nimport { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\n\nconst drag = {\n pan: {\n Feature: PanGesture,\n },\n drag: {\n Feature: DragGesture,\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { drag };\n","import { HTMLProjectionNode } from '../../projection/node/HTMLProjectionNode.mjs';\nimport { MeasureLayout } from './layout/MeasureLayout.mjs';\n\nconst layout = {\n layout: {\n ProjectionNode: HTMLProjectionNode,\n MeasureLayout,\n },\n};\n\nexport { layout };\n","import { animations } from '../../../motion/features/animations.mjs';\nimport { drag } from '../../../motion/features/drag.mjs';\nimport { gestureAnimations } from '../../../motion/features/gestures.mjs';\nimport { layout } from '../../../motion/features/layout.mjs';\nimport { createMotionComponentFactory } from '../create-factory.mjs';\nimport { createDomVisualElement } from '../../dom/create-visual-element.mjs';\n\nconst createMotionComponent = /*@__PURE__*/ createMotionComponentFactory({\n ...animations,\n ...gestureAnimations,\n ...drag,\n ...layout,\n}, createDomVisualElement);\n\nexport { createMotionComponent };\n","import { createDOMMotionComponentProxy } from '../create-proxy.mjs';\nimport { createMotionComponent } from './create.mjs';\n\nconst motion = /*@__PURE__*/ createDOMMotionComponentProxy(createMotionComponent);\n\nexport { motion };\n","import { invariant } from '../../../utils/errors.mjs';\n\nfunction resolveElements(elements, scope, selectorCache) {\n var _a;\n if (typeof elements === \"string\") {\n let root = document;\n if (scope) {\n invariant(Boolean(scope.current), \"Scope provided, but no element detected.\");\n root = scope.current;\n }\n if (selectorCache) {\n (_a = selectorCache[elements]) !== null && _a !== void 0 ? _a : (selectorCache[elements] = root.querySelectorAll(elements));\n elements = selectorCache[elements];\n }\n else {\n elements = root.querySelectorAll(elements);\n }\n }\n else if (elements instanceof Element) {\n elements = [elements];\n }\n /**\n * Return an empty array\n */\n return Array.from(elements || []);\n}\n\nexport { resolveElements };\n","import { resolveElements } from '../utils/resolve-element.mjs';\n\nconst thresholds = {\n some: 0,\n all: 1,\n};\nfunction inView(elementOrSelector, onStart, { root, margin: rootMargin, amount = \"some\" } = {}) {\n const elements = resolveElements(elementOrSelector);\n const activeIntersections = new WeakMap();\n const onIntersectionChange = (entries) => {\n entries.forEach((entry) => {\n const onEnd = activeIntersections.get(entry.target);\n /**\n * If there's no change to the intersection, we don't need to\n * do anything here.\n */\n if (entry.isIntersecting === Boolean(onEnd))\n return;\n if (entry.isIntersecting) {\n const newOnEnd = onStart(entry);\n if (typeof newOnEnd === \"function\") {\n activeIntersections.set(entry.target, newOnEnd);\n }\n else {\n observer.unobserve(entry.target);\n }\n }\n else if (onEnd) {\n onEnd(entry);\n activeIntersections.delete(entry.target);\n }\n });\n };\n const observer = new IntersectionObserver(onIntersectionChange, {\n root,\n rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholds[amount],\n });\n elements.forEach((element) => observer.observe(element));\n return () => observer.disconnect();\n}\n\nexport { inView };\n","import { useState, useEffect } from 'react';\nimport { inView } from '../render/dom/viewport/index.mjs';\n\nfunction useInView(ref, { root, margin, amount, once = false } = {}) {\n const [isInView, setInView] = useState(false);\n useEffect(() => {\n if (!ref.current || (once && isInView))\n return;\n const onEnter = () => {\n setInView(true);\n return once ? undefined : () => setInView(false);\n };\n const options = {\n root: (root && root.current) || undefined,\n margin,\n amount,\n };\n return inView(ref.current, onEnter, options);\n }, [root, ref, margin, once, amount]);\n return isInView;\n}\n\nexport { useInView };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { s as setCSSProperty, e as elementChildren, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n let cssModeTimeout;\n const document = getDocument();\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n const tempDOM = document.createElement('div');\n function renderSlide(slide, index) {\n const params = swiper.params.virtual;\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n // eslint-disable-next-line\n let slideEl;\n if (params.renderSlide) {\n slideEl = params.renderSlide.call(swiper, slide, index);\n if (typeof slideEl === 'string') {\n tempDOM.innerHTML = slideEl;\n slideEl = tempDOM.children[0];\n }\n } else if (swiper.isElement) {\n slideEl = createElement('swiper-slide');\n } else {\n slideEl = createElement('div', swiper.params.slideClass);\n }\n slideEl.setAttribute('data-swiper-slide-index', index);\n if (!params.renderSlide) {\n slideEl.innerHTML = slide;\n }\n if (params.cache) {\n swiper.virtual.cache[index] = slideEl;\n }\n return slideEl;\n }\n function update(force, beforeInit) {\n const {\n slidesPerView,\n slidesPerGroup,\n centeredSlides,\n loop: isLoop,\n initialSlide\n } = swiper.params;\n if (beforeInit && !isLoop && initialSlide > 0) {\n return;\n }\n const {\n addSlidesBefore,\n addSlidesAfter\n } = swiper.params.virtual;\n const {\n from: previousFrom,\n to: previousTo,\n slides,\n slidesGrid: previousSlidesGrid,\n offset: previousOffset\n } = swiper.virtual;\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n const activeIndex = swiper.activeIndex || 0;\n let offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n let slidesAfter;\n let slidesBefore;\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;\n }\n let from = activeIndex - slidesBefore;\n let to = activeIndex + slidesAfter;\n if (!isLoop) {\n from = Math.max(from, 0);\n to = Math.min(to, slides.length - 1);\n }\n let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n if (isLoop && activeIndex >= slidesBefore) {\n from -= slidesBefore;\n if (!centeredSlides) offset += swiper.slidesGrid[0];\n } else if (isLoop && activeIndex < slidesBefore) {\n from = -slidesBefore;\n if (centeredSlides) offset += swiper.slidesGrid[0];\n }\n Object.assign(swiper.virtual, {\n from,\n to,\n offset,\n slidesGrid: swiper.slidesGrid,\n slidesBefore,\n slidesAfter\n });\n function onRendered() {\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n emit('virtualUpdate');\n }\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n }\n swiper.updateProgress();\n emit('virtualUpdate');\n return;\n }\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset,\n from,\n to,\n slides: function getSlides() {\n const slidesToRender = [];\n for (let i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n return slidesToRender;\n }()\n });\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n } else {\n emit('virtualUpdate');\n }\n return;\n }\n const prependIndexes = [];\n const appendIndexes = [];\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n if (force) {\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n slideEl.remove();\n });\n } else {\n for (let i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n const slideIndex = getSlideIndex(i);\n swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n slideEl.remove();\n });\n }\n }\n }\n const loopFrom = isLoop ? -slides.length : 0;\n const loopTo = isLoop ? slides.length * 2 : slides.length;\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n const slideIndex = getSlideIndex(i);\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(slideIndex);\n } else {\n if (i > previousTo) appendIndexes.push(slideIndex);\n if (i < previousFrom) prependIndexes.push(slideIndex);\n }\n }\n }\n appendIndexes.forEach(index => {\n swiper.slidesEl.append(renderSlide(slides[index], index));\n });\n if (isLoop) {\n for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n const index = prependIndexes[i];\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n }\n } else {\n prependIndexes.sort((a, b) => b - a);\n prependIndexes.forEach(index => {\n swiper.slidesEl.prepend(renderSlide(slides[index], index));\n });\n }\n elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n });\n onRendered();\n }\n function appendSlide(slides) {\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n update(true);\n }\n function prependSlide(slides) {\n const activeIndex = swiper.activeIndex;\n let newActiveIndex = activeIndex + 1;\n let numberOfNewSlides = 1;\n if (Array.isArray(slides)) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n if (swiper.params.virtual.cache) {\n const cache = swiper.virtual.cache;\n const newCache = {};\n Object.keys(cache).forEach(cachedIndex => {\n const cachedEl = cache[cachedIndex];\n const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n if (cachedElIndex) {\n cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n let activeIndex = swiper.activeIndex;\n if (Array.isArray(slidesIndexes)) {\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n // shift cache indexes\n Object.keys(swiper.virtual.cache).forEach(key => {\n if (key > slidesIndexes) {\n swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n delete swiper.virtual.cache[key];\n }\n });\n }\n swiper.virtual.slides.splice(slidesIndexes, 1);\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n function removeAllSlides() {\n swiper.virtual.slides = [];\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n update(true);\n swiper.slideTo(0, 0);\n }\n on('beforeInit', () => {\n if (!swiper.params.virtual.enabled) return;\n let domSlidesAssigned;\n if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n if (slides && slides.length) {\n swiper.virtual.slides = [...slides];\n domSlidesAssigned = true;\n slides.forEach((slideEl, slideIndex) => {\n slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n swiper.virtual.cache[slideIndex] = slideEl;\n slideEl.remove();\n });\n }\n }\n if (!domSlidesAssigned) {\n swiper.virtual.slides = swiper.params.virtual.slides;\n }\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n update(false, true);\n });\n on('setTranslate', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(() => {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', () => {\n if (!swiper.params.virtual.enabled) return;\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide,\n prependSlide,\n removeSlide,\n removeAllSlides,\n update\n });\n}\n\nexport { Virtual as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { a as elementParents, b as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, d as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null,\n noMousewheelClass: 'swiper-no-mousewheel'\n }\n });\n swiper.mousewheel = {\n enabled: false\n };\n let timeout;\n let lastScrollTime = now();\n let lastEventBeforeSnap;\n const recentWheelEvents = [];\n function normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n }\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n }\n\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n lastScrollTime = new window.Date().getTime();\n // Return false as a default\n return false;\n }\n function releaseScroll(newEvent) {\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n }\n function handle(event) {\n let e = event;\n let disableParentSwiper = true;\n if (!swiper.enabled) return;\n\n // Ignore event if the target or its parents have the swiper-no-mousewheel class\n if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n const params = swiper.params.mousewheel;\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n const data = normalize(e);\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n if (delta === 0) return true;\n if (params.invert) delta = -delta;\n\n // Get the scroll positions\n let positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n };\n\n // Keep the most recent events\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n animateSlider(newEvent);\n }\n } else {\n animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n lastEventBeforeSnap = undefined;\n let position = swiper.getTranslate() + delta * params.sensitivity;\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n if (swiper.params.loop) {\n swiper.loopFix({\n direction: newEvent.direction < 0 ? 'next' : 'prev',\n byMousewheel: true\n });\n }\n if (swiper.params.freeMode.sticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(timeout);\n timeout = undefined;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n timeout = nextTick(() => {\n if (swiper.destroyed || !swiper.params) return;\n const snapToThreshold = 0.5;\n lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n return true;\n }\n }\n }\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n }\n function events(method) {\n let targetEl = swiper.el;\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n }\n targetEl[method]('mouseenter', handleMouseEnter);\n targetEl[method]('mouseleave', handleMouseLeave);\n targetEl[method]('wheel', handle);\n }\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n if (swiper.mousewheel.enabled) return false;\n events('addEventListener');\n swiper.mousewheel.enabled = true;\n return true;\n }\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n if (!swiper.mousewheel.enabled) return false;\n events('removeEventListener');\n swiper.mousewheel.enabled = false;\n return true;\n }\n on('init', () => {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', () => {\n if (swiper.params.cssMode) {\n enable();\n }\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable,\n disable\n });\n}\n\nexport { Mousewheel as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, f as elementOuterSize, h as elementIndex, a as elementParents } from '../shared/utils.mjs';\n\nfunction 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 paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\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 let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\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 bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\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.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = params.renderCustom(swiper, current + 1, total);\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](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.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\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 // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\">`;\n }\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 if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = paginationHTML || '';\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\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;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](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 el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(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[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { m as makeElementsArray, i as classesToTokens, c as createElement, n as nextTick, b as elementOffset } from '../shared/utils.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\n\nfunction Scrollbar(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n let isTouched = false;\n let timeout = null;\n let dragTimeout = null;\n let dragStartPos;\n let dragSize;\n let trackSize;\n let divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag',\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\n horizontalClass: `swiper-scrollbar-horizontal`,\n verticalClass: `swiper-scrollbar-vertical`\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null\n };\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n const params = swiper.params.scrollbar;\n const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;\n let newSize = dragSize;\n let newPos = (trackSize - dragSize) * progress;\n if (rtl) {\n newPos = -newPos;\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n if (swiper.isHorizontal()) {\n dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;\n dragEl.style.width = `${newSize}px`;\n } else {\n dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;\n dragEl.style.height = `${newSize}px`;\n }\n if (params.hide) {\n clearTimeout(timeout);\n el.style.opacity = 1;\n timeout = setTimeout(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n }\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;\n }\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n const {\n scrollbar\n } = swiper;\n const {\n dragEl,\n el\n } = scrollbar;\n dragEl.style.width = '';\n dragEl.style.height = '';\n trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n if (swiper.isHorizontal()) {\n dragEl.style.width = `${dragSize}px`;\n } else {\n dragEl.style.height = `${dragSize}px`;\n }\n if (divider >= 1) {\n el.style.display = 'none';\n } else {\n el.style.display = '';\n }\n if (swiper.params.scrollbar.hide) {\n el.style.opacity = 0;\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);\n }\n }\n function getPointerPosition(e) {\n return swiper.isHorizontal() ? e.clientX : e.clientY;\n }\n function setDragPosition(e) {\n const {\n scrollbar,\n rtlTranslate: rtl\n } = swiper;\n const {\n el\n } = scrollbar;\n let positionRatio;\n positionRatio = (getPointerPosition(e) - elementOffset(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n function onDragStart(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n isTouched = true;\n dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n wrapperEl.style.transitionDuration = '100ms';\n dragEl.style.transitionDuration = '100ms';\n setDragPosition(e);\n clearTimeout(dragTimeout);\n el.style.transitionDuration = '0ms';\n if (params.hide) {\n el.style.opacity = 1;\n }\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = 'none';\n }\n emit('scrollbarDragStart', e);\n }\n function onDragMove(e) {\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el,\n dragEl\n } = scrollbar;\n if (!isTouched) return;\n if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n wrapperEl.style.transitionDuration = '0ms';\n el.style.transitionDuration = '0ms';\n dragEl.style.transitionDuration = '0ms';\n emit('scrollbarDragMove', e);\n }\n function onDragEnd(e) {\n const params = swiper.params.scrollbar;\n const {\n scrollbar,\n wrapperEl\n } = swiper;\n const {\n el\n } = scrollbar;\n if (!isTouched) return;\n isTouched = false;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style['scroll-snap-type'] = '';\n wrapperEl.style.transitionDuration = '';\n }\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(() => {\n el.style.opacity = 0;\n el.style.transitionDuration = '400ms';\n }, 1000);\n }\n emit('scrollbarDragEnd', e);\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n function events(method) {\n const {\n scrollbar,\n params\n } = swiper;\n const el = scrollbar.el;\n if (!el) return;\n const target = el;\n const activeListener = params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n const passiveListener = params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n target[eventMethod]('pointerdown', onDragStart, activeListener);\n document[eventMethod]('pointermove', onDragMove, activeListener);\n document[eventMethod]('pointerup', onDragEnd, passiveListener);\n }\n function enableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('on');\n }\n function disableDraggable() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n events('off');\n }\n function init() {\n const {\n scrollbar,\n el: swiperEl\n } = swiper;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n const params = swiper.params.scrollbar;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = document.querySelectorAll(params.el);\n if (!el.length) return;\n } else if (!el) {\n el = params.el;\n }\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {\n el = swiperEl.querySelector(params.el);\n }\n if (el.length > 0) el = el[0];\n el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n let dragEl;\n if (el) {\n dragEl = el.querySelector(classesToSelector(swiper.params.scrollbar.dragClass));\n if (!dragEl) {\n dragEl = createElement('div', swiper.params.scrollbar.dragClass);\n el.append(dragEl);\n }\n }\n Object.assign(scrollbar, {\n el,\n dragEl\n });\n if (params.draggable) {\n enableDraggable();\n }\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n }\n function destroy() {\n const params = swiper.params.scrollbar;\n const el = swiper.scrollbar.el;\n if (el) {\n el.classList.remove(...classesToTokens(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));\n }\n disableDraggable();\n }\n on('changeDirection', () => {\n if (!swiper.scrollbar || !swiper.scrollbar.el) return;\n const params = swiper.params.scrollbar;\n let {\n el\n } = swiper.scrollbar;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.scrollbar.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n updateSize();\n setTranslate();\n }\n });\n on('update resize observerUpdate lock unlock changeDirection', () => {\n updateSize();\n });\n on('setTranslate', () => {\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n setTransition(duration);\n });\n on('enable disable', () => {\n const {\n el\n } = swiper.scrollbar;\n if (el) {\n el.classList[swiper.enabled ? 'remove' : 'add'](...classesToTokens(swiper.params.scrollbar.lockClass));\n }\n });\n on('destroy', () => {\n destroy();\n });\n const enable = () => {\n swiper.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.remove(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n init();\n updateSize();\n setTranslate();\n };\n const disable = () => {\n swiper.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n if (swiper.scrollbar.el) {\n swiper.scrollbar.el.classList.add(...classesToTokens(swiper.params.scrollbar.scrollbarDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.scrollbar, {\n enable,\n disable,\n updateSize,\n setTranslate,\n init,\n destroy\n });\n}\n\nexport { Scrollbar as default };\n","import { e as elementChildren } from '../shared/utils.mjs';\n\nfunction Parallax(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';\n const setTransform = (el, progress) => {\n const {\n rtl\n } = swiper;\n const rtlFactor = rtl ? -1 : 1;\n const p = el.getAttribute('data-swiper-parallax') || '0';\n let x = el.getAttribute('data-swiper-parallax-x');\n let y = el.getAttribute('data-swiper-parallax-y');\n const scale = el.getAttribute('data-swiper-parallax-scale');\n const opacity = el.getAttribute('data-swiper-parallax-opacity');\n const rotate = el.getAttribute('data-swiper-parallax-rotate');\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n if (x.indexOf('%') >= 0) {\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\n } else {\n x = `${x * progress * rtlFactor}px`;\n }\n if (y.indexOf('%') >= 0) {\n y = `${parseInt(y, 10) * progress}%`;\n } else {\n y = `${y * progress}px`;\n }\n if (typeof opacity !== 'undefined' && opacity !== null) {\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n el.style.opacity = currentOpacity;\n }\n let transform = `translate3d(${x}, ${y}, 0px)`;\n if (typeof scale !== 'undefined' && scale !== null) {\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n transform += ` scale(${currentScale})`;\n }\n if (rotate && typeof rotate !== 'undefined' && rotate !== null) {\n const currentRotate = rotate * progress * -1;\n transform += ` rotate(${currentRotate}deg)`;\n }\n el.style.transform = transform;\n };\n const setTranslate = () => {\n const {\n el,\n slides,\n progress,\n snapGrid,\n isElement\n } = swiper;\n const elements = elementChildren(el, elementsSelector);\n if (swiper.isElement) {\n elements.push(...elementChildren(swiper.hostEl, elementsSelector));\n }\n elements.forEach(subEl => {\n setTransform(subEl, progress);\n });\n slides.forEach((slideEl, slideIndex) => {\n let slideProgress = slideEl.progress;\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {\n setTransform(subEl, slideProgress);\n });\n });\n };\n const setTransition = function (duration) {\n if (duration === void 0) {\n duration = swiper.params.speed;\n }\n const {\n el,\n hostEl\n } = swiper;\n const elements = [...el.querySelectorAll(elementsSelector)];\n if (swiper.isElement) {\n elements.push(...hostEl.querySelectorAll(elementsSelector));\n }\n elements.forEach(parallaxEl => {\n let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;\n });\n };\n on('beforeInit', () => {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', () => {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', (_swiper, duration) => {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n}\n\nexport { Parallax as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren, a as elementParents, b as elementOffset, j as getTranslate } from '../shared/utils.mjs';\n\nfunction Zoom(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n limitToOriginalSize: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n let currentScale = 1;\n let isScaling = false;\n let fakeGestureTouched;\n let fakeGestureMoved;\n const evCache = [];\n const gesture = {\n originX: 0,\n originY: 0,\n slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n imageEl: undefined,\n imageWrapEl: undefined,\n maxRatio: 3\n };\n const image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n const velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n let scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get() {\n return scale;\n },\n set(value) {\n if (scale !== value) {\n const imageEl = gesture.imageEl;\n const slideEl = gesture.slideEl;\n emit('zoomChange', value, imageEl, slideEl);\n }\n scale = value;\n }\n });\n function getDistanceBetweenTouches() {\n if (evCache.length < 2) return 1;\n const x1 = evCache[0].pageX;\n const y1 = evCache[0].pageY;\n const x2 = evCache[1].pageX;\n const y2 = evCache[1].pageY;\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\n return distance;\n }\n function getMaxRatio() {\n const params = swiper.params.zoom;\n const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;\n if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {\n const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;\n return Math.min(imageMaxRatio, maxRatio);\n }\n return maxRatio;\n }\n function getScaleOrigin() {\n if (evCache.length < 2) return {\n x: null,\n y: null\n };\n const box = gesture.imageEl.getBoundingClientRect();\n return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];\n }\n function getSlideSelector() {\n return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n }\n function eventWithinSlide(e) {\n const slideSelector = getSlideSelector();\n if (e.target.matches(slideSelector)) return true;\n if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;\n return false;\n }\n function eventWithinZoomContainer(e) {\n const selector = `.${swiper.params.zoom.containerClass}`;\n if (e.target.matches(selector)) return true;\n if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;\n return false;\n }\n\n // Events\n function onGestureStart(e) {\n if (e.pointerType === 'mouse') {\n evCache.splice(0, evCache.length);\n }\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n evCache.push(e);\n if (evCache.length < 2) {\n return;\n }\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches();\n if (!gesture.slideEl) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n if (!gesture.imageWrapEl) {\n gesture.imageEl = undefined;\n return;\n }\n gesture.maxRatio = getMaxRatio();\n }\n if (gesture.imageEl) {\n const [originX, originY] = getScaleOrigin();\n gesture.originX = originX;\n gesture.originY = originY;\n gesture.imageEl.style.transitionDuration = '0ms';\n }\n isScaling = true;\n }\n function onGestureChange(e) {\n if (!eventWithinSlide(e)) return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache[pointerIndex] = e;\n if (evCache.length < 2) {\n return;\n }\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches();\n if (!gesture.imageEl) {\n return;\n }\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\n }\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\n }\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function onGestureEnd(e) {\n if (!eventWithinSlide(e)) return;\n if (e.pointerType === 'mouse' && e.type === 'pointerout') return;\n const params = swiper.params.zoom;\n const zoom = swiper.zoom;\n const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n if (!gesture.imageEl) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale > 1 && gesture.slideEl) {\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n } else if (zoom.scale <= 1 && gesture.slideEl) {\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n }\n if (zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n gesture.slideEl = undefined;\n }\n }\n let allowTouchMoveTimeout;\n function allowTouchMove() {\n swiper.touchEventsData.preventTouchMoveFromPointerMove = false;\n }\n function preventTouchMove() {\n clearTimeout(allowTouchMoveTimeout);\n swiper.touchEventsData.preventTouchMoveFromPointerMove = true;\n allowTouchMoveTimeout = setTimeout(() => {\n if (swiper.destroyed) return;\n allowTouchMove();\n });\n }\n function onTouchStart(e) {\n const device = swiper.device;\n if (!gesture.imageEl) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n const event = evCache.length > 0 ? evCache[0] : e;\n image.touchesStart.x = event.pageX;\n image.touchesStart.y = event.pageY;\n }\n function onTouchMove(e) {\n if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {\n return;\n }\n const zoom = swiper.zoom;\n if (!gesture.imageEl) {\n return;\n }\n if (!image.isTouched || !gesture.slideEl) {\n return;\n }\n if (!image.isMoved) {\n image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n image.startX = getTranslate(gesture.imageWrapEl, 'x') || 0;\n image.startY = getTranslate(gesture.imageWrapEl, 'y') || 0;\n gesture.slideWidth = gesture.slideEl.offsetWidth;\n gesture.slideHeight = gesture.slideEl.offsetHeight;\n gesture.imageWrapEl.style.transitionDuration = '0ms';\n }\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;\n image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;\n const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));\n if (touchesDiff > 5) {\n swiper.allowClick = false;\n }\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n allowTouchMove();\n return;\n }\n }\n if (e.cancelable) {\n e.preventDefault();\n }\n e.stopPropagation();\n preventTouchMove();\n image.isMoved = true;\n const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);\n const {\n originX,\n originY\n } = gesture;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\n }\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\n }\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\n }\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\n }\n\n // Velocity\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTouchEnd() {\n const zoom = swiper.zoom;\n if (!gesture.imageEl) return;\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n image.isTouched = false;\n image.isMoved = false;\n let momentumDurationX = 300;\n let momentumDurationY = 300;\n const momentumDistanceX = velocity.x * momentumDurationX;\n const newPositionX = image.currentX + momentumDistanceX;\n const momentumDistanceY = velocity.y * momentumDurationY;\n const newPositionY = image.currentY + momentumDistanceY;\n\n // Fix duration\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY;\n // Define if we need image drag\n const scaledWidth = image.width * zoom.scale;\n const scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;\n gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;\n }\n function onTransitionEnd() {\n const zoom = swiper.zoom;\n if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {\n if (gesture.imageEl) {\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n }\n if (gesture.imageWrapEl) {\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n }\n gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);\n zoom.scale = 1;\n currentScale = 1;\n gesture.slideEl = undefined;\n gesture.imageEl = undefined;\n gesture.imageWrapEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n }\n function zoomIn(e) {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (e && e.target) {\n gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n }\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);\n let touchX;\n let touchY;\n let offsetX;\n let offsetY;\n let diffX;\n let diffY;\n let translateX;\n let translateY;\n let imageWidth;\n let imageHeight;\n let scaledWidth;\n let scaledHeight;\n let translateMinX;\n let translateMinY;\n let translateMaxX;\n let translateMaxY;\n let slideWidth;\n let slideHeight;\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.pageX;\n touchY = e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n const forceZoomRatio = typeof e === 'number' ? e : null;\n if (currentScale === 1 && forceZoomRatio) {\n touchX = undefined;\n touchY = undefined;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n }\n const maxRatio = getMaxRatio();\n zoom.scale = forceZoomRatio || maxRatio;\n currentScale = forceZoomRatio || maxRatio;\n if (e && !(currentScale === 1 && forceZoomRatio)) {\n slideWidth = gesture.slideEl.offsetWidth;\n slideHeight = gesture.slideEl.offsetHeight;\n offsetX = elementOffset(gesture.slideEl).left + window.scrollX;\n offsetY = elementOffset(gesture.slideEl).top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;\n imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n if (forceZoomRatio && zoom.scale === 1) {\n gesture.originX = 0;\n gesture.originY = 0;\n }\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;\n }\n function zoomOut() {\n const zoom = swiper.zoom;\n const params = swiper.params.zoom;\n if (!gesture.slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.slideEl = elementChildren(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];\n } else {\n gesture.slideEl = swiper.slides[swiper.activeIndex];\n }\n let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);\n if (imageEl) {\n imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];\n }\n gesture.imageEl = imageEl;\n if (imageEl) {\n gesture.imageWrapEl = elementParents(gesture.imageEl, `.${params.containerClass}`)[0];\n } else {\n gesture.imageWrapEl = undefined;\n }\n }\n if (!gesture.imageEl || !gesture.imageWrapEl) return;\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n zoom.scale = 1;\n currentScale = 1;\n image.touchesStart.x = undefined;\n image.touchesStart.y = undefined;\n gesture.imageWrapEl.style.transitionDuration = '300ms';\n gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';\n gesture.imageEl.style.transitionDuration = '300ms';\n gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';\n gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);\n gesture.slideEl = undefined;\n gesture.originX = 0;\n gesture.originY = 0;\n }\n\n // Toggle Zoom\n function zoomToggle(e) {\n const zoom = swiper.zoom;\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n function getListeners() {\n const passiveListener = swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n const activeListenerWithCapture = swiper.params.passiveListeners ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener,\n activeListenerWithCapture\n };\n }\n\n // Attach/Detach Events\n function enable() {\n const zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n function disable() {\n const zoom = swiper.zoom;\n if (!zoom.enabled) return;\n zoom.enabled = false;\n const {\n passiveListener,\n activeListenerWithCapture\n } = getListeners();\n\n // Scale image\n swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);\n swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);\n ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {\n swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);\n });\n\n // Move image\n swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);\n }\n on('init', () => {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n disable();\n });\n on('touchStart', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', (_s, e) => {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', (_s, e) => {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', () => {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable,\n disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n}\n\nexport { Zoom as default };\n","import { n as nextTick, k as elementTransitionEnd } from '../shared/utils.mjs';\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nfunction Controller(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n }\n });\n\n swiper.controller = {\n control: undefined\n };\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n return maxIndex;\n };\n }();\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1;\n // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n let i1;\n let i3;\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0;\n\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1;\n\n // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n return this;\n }\n function getInterpolateFunction(c) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n function setControlledTranslate(c) {\n if (c.destroyed) return;\n\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c);\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {\n multiplier = 1;\n }\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n function setControlledTransition(c) {\n if (c.destroyed) return;\n c.setTransition(duration, swiper);\n if (duration !== 0) {\n c.transitionStart();\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n elementTransitionEnd(c.wrapperEl, () => {\n if (!controlled) return;\n c.transitionEnd();\n });\n }\n }\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n function removeSpline() {\n if (!swiper.controller.control) return;\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n on('beforeInit', () => {\n if (typeof window !== 'undefined' && (\n // eslint-disable-line\n typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {\n const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];\n controlElements.forEach(controlElement => {\n if (!swiper.controller.control) swiper.controller.control = [];\n if (controlElement && controlElement.swiper) {\n swiper.controller.control.push(controlElement.swiper);\n } else if (controlElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onControllerSwiper = e => {\n swiper.controller.control.push(e.detail[0]);\n swiper.update();\n controlElement.removeEventListener(eventName, onControllerSwiper);\n };\n controlElement.addEventListener(eventName, onControllerSwiper);\n }\n });\n return;\n }\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control || swiper.controller.control.destroyed) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}\n\nexport { Controller as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, h as elementIndex, m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n notification.innerHTML = '';\n notification.innerHTML = message;\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);\n } else {\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n if (params.containerRole) {\n addElRole(containerEl, params.containerRole);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { a as getWindow } from '../shared/ssr-window.esm.mjs';\n\nfunction History(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides',\n keepQuery: false\n }\n });\n let initialized = false;\n let paths = {};\n const slugify = text => {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n const getPathValues = urlOverride => {\n const window = getWindow();\n let location;\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');\n const total = pathArray.length;\n const key = pathArray[total - 2];\n const value = pathArray[total - 1];\n return {\n key,\n value\n };\n };\n const setHistory = (key, index) => {\n const window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n let location;\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${index}\"]`) : swiper.slides[index];\n let value = slugify(slide.getAttribute('data-history'));\n if (swiper.params.history.root.length > 0) {\n let root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = `${root}/${key ? `${key}/` : ''}${value}`;\n } else if (!location.pathname.includes(key)) {\n value = `${key ? `${key}/` : ''}${value}`;\n }\n if (swiper.params.history.keepQuery) {\n value += location.search;\n }\n const currentState = window.history.state;\n if (currentState && currentState.value === value) {\n return;\n }\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value\n }, null, value);\n } else {\n window.history.pushState({\n value\n }, null, value);\n }\n };\n const scrollToSlide = (speed, value, runCallbacks) => {\n if (value) {\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\n const slide = swiper.slides[i];\n const slideHistory = slugify(slide.getAttribute('data-history'));\n if (slideHistory === value) {\n const index = swiper.getSlideIndex(slide);\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n const setHistoryPopState = () => {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, paths.value, false);\n };\n const init = () => {\n const window = getWindow();\n if (!swiper.params.history) return;\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) {\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n return;\n }\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n const destroy = () => {\n const window = getWindow();\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n on('init', () => {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n}\n\nexport { History as default };\n","import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { e as elementChildren } from '../shared/utils.mjs';\n\nfunction HashNavigation(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n on\n } = _ref;\n let initialized = false;\n const document = getDocument();\n const window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false,\n getSlideIndex(_s, hash) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];\n if (!slideWithHash) return 0;\n const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);\n return index;\n }\n return swiper.getSlideIndex(elementChildren(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash=\"${hash}\"], swiper-slide[data-hash=\"${hash}\"]`)[0]);\n }\n }\n });\n const onHashChange = () => {\n emit('hashChange');\n const newHash = document.location.hash.replace('#', '');\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';\n if (newHash !== activeSlideHash) {\n const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);\n if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;\n swiper.slideTo(newIndex);\n }\n };\n const setHash = () => {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index=\"${swiper.activeIndex}\"]`) : swiper.slides[swiper.activeIndex];\n const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, `#${activeSlideHash}` || '');\n emit('hashSet');\n } else {\n document.location.hash = activeSlideHash || '';\n emit('hashSet');\n }\n };\n const init = () => {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n const hash = document.location.hash.replace('#', '');\n if (hash) {\n const speed = 0;\n const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);\n swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);\n }\n if (swiper.params.hashNavigation.watchState) {\n window.addEventListener('hashchange', onHashChange);\n }\n };\n const destroy = () => {\n if (swiper.params.hashNavigation.watchState) {\n window.removeEventListener('hashchange', onHashChange);\n }\n };\n on('init', () => {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', () => {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', () => {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', () => {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n}\n\nexport { HashNavigation as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { l as isObject, e as elementChildren } from '../shared/utils.mjs';\n\nfunction Thumb(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n if (swiper.params.loop) {\n swiper.slideToLoop(slideToIndex);\n } else {\n swiper.slideTo(slideToIndex);\n }\n }\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper.update();\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n\n // Activate thumbs\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n elementChildren(thumbsSwiper.slidesEl, `[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).forEach(slideEl => {\n slideEl.classList.add(thumbActiveClass);\n });\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n if (thumbsSwiper.slides[swiper.realIndex + i]) {\n thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);\n }\n }\n }\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n const currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n if (thumbsSwiper.params.loop) {\n const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];\n newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {\n const document = getDocument();\n const getThumbsElementAndInit = () => {\n const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;\n if (thumbsElement && thumbsElement.swiper) {\n thumbs.swiper = thumbsElement.swiper;\n init();\n update(true);\n } else if (thumbsElement) {\n const eventName = `${swiper.params.eventsPrefix}init`;\n const onThumbsSwiper = e => {\n thumbs.swiper = e.detail[0];\n thumbsElement.removeEventListener(eventName, onThumbsSwiper);\n init();\n update(true);\n thumbs.swiper.update();\n swiper.update();\n };\n thumbsElement.addEventListener(eventName, onThumbsSwiper);\n }\n return thumbsElement;\n };\n const watchForThumbsToAppear = () => {\n if (swiper.destroyed) return;\n const thumbsElement = getThumbsElementAndInit();\n if (!thumbsElement) {\n requestAnimationFrame(watchForThumbsToAppear);\n }\n };\n requestAnimationFrame(watchForThumbsToAppear);\n } else {\n init();\n update(true);\n }\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}\n\nexport { Thumb as default };\n","import { d as now, k as elementTransitionEnd } from '../shared/utils.mjs';\n\nfunction freeMode(_ref) {\n let {\n swiper,\n extendParams,\n emit,\n once\n } = _ref;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n function onTouchStart() {\n if (swiper.params.cssMode) return;\n const translate = swiper.getTranslate();\n swiper.setTranslate(translate);\n swiper.setTransition(0);\n swiper.touchEventsData.velocities.length = 0;\n swiper.freeMode.onTouchEnd({\n currentPos: swiper.rtl ? swiper.translate : -swiper.translate\n });\n }\n function onTouchMove() {\n if (swiper.params.cssMode) return;\n const {\n touchEventsData: data,\n touches\n } = swiper;\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n }\n function onTouchEnd(_ref2) {\n let {\n currentPos\n } = _ref2;\n if (swiper.params.cssMode) return;\n const {\n params,\n wrapperEl,\n rtlTranslate: rtl,\n snapGrid,\n touchEventsData: data\n } = swiper;\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n if (params.freeMode.momentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeMode.momentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeMode.sticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeMode.sticky) {\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n if (params.freeMode.momentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n elementTransitionEnd(wrapperEl, () => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n emit('_freeModeStaticRelease');\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n Object.assign(swiper, {\n freeMode: {\n onTouchStart,\n onTouchMove,\n onTouchEnd\n }\n });\n}\n\nexport { freeMode as default };\n","function effectInit(params) {\n const {\n effect,\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams,\n perspective,\n recreateShadows,\n getEffectParams\n } = params;\n on('beforeInit', () => {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\n if (perspective && perspective()) {\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\n }\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', () => {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', (_s, duration) => {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n on('transitionEnd', () => {\n if (swiper.params.effect !== effect) return;\n if (recreateShadows) {\n if (!getEffectParams || !getEffectParams().slideShadows) return;\n // remove shadows\n swiper.slides.forEach(slideEl => {\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());\n });\n // create new one\n recreateShadows();\n }\n });\n let requireUpdateOnVirtual;\n on('virtualUpdate', () => {\n if (swiper.params.effect !== effect) return;\n if (!swiper.slides.length) {\n requireUpdateOnVirtual = true;\n }\n requestAnimationFrame(() => {\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\n setTranslate();\n requireUpdateOnVirtual = false;\n }\n });\n });\n}\n\nexport { effectInit as e };\n","import { g as getSlideTransformEl } from './utils.mjs';\n\nfunction effectTarget(effectParams, slideEl) {\n const transformEl = getSlideTransformEl(slideEl);\n if (transformEl !== slideEl) {\n transformEl.style.backfaceVisibility = 'hidden';\n transformEl.style['-webkit-backface-visibility'] = 'hidden';\n }\n return transformEl;\n}\n\nexport { effectTarget as e };\n","import { k as elementTransitionEnd } from './utils.mjs';\n\nfunction effectVirtualTransitionEnd(_ref) {\n let {\n swiper,\n duration,\n transformElements,\n allSlides\n } = _ref;\n const {\n activeIndex\n } = swiper;\n const getSlide = el => {\n if (!el.parentElement) {\n // assume shadow root\n const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];\n return slide;\n }\n return el.parentElement;\n };\n if (swiper.params.virtualTranslate && duration !== 0) {\n let eventTriggered = false;\n let transitionEndTarget;\n if (allSlides) {\n transitionEndTarget = transformElements;\n } else {\n transitionEndTarget = transformElements.filter(transformEl => {\n const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;\n return swiper.getSlideIndex(el) === activeIndex;\n });\n }\n transitionEndTarget.forEach(el => {\n elementTransitionEnd(el, () => {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true\n });\n swiper.wrapperEl.dispatchEvent(evt);\n });\n });\n }\n}\n\nexport { effectVirtualTransitionEnd as e };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectFade(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n fadeEffect: {\n crossFade: false\n }\n });\n const setTranslate = () => {\n const {\n slides\n } = swiper;\n const params = swiper.params.fadeEffect;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = swiper.slides[i];\n const offset = slideEl.swiperSlideOffset;\n let tx = -offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.opacity = slideOpacity;\n targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'fade',\n swiper,\n on,\n setTranslate,\n setTransition,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFade as default };\n","import { e as effectInit } from '../shared/effect-init.mjs';\nimport { c as createElement, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCube(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n const createSlideShadows = (slideEl, progress, isHorizontal) => {\n let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));\n slideEl.append(shadowBefore);\n }\n if (!shadowAfter) {\n shadowAfter = createElement('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));\n slideEl.append(shadowAfter);\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // create new ones\n const isHorizontal = swiper.isHorizontal();\n swiper.slides.forEach(slideEl => {\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n createSlideShadows(slideEl, progress, isHorizontal);\n });\n };\n const setTranslate = () => {\n const {\n el,\n wrapperEl,\n slides,\n width: swiperWidth,\n height: swiperHeight,\n rtlTranslate: rtl,\n size: swiperSize,\n browser\n } = swiper;\n const r = getRotateFix(swiper);\n const params = swiper.params.cubeEffect;\n const isHorizontal = swiper.isHorizontal();\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let wrapperRotate = 0;\n let cubeShadowEl;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n swiper.wrapperEl.append(cubeShadowEl);\n }\n cubeShadowEl.style.height = `${swiperWidth}px`;\n } else {\n cubeShadowEl = el.querySelector('.swiper-cube-shadow');\n if (!cubeShadowEl) {\n cubeShadowEl = createElement('div', 'swiper-cube-shadow');\n el.append(cubeShadowEl);\n }\n }\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let slideIndex = i;\n if (isVirtual) {\n slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);\n }\n let slideAngle = slideIndex * 90;\n let round = Math.floor(slideAngle / 360);\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\n let tx = 0;\n let ty = 0;\n let tz = 0;\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n if (rtl) {\n tx = -tx;\n }\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n slideEl.style.transform = transform;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress, isHorizontal);\n }\n }\n wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;\n wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;\n if (params.shadow) {\n if (isHorizontal) {\n cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;\n } else {\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n const scale1 = params.shadowScale;\n const scale2 = params.shadowScale / multiplier;\n const offset = params.shadowOffset;\n cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;\n }\n }\n const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;\n wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;\n wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\n };\n const setTransition = duration => {\n const {\n el,\n slides\n } = swiper;\n slides.forEach(slideEl => {\n slideEl.style.transitionDuration = `${duration}ms`;\n slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {\n subEl.style.transitionDuration = `${duration}ms`;\n });\n });\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n const shadowEl = el.querySelector('.swiper-cube-shadow');\n if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;\n }\n };\n effectInit({\n effect: 'cube',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.cubeEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n })\n });\n}\n\nexport { EffectCube as default };\n","import { g as getSlideTransformEl, c as createElement } from './utils.mjs';\n\nfunction createShadow(suffix, slideEl, side) {\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;\n const shadowContainer = getSlideTransformEl(slideEl);\n let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);\n if (!shadowEl) {\n shadowEl = createElement('div', shadowClass.split(' '));\n shadowContainer.append(shadowEl);\n }\n return shadowEl;\n}\n\nexport { createShadow as c };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectFlip(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n });\n const createSlideShadows = (slideEl, progress) => {\n let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBefore) {\n shadowBefore = createShadow('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n if (!shadowAfter) {\n shadowAfter = createShadow('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);\n if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);\n };\n const recreateShadows = () => {\n // Set shadows\n swiper.params.flipEffect;\n swiper.slides.forEach(slideEl => {\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n createSlideShadows(slideEl, progress);\n });\n };\n const setTranslate = () => {\n const {\n slides,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.flipEffect;\n const rotateFix = getRotateFix(swiper);\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n let progress = slideEl.progress;\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\n }\n const offset = slideEl.swiperSlideOffset;\n const rotate = -180 * progress;\n let rotateY = rotate;\n let rotateX = 0;\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let ty = 0;\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n if (params.slideShadows) {\n createSlideShadows(slideEl, progress);\n }\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'flip',\n swiper,\n on,\n setTranslate,\n setTransition,\n recreateShadows,\n getEffectParams: () => swiper.params.flipEffect,\n perspective: () => true,\n overwriteParams: () => ({\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectFlip as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCoverflow(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n });\n const setTranslate = () => {\n const {\n width: swiperWidth,\n height: swiperHeight,\n slides,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.coverflowEffect;\n const isHorizontal = swiper.isHorizontal();\n const transform = swiper.translate;\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n const rotate = isHorizontal ? params.rotate : -params.rotate;\n const translate = params.depth;\n const r = getRotateFix(swiper);\n // Each slide offset from center\n for (let i = 0, length = slides.length; i < length; i += 1) {\n const slideEl = slides[i];\n const slideSize = slidesSizesGrid[i];\n const slideOffset = slideEl.swiperSlideOffset;\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\n const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\n // var rotateZ = 0\n let translateZ = -translate * Math.abs(offsetMultiplier);\n let stretch = params.stretch;\n // Allow percentage to make a relative stretch for responsive sliders\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\n\n // Fix for ultra small values\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = slideTransform;\n slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n if (params.slideShadows) {\n // Set shadows\n let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');\n let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');\n if (!shadowBeforeEl) {\n shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');\n }\n if (!shadowAfterEl) {\n shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');\n }\n if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n };\n effectInit({\n effect: 'coverflow',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true\n })\n });\n}\n\nexport { EffectCoverflow as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl, o as getRotateFix } from '../shared/utils.mjs';\n\nfunction EffectCreative(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n creativeEffect: {\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n const getTranslateValue = value => {\n if (typeof value === 'string') return value;\n return `${value}px`;\n };\n const setTranslate = () => {\n const {\n slides,\n wrapperEl,\n slidesSizesGrid\n } = swiper;\n const params = swiper.params.creativeEffect;\n const {\n progressMultiplier: multiplier\n } = params;\n const isCenteredSlides = swiper.params.centeredSlides;\n const rotateFix = getRotateFix(swiper);\n if (isCenteredSlides) {\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\n wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);\n let originalProgress = progress;\n if (!isCenteredSlides) {\n originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);\n }\n const offset = slideEl.swiperSlideOffset;\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n const r = [0, 0, 0];\n let custom = false;\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n let data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n }\n // set translate\n t.forEach((value, index) => {\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;\n });\n // set rotates\n r.forEach((value, index) => {\n let val = data.rotate[index] * Math.abs(progress * multiplier);\n r[index] = val;\n });\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const translateString = t.join(', ');\n const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;\n const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\n const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\n\n // Set shadows\n if (custom && data.shadow || !custom) {\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl && data.shadow) {\n shadowEl = createShadow('creative', slideEl);\n }\n if (shadowEl) {\n const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n targetEl.style.opacity = opacityString;\n if (data.origin) {\n targetEl.style.transformOrigin = data.origin;\n }\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements,\n allSlides: true\n });\n };\n effectInit({\n effect: 'creative',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => swiper.params.creativeEffect.perspective,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCreative as default };\n","import { c as createShadow } from '../shared/create-shadow.mjs';\nimport { e as effectInit } from '../shared/effect-init.mjs';\nimport { e as effectTarget } from '../shared/effect-target.mjs';\nimport { e as effectVirtualTransitionEnd } from '../shared/effect-virtual-transition-end.mjs';\nimport { g as getSlideTransformEl } from '../shared/utils.mjs';\n\nfunction EffectCards(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n rotate: true,\n perSlideRotate: 2,\n perSlideOffset: 8\n }\n });\n const setTranslate = () => {\n const {\n slides,\n activeIndex,\n rtlTranslate: rtl\n } = swiper;\n const params = swiper.params.cardsEffect;\n const {\n startTranslate,\n isTouched\n } = swiper.touchEventsData;\n const currentTranslate = rtl ? -swiper.translate : swiper.translate;\n for (let i = 0; i < slides.length; i += 1) {\n const slideEl = slides[i];\n const slideProgress = slideEl.progress;\n const progress = Math.min(Math.max(slideProgress, -4), 4);\n let offset = slideEl.swiperSlideOffset;\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;\n }\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n offset -= slides[0].swiperSlideOffset;\n }\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\n let tY = 0;\n const tZ = -100 * Math.abs(progress);\n let scale = 1;\n let rotate = -params.perSlideRotate * progress;\n let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;\n const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\n const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n if (isSwipeToNext || isSwipeToPrev) {\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\n }\n if (progress < 0) {\n // next\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;\n } else if (progress > 0) {\n // prev\n tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;\n } else {\n tX = `${tX}px`;\n }\n if (!swiper.isHorizontal()) {\n const prevY = tY;\n tY = tX;\n tX = prevY;\n }\n const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\n\n /* eslint-disable */\n const transform = `\n translate3d(${tX}, ${tY}, ${tZ}px)\n rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)\n scale(${scaleString})\n `;\n /* eslint-enable */\n\n if (params.slideShadows) {\n // Set shadows\n let shadowEl = slideEl.querySelector('.swiper-slide-shadow');\n if (!shadowEl) {\n shadowEl = createShadow('cards', slideEl);\n }\n if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n const targetEl = effectTarget(params, slideEl);\n targetEl.style.transform = transform;\n }\n };\n const setTransition = duration => {\n const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));\n transformElements.forEach(el => {\n el.style.transitionDuration = `${duration}ms`;\n el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {\n shadowEl.style.transitionDuration = `${duration}ms`;\n });\n });\n effectVirtualTransitionEnd({\n swiper,\n duration,\n transformElements\n });\n };\n effectInit({\n effect: 'cards',\n swiper,\n on,\n setTranslate,\n setTransition,\n perspective: () => true,\n overwriteParams: () => ({\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n })\n });\n}\n\nexport { EffectCards as default };\n","export {default as Virtual} from './virtual.mjs';\nexport {default as Keyboard} from './keyboard.mjs';\nexport {default as Mousewheel} from './mousewheel.mjs';\nexport {default as Navigation} from './navigation.mjs';\nexport {default as Pagination} from './pagination.mjs';\nexport {default as Scrollbar} from './scrollbar.mjs';\nexport {default as Parallax} from './parallax.mjs';\nexport {default as Zoom} from './zoom.mjs';\nexport {default as Controller} from './controller.mjs';\nexport {default as A11y} from './a11y.mjs';\nexport {default as History} from './history.mjs';\nexport {default as HashNavigation} from './hash-navigation.mjs';\nexport {default as Autoplay} from './autoplay.mjs';\nexport {default as Thumbs} from './thumbs.mjs';\nexport {default as FreeMode} from './free-mode.mjs';\nexport {default as Grid} from './grid.mjs';\nexport {default as Manipulation} from './manipulation.mjs';\nexport {default as EffectFade} from './effect-fade.mjs';\nexport {default as EffectCube} from './effect-cube.mjs';\nexport {default as EffectFlip} from './effect-flip.mjs';\nexport {default as EffectCoverflow} from './effect-coverflow.mjs';\nexport {default as EffectCreative} from './effect-creative.mjs';\nexport {default as EffectCards} from './effect-cards.mjs';","/**\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 && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target, src) {\n if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\n Object.keys(src).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 extend(target[key], src[key]);\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}\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 { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n}\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n return setTimeout(callback, delay);\n}\nfunction now() {\n return Date.now();\n}\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n if (!style) {\n style = el.style;\n }\n return style;\n}\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el);\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n}\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\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 return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (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 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 return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\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 const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n const animate = () => {\n time = new Date().getTime();\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\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 swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n animate();\n}\nfunction getSlideTransformEl(slideEl) {\n return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector) {\n if (selector === void 0) {\n selector = '';\n }\n const children = [...element.children];\n if (element instanceof HTMLSlotElement) {\n children.push(...element.assignedElements());\n }\n if (!selector) {\n return children;\n }\n return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOf(el, parent) {\n const isChild = parent.contains(el);\n if (!isChild && parent instanceof HTMLSlotElement) {\n const children = [...parent.assignedElements()];\n return children.includes(el);\n }\n return isChild;\n}\nfunction showWarning(text) {\n try {\n console.warn(text);\n return;\n } catch (err) {\n // err\n }\n}\nfunction createElement(tag, classes) {\n if (classes === void 0) {\n classes = [];\n }\n const el = document.createElement(tag);\n el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n return el;\n}\nfunction elementOffset(el) {\n const window = getWindow();\n const document = getDocument();\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}\nfunction elementPrevAll(el, selector) {\n const prevEls = [];\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if (prev.matches(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return prevEls;\n}\nfunction elementNextAll(el, selector) {\n const nextEls = [];\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if (next.matches(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return nextEls;\n}\nfunction elementStyle(el, prop) {\n const window = getWindow();\n return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n let child = el;\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\nfunction elementParents(el, selector) {\n const parents = []; // eslint-disable-line\n let parent = el.parentElement; // eslint-disable-line\n while (parent) {\n if (selector) {\n if (parent.matches(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentElement;\n }\n return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n function fireCallBack(e) {\n if (e.target !== el) return;\n callback.call(el, e);\n el.removeEventListener('transitionend', fireCallBack);\n }\n if (callback) {\n el.addEventListener('transitionend', fireCallBack);\n }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n const window = getWindow();\n if (includeMargins) {\n return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n }\n return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n return v => {\n if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n return v + 0.001;\n }\n return v;\n };\n}\n\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, getSlideTransformEl as g, elementIndex as h, classesToTokens as i, getTranslate as j, elementTransitionEnd as k, isObject as l, makeElementsArray as m, nextTick as n, getRotateFix as o, elementStyle as p, elementNextAll as q, elementPrevAll as r, setCSSProperty as s, animateCSSModeScroll as t, showWarning as u, elementIsChildOf as v, extend as w, deleteProps as x };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, p as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, q as elementNextAll, r as elementPrevAll, j as getTranslate, t as animateCSSModeScroll, n as nextTick, u as showWarning, c as createElement, v as elementIsChildOf, d as now, w as extend, h as elementIndex, x as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n };\n}\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n return support;\n}\n\nlet deviceCached;\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 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';\n\n // iPadOs 13 fix\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\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 }\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n\n // Export object\n return device;\n}\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\n const device = getDevice();\n let needPerspectiveFix = false;\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 if (isSafari()) {\n const ua = String(window.navigator.userAgent);\n if (ua.includes('Version/')) {\n const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n }\n }\n const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n const isSafariBrowser = isSafari();\n const need3dFix = isSafariBrowser || isWebView && device.ios;\n return {\n isSafari: needPerspectiveFix || isSafariBrowser,\n needPerspectiveFix,\n need3dFix,\n isWebView\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\n}\n\nfunction 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 const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\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 if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\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}\n\nfunction Observer(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\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 (swiper.__preventObserver__) return;\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\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: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n const init = () => {\n if (!swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = elementParents(swiper.hostEl);\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n }\n // Observe container\n attach(swiper.hostEl, {\n childList: swiper.params.observeSlideChildren\n });\n\n // Observe wrapper\n attach(swiper.wrapperEl, {\n attributes: false\n });\n };\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n function onceHandler() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n handler.apply(self, args);\n }\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n return self;\n },\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n return self;\n },\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit() {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\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 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 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\nfunction updateSize() {\n const swiper = this;\n let width;\n let height;\n const el = swiper.el;\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = el.clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = el.clientHeight;\n }\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, '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}\n\nfunction updateSlides() {\n const swiper = this;\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n }\n const params = swiper.params;\n const {\n wrapperEl,\n slidesEl,\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 = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\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 if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\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 if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n slides.forEach(slideEl => {\n if (rtl) {\n slideEl.style.marginLeft = '';\n } else {\n slideEl.style.marginRight = '';\n }\n slideEl.style.marginBottom = '';\n slideEl.style.marginTop = '';\n });\n\n // reset cssMode offsets\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n }\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n if (gridEnabled) {\n swiper.grid.initSlides(slides);\n } else if (swiper.grid) {\n swiper.grid.unsetSlides();\n }\n\n // Calc slides\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 for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[swiper.getDirectionLabel('width')] = ``;\n }\n const slideStyles = getComputedStyle(slide);\n const currentTransform = slide.style.transform;\n const currentWebKitTransform = slide.style.webkitTransform;\n if (currentTransform) {\n slide.style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', 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 if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n if (currentTransform) {\n slide.style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide.style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n if (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\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 swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (params.setWrapperSize) {\n wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid);\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (isVirtual && params.loop) {\n const size = slidesSizesGrid[0] + spaceBetween;\n if (params.slidesPerGroup > 1) {\n const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n const groupSize = size * params.slidesPerGroup;\n for (let i = 0; i < groups; i += 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n }\n }\n for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n if (params.slidesPerGroup === 1) {\n snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n }\n slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n swiper.virtualSize += size;\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n if (spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode || params.loop) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }).forEach(slideEl => {\n slideEl.style[key] = `${spaceBetween}px`;\n });\n }\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 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 Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(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 if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n swiper.emit('slidesUpdated');\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.el.classList.remove(backFaceHiddenClass);\n }\n }\n}\n\nfunction 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 if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides[swiper.getSlideIndexByData(index)];\n }\n return swiper.slides[index];\n };\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || []).forEach(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 }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n // eslint-disable-next-line\n const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\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;\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n let spaceBetween = params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n }\n toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n}\n\nfunction updateProgress(translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd,\n progressLoop\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n isBeginning = isBeginningRounded || progress <= 0;\n isEnd = isEndRounded || progress >= 1;\n if (isBeginningRounded) progress = 0;\n if (isEndRounded) progress = 1;\n }\n if (params.loop) {\n const firstSlideIndex = swiper.getSlideIndexByData(0);\n const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n const translateAbs = Math.abs(translate);\n if (translateAbs >= firstSlideTranslate) {\n progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n } else {\n progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n }\n if (progressLoop > 1) progressLoop -= 1;\n }\n Object.assign(swiper, {\n progress,\n progressLoop,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n if (condition && !slideEl.classList.contains(className)) {\n slideEl.classList.add(className);\n } else if (!condition && slideEl.classList.contains(className)) {\n slideEl.classList.remove(className);\n }\n};\nfunction updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n slidesEl,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const getFilteredSlide = selector => {\n return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n };\n let activeSlide;\n let prevSlide;\n let nextSlide;\n if (isVirtual) {\n if (params.loop) {\n let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n } else {\n activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n }\n } else {\n if (gridEnabled) {\n activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];\n nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];\n prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];\n } else {\n activeSlide = slides[activeIndex];\n }\n }\n if (activeSlide) {\n if (!gridEnabled) {\n // Next Slide\n nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n\n // Prev Slide\n prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n }\n }\n slides.forEach(slideEl => {\n toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n });\n swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n if (lazyEl) lazyEl.remove();\n }\n });\n }\n }\n if (lazyEl) lazyEl.remove();\n }\n};\nconst unlazy = (swiper, index) => {\n if (!swiper.slides[index]) return;\n const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n let amount = swiper.params.lazyPreloadPrevNext;\n const len = swiper.slides.length;\n if (!len || !amount || amount < 0) return;\n amount = Math.min(amount, len);\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n const activeIndex = swiper.activeIndex;\n if (swiper.params.grid && swiper.params.grid.rows > 1) {\n const activeColumn = activeIndex;\n const preloadColumns = [activeColumn - amount];\n preloadColumns.push(...Array.from({\n length: amount\n }).map((_, i) => {\n return activeColumn + slidesPerView + i;\n }));\n swiper.slides.forEach((slideEl, i) => {\n if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n });\n return;\n }\n const slideIndexLastInView = activeIndex + slidesPerView - 1;\n if (swiper.params.rewind || swiper.params.loop) {\n for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n const realIndex = (i % len + len) % len;\n if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n }\n } else {\n for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n unlazy(swiper, i);\n }\n }\n }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n const {\n slidesGrid,\n params\n } = swiper;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n let activeIndex;\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n const getVirtualRealIndex = aIndex => {\n let realIndex = aIndex - swiper.virtual.slidesBefore;\n if (realIndex < 0) {\n realIndex = swiper.virtual.slides.length + realIndex;\n }\n if (realIndex >= swiper.virtual.slides.length) {\n realIndex -= swiper.virtual.slides.length;\n }\n return realIndex;\n };\n if (typeof activeIndex === 'undefined') {\n activeIndex = getActiveIndexByTranslate(swiper);\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex && !swiper.params.loop) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n return;\n }\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (gridEnabled) {\n const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];\n let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n if (Number.isNaN(activeSlideIndex)) {\n activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n }\n realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n } else if (swiper.slides[activeIndex]) {\n const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n if (slideIndex) {\n realIndex = parseInt(slideIndex, 10);\n } else {\n realIndex = activeIndex;\n }\n } else {\n realIndex = activeIndex;\n }\n Object.assign(swiper, {\n previousSnapIndex,\n snapIndex,\n previousRealIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n if (swiper.initialized) {\n preload(swiper);\n }\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n swiper.emit('slideChange');\n }\n}\n\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n slide = pathEl;\n }\n });\n }\n let slideFound = false;\n let slideIndex;\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 if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt(slide.getAttribute('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 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n wrapperEl\n } = swiper;\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n let currentTranslate = getTranslate(wrapperEl, axis);\n currentTranslate += swiper.cssOverflowAdjustment();\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n if (swiper.isHorizontal()) {\n x -= swiper.cssOverflowAdjustment();\n } else {\n y -= swiper.cssOverflowAdjustment();\n }\n wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n }\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\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;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n return true;\n }\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n swiper.animating = false;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\n\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\n\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n }\n swiper.emit('setTransition', duration, byController);\n}\n\nfunction 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 if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n swiper.emit(`transition${step}`);\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n swiper.emit(`slideChangeTransition${step}`);\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}\n\nfunction transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}\n\nfunction transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\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}\n\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\n\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n index = parseInt(index, 10);\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 if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\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 const translate = -snapGrid[snapIndex];\n // Normalize slideIndex\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 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 }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) {\n return false;\n }\n }\n }\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n // Update progress\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n // initial virtual\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const isInitialVirtual = isVirtual && initial;\n // Update Index\n if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n if (speed === 0) {\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n swiper._cssModeVirtualInitialSet = true;\n requestAnimationFrame(() => {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._immediateVirtual = 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 wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n return true;\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 if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n }\n return true;\n}\n\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (typeof index === 'string') {\n const indexAsNumber = parseInt(index, 10);\n index = indexAsNumber;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n let newIndex = index;\n if (swiper.params.loop) {\n if (swiper.virtual && swiper.params.virtual.enabled) {\n // eslint-disable-next-line\n newIndex = newIndex + swiper.virtual.slidesBefore;\n } else {\n let targetSlideIndex;\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n }\n const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n const {\n centeredSlides\n } = swiper.params;\n let slidesPerView = swiper.params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n swiper.loopFix({\n direction,\n slideTo: true,\n activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n });\n }\n if (gridEnabled) {\n const slideIndex = newIndex * swiper.params.grid.rows;\n newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;\n } else {\n newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n }\n requestAnimationFrame(() => {\n swiper.slideTo(newIndex, speed, runCallbacks, internal);\n });\n return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n enabled,\n params,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n let perGroup = params.slidesPerGroup;\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'next'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n });\n return true;\n }\n }\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n const {\n params,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled,\n animating\n } = swiper;\n if (!enabled || swiper.destroyed) return swiper;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n const isVirtual = swiper.virtual && params.virtual.enabled;\n if (params.loop) {\n if (animating && !isVirtual && params.loopPreventsSliding) return false;\n swiper.loopFix({\n direction: 'prev'\n });\n // eslint-disable-next-line\n swiper._clientLeft = swiper.wrapperEl.clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\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 if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n let prevIndex = 0;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\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 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 } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n requestAnimationFrame(() => {\n swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n });\n return true;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\n if (swiper.destroyed) return;\n if (typeof speed === 'undefined') {\n speed = swiper.params.speed;\n }\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 if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n const swiper = this;\n if (swiper.destroyed) return;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\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 = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex) {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n const initSlides = () => {\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n };\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n const addBlankSlides = amountOfSlides => {\n for (let i = 0; i < amountOfSlides; i += 1) {\n const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n swiper.slidesEl.append(slideEl);\n }\n };\n if (shouldFillGroup) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else if (shouldFillGrid) {\n if (params.loopAddBlankSlides) {\n const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n addBlankSlides(slidesToAdd);\n swiper.recalcSlides();\n swiper.updateSlides();\n } else {\n showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n }\n initSlides();\n } else {\n initSlides();\n }\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\n const swiper = this;\n if (!swiper.params.loop) return;\n swiper.emit('beforeLoopFix');\n const {\n slides,\n allowSlidePrev,\n allowSlideNext,\n slidesEl,\n params\n } = swiper;\n const {\n centeredSlides\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {\n swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n return;\n }\n let slidesPerView = params.slidesPerView;\n if (slidesPerView === 'auto') {\n slidesPerView = swiper.slidesPerViewDynamic();\n } else {\n slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n if (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = slidesPerGroup;\n if (loopedSlides % slidesPerGroup !== 0) {\n loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n }\n loopedSlides += params.loopAdditionalSlides;\n swiper.loopedSlides = loopedSlides;\n const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n if (slides.length < slidesPerView + loopedSlides) {\n showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n } else if (gridEnabled && params.grid.fill === 'row') {\n showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n }\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\n } else {\n activeIndex = activeSlideIndex;\n }\n const isNext = direction === 'next' || !direction;\n const isPrev = direction === 'prev' || !direction;\n let slidesPrepended = 0;\n let slidesAppended = 0;\n const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n // prepend last slides before start\n if (activeColIndexWithShift < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n const colIndexToPrepend = cols - index - 1;\n for (let i = slides.length - 1; i >= 0; i -= 1) {\n if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n }\n // slides.forEach((slide, slideIndex) => {\n // if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n // });\n } else {\n prependSlidesIndexes.push(cols - index - 1);\n }\n }\n } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / cols) * cols;\n if (gridEnabled) {\n slides.forEach((slide, slideIndex) => {\n if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n });\n } else {\n appendSlidesIndexes.push(index);\n }\n }\n }\n swiper.__preventObserver__ = true;\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(slides[index]);\n slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\n } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n swiper.slides.forEach((slide, slideIndex) => {\n swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n });\n }\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n if (slideTo) {\n if (prependSlidesIndexes.length > 0 && isPrev) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n if (setTranslate) {\n const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else if (appendSlidesIndexes.length > 0 && isNext) {\n if (typeof slideRealIndex === 'undefined') {\n const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n const diff = newSlideTranslate - currentSlideTranslate;\n if (byMousewheel) {\n swiper.setTranslate(swiper.translate - diff);\n } else {\n swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n if (setTranslate) {\n swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n }\n }\n } else {\n const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n }\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.controller && swiper.controller.control && !byController) {\n const loopParams = {\n slideRealIndex,\n direction,\n setTranslate,\n activeSlideIndex,\n byController: true\n };\n if (Array.isArray(swiper.controller.control)) {\n swiper.controller.control.forEach(c => {\n if (!c.destroyed && c.params.loop) c.loopFix({\n ...loopParams,\n slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n });\n } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n swiper.controller.control.loopFix({\n ...loopParams,\n slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n });\n }\n }\n swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n swiper.recalcSlides();\n const newSlidesOrder = [];\n swiper.slides.forEach(slideEl => {\n const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n newSlidesOrder[index] = slideEl;\n });\n swiper.slides.forEach(slideEl => {\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n newSlidesOrder.forEach(slideEl => {\n slidesEl.append(slideEl);\n });\n swiper.recalcSlides();\n swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n const swiper = this;\n if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nfunction unsetGrabCursor() {\n const swiper = this;\n if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n if (swiper.isElement) {\n swiper.__preventObserver__ = true;\n }\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n if (swiper.isElement) {\n requestAnimationFrame(() => {\n swiper.__preventObserver__ = false;\n });\n }\n}\n\nvar grabCursor = {\n setGrabCursor,\n unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base) {\n if (base === void 0) {\n base = this;\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 if (!found && !el.getRootNode) {\n return null;\n }\n return found || __closestFrom(el.getRootNode().host);\n }\n return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n const window = getWindow();\n const {\n params\n } = swiper;\n const edgeSwipeDetection = params.edgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n return true;\n }\n return false;\n }\n return true;\n}\nfunction onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const data = swiper.touchEventsData;\n if (e.type === 'pointerdown') {\n if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n return;\n }\n data.pointerId = e.pointerId;\n } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n data.touchId = e.targetTouches[0].identifier;\n }\n if (e.type === 'touchstart') {\n // don't proceed touch event\n preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n return;\n }\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n }\n if ('which' in e && e.which === 3) return;\n if ('button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n\n // change target el for shadow root component\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n // eslint-disable-next-line\n const eventPath = e.composedPath ? e.composedPath() : e.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!targetEl.closest(params.swipeHandler)) return;\n }\n touches.currentX = e.pageX;\n touches.currentY = e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n if (!preventEdgeSwipe(swiper, e, startX)) {\n return;\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 let preventDefault = true;\n if (targetEl.matches(data.focusableElements)) {\n preventDefault = false;\n if (targetEl.nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n document.activeElement.blur();\n }\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n e.preventDefault();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n swiper.emit('touchStart', e);\n}\n\nfunction 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 if (!params.simulateTouch && event.pointerType === 'mouse') return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (e.type === 'pointermove') {\n if (data.touchId !== null) return; // return from pointer if we use touch\n const id = e.pointerId;\n if (id !== data.pointerId) return;\n }\n let targetTouch;\n if (e.type === 'touchmove') {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n } else {\n targetTouch = e;\n }\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pageX = targetTouch.pageX;\n const pageY = targetTouch.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n if (!e.target.matches(data.focusableElements)) {\n swiper.allowClick = false;\n }\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n return;\n }\n if (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 if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n document.activeElement.blur();\n }\n if (document.activeElement) {\n if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n touches.previousX = touches.currentX;\n touches.previousY = touches.currentY;\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 if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n let diff = swiper.isHorizontal() ? diffX : diffY;\n let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n if (params.oneWayMovement) {\n diff = Math.abs(diff) * (rtl ? 1 : -1);\n touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n }\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) {\n diff = -diff;\n touchesDiff = -touchesDiff;\n }\n const prevTouchesDirection = swiper.touchesDirection;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n const isLoop = swiper.params.loop && !params.cssMode;\n const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n if (!data.isMoved) {\n if (isLoop && allowLoopFix) {\n swiper.loopFix({\n direction: swiper.swipeDirection\n });\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n const evt = new window.CustomEvent('transitionend', {\n bubbles: true,\n cancelable: true,\n detail: {\n bySwiperTouchMove: true\n }\n });\n swiper.wrapperEl.dispatchEvent(evt);\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n let loopFixed;\n new Date().getTime();\n if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n startTranslate: data.currentTranslate\n });\n data.loopSwapReset = true;\n data.startTranslate = data.currentTranslate;\n return;\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if (diff > 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n swiper.loopFix({\n direction: 'prev',\n setTranslate: true,\n activeSlideIndex: 0\n });\n }\n if (data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n }\n }\n } else if (diff < 0) {\n if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n swiper.loopFix({\n direction: 'next',\n setTranslate: true,\n activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n });\n }\n if (data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) {\n data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n }\n }\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n }\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetTouch;\n const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n if (!isTouchEvent) {\n if (data.touchId !== null) return; // return from pointer if we use touch\n if (e.pointerId !== data.pointerId) return;\n targetTouch = e;\n } else {\n targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];\n if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n data.pointerId = null;\n data.touchId = null;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && e.pointerType === 'mouse') return;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n if (params.cssMode) {\n return;\n }\n if (params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n }\n\n // Find current slide\n const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n }\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\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 const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\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}\n\nfunction onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n const isVirtualLoop = isVirtual && params.loop;\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n if (swiper.params.loop && !isVirtual) {\n swiper.slideToLoop(swiper.realIndex, 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 clearTimeout(swiper.autoplay.resizeTimeout);\n swiper.autoplay.resizeTimeout = setTimeout(() => {\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.resume();\n }\n }, 500);\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n\nfunction onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n\nfunction 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 if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\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 if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n const swiper = this;\n processLazyPreloader(swiper, e.target);\n if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n return;\n }\n swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n const swiper = this;\n if (swiper.documentTouchHandlerProceeded) return;\n swiper.documentTouchHandlerProceeded = true;\n if (swiper.params.touchReleaseOnEdges) {\n swiper.el.style.touchAction = 'auto';\n }\n}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n el,\n wrapperEl,\n device\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method;\n if (!el || typeof el === 'string') return;\n\n // Touch Events\n document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n passive: false,\n capture\n });\n el[domMethod]('touchstart', swiper.onTouchStart, {\n passive: false\n });\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('touchmove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('touchend', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('touchcancel', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerout', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointerleave', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('contextmenu', swiper.onTouchEnd, {\n passive: true\n });\n\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n }\n\n // Resize handler\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 // Images loader\n el[domMethod]('load', swiper.onLoad, {\n capture: true\n });\n};\nfunction attachEvents() {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n const swiper = this;\n const {\n realIndex,\n initialized,\n params,\n el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, 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 wasGrabCursor = swiper.params.grabCursor;\n const isGrabCursor = breakpointParams.grabCursor;\n const wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n if (wasGrabCursor && !isGrabCursor) {\n swiper.unsetGrabCursor();\n } else if (!wasGrabCursor && isGrabCursor) {\n swiper.setGrabCursor();\n }\n\n // Toggle navigation, pagination, scrollbar\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n if (typeof breakpointParams[prop] === 'undefined') return;\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n const wasLoop = params.loop;\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n const hasLoop = swiper.params.loop;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n if (initialized) {\n if (needsReLoop) {\n swiper.loopDestroy();\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (!wasLoop && hasLoop) {\n swiper.loopCreate(realIndex);\n swiper.updateSlides();\n } else if (wasLoop && !hasLoop) {\n swiper.loopDestroy();\n }\n }\n swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\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 return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\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 return breakpoint || 'max';\n}\n\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\n};\n\nfunction 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}\nfunction addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n el,\n device\n } = swiper;\n // prettier-ignore\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n el.classList.add(...classNames);\n swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n if (!el || typeof el === 'string') return;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\n\nvar classes = {\n addClasses,\n removeClasses\n};\n\nfunction checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\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 if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\nvar checkOverflow$1 = {\n checkOverflow\n};\n\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\n swiperElementNodeName: 'SWIPER-CONTAINER',\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 eventsPrefix: 'swiper',\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\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: 5,\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 // loop\n loop: false,\n loopAddBlankSlides: true,\n loopAdditionalSlides: 0,\n loopPreventsSliding: 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-blank',\n slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideFullyVisibleClass: 'swiper-slide-fully-visible',\n slideNextClass: 'swiper-slide-next',\n slidePrevClass: 'swiper-slide-prev',\n wrapperClass: 'swiper-wrapper',\n lazyPreloaderClass: 'swiper-lazy-preloader',\n lazyPreloadPrevNext: 0,\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n params[moduleParamName].auto = true;\n }\n if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n params[moduleParamName].auto = true;\n }\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events: events$1,\n breakpoints,\n checkOverflow: checkOverflow$1,\n classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n constructor() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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 if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n const document = getDocument();\n if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n const swipers = [];\n document.querySelectorAll(params.el).forEach(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n // eslint-disable-next-line no-constructor-return\n return swipers;\n }\n\n // Swiper Instance\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 if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n params,\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 });\n\n // Extend defaults with modules params\n const swiperParams = extend({}, defaults, allModulesParams);\n\n // Extend defaults with passed params\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params);\n\n // add event listeners\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 if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n }\n\n // Extend Swiper\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 // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n cssOverflowAdjustment() {\n // Returns 0 unless `translate` is > 2**23\n // Should be subtracted from css values to prevent overflow\n return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n },\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\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: 0,\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n startMoving: undefined,\n pointerId: null,\n touchId: null\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');\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n // eslint-disable-next-line no-constructor-return\n return swiper;\n }\n getDirectionLabel(property) {\n if (this.isHorizontal()) {\n return property;\n }\n // prettier-ignore\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 getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n const firstSlideIndex = elementIndex(slides[0]);\n return elementIndex(slideEl) - firstSlideIndex;\n }\n getSlideIndexByData(index) {\n return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n }\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n swiper.emit('enable');\n }\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n swiper.emit('disable');\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 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 getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.forEach(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 slidesPerViewDynamic(view, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\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 if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += Math.ceil(slides[i].swiperSlideSize);\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // 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 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 if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n return spv;\n }\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n }\n });\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n setTranslate();\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n translated = swiper.slideTo(slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.forEach(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 changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n if (swiper.rtl) {\n swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n swiper.update();\n }\n mount(element) {\n const swiper = this;\n if (swiper.mounted) return true;\n\n // Find el\n let el = element || swiper.params.el;\n if (typeof el === 'string') {\n el = document.querySelector(el);\n }\n if (!el) {\n return false;\n }\n el.swiper = swiper;\n if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = el.shadowRoot.querySelector(getWrapperSelector());\n // Children needs to return slot items\n return res;\n }\n return elementChildren(el, getWrapperSelector())[0];\n };\n // Find Wrapper\n let wrapperEl = getWrapper();\n if (!wrapperEl && swiper.params.createElements) {\n wrapperEl = createElement('div', swiper.params.wrapperClass);\n el.append(wrapperEl);\n elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n wrapperEl.append(slideEl);\n });\n }\n Object.assign(swiper, {\n el,\n wrapperEl,\n slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n hostEl: swiper.isElement ? el.parentNode.host : el,\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n });\n return true;\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');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n }\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Attach events\n swiper.attachEvents();\n const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n if (swiper.isElement) {\n lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n }\n lazyElements.forEach(imageEl => {\n if (imageEl.complete) {\n processLazyPreloader(swiper, imageEl);\n } else {\n imageEl.addEventListener('load', e => {\n processLazyPreloader(swiper, e.target);\n });\n }\n });\n preload(swiper);\n\n // Init Flag\n swiper.initialized = true;\n preload(swiper);\n\n // Emit\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n const swiper = this;\n const {\n params,\n el,\n wrapperEl,\n slides\n } = swiper;\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n if (el && typeof el !== 'string') {\n el.removeAttribute('style');\n }\n if (wrapperEl) {\n wrapperEl.removeAttribute('style');\n }\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n slideEl.removeAttribute('style');\n slideEl.removeAttribute('data-swiper-slide-index');\n });\n }\n }\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n if (deleteInstance !== false) {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.swiper = null;\n }\n deleteProps(swiper);\n }\n swiper.destroyed = true;\n return null;\n }\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n static get extendedDefaults() {\n return extendedDefaults;\n }\n static get defaults() {\n return defaults;\n }\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n Swiper.installModule(module);\n return Swiper;\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]);\n\nexport { Swiper as S, defaults as d };\n","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_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', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\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}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\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}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n return className;\n}\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' && key !== 'wrapperClass');\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 let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\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 if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\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 const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n Object.assign(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\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 if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n if (slides) virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\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 if (splitEvents) {\n events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n } else {\n params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n }\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\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\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 if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\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 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\nconst 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 if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n","/**\n * Swiper React 11.1.14\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2024 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 12, 2024\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\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}\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 (isChildSwiperSlide(child)) {\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 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\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n } : {\n top: `${virtualData.offset}px`\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: child.props.virtualIndex || child.key || `slide-${index}`\n });\n });\n}\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\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\n\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 const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\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 if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\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 const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\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 && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\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 return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\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'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), 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 }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","'use client';\nimport * as React from 'react';\nimport { IMAGE_FIT_COVER, IMAGE_FIT_CONTAIN, ACTION_CLOSE, MODULE_CONTROLLER, UNKNOWN_ACTION_TYPE, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_CANCEL, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_WHEEL, SLIDE_STATUS_LOADING, activeSlideStatus, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_PLACEHOLDER, ACTION_PREV, ACTION_NEXT, ACTION_SWIPE, MODULE_PORTAL, CLASS_FLEX_CENTER, MODULE_CAROUSEL, CLASS_SLIDE_WRAPPER, VK_ARROW_RIGHT, VK_ARROW_LEFT, VK_ESCAPE, MODULE_NAVIGATION, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, MODULE_NO_SCROLL, MODULE_ROOT, MODULE_TOOLBAR } from './types.js';\nimport { createPortal } from 'react-dom';\nexport { ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, CLASS_FULLSIZE, CLASS_SLIDE_WRAPPER_INTERACTIVE, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, SLIDE_STATUS_PLAYING } from './types.js';\n\nconst cssPrefix$3 = \"yarl__\";\nfunction clsx(...classes) {\n return [...classes].filter(Boolean).join(\" \");\n}\nfunction cssClass(name) {\n return `${cssPrefix$3}${name}`;\n}\nfunction cssVar(name) {\n return `--${cssPrefix$3}${name}`;\n}\nfunction composePrefix(base, prefix) {\n return `${base}${prefix ? `_${prefix}` : \"\"}`;\n}\nfunction makeComposePrefix(base) {\n return (prefix) => composePrefix(base, prefix);\n}\nfunction label(labels, defaultLabel) {\n var _a;\n return (_a = labels === null || labels === void 0 ? void 0 : labels[defaultLabel]) !== null && _a !== void 0 ? _a : defaultLabel;\n}\nfunction cleanup(...cleaners) {\n return () => {\n cleaners.forEach((cleaner) => {\n cleaner();\n });\n };\n}\nfunction makeUseContext(name, contextName, context) {\n return () => {\n const ctx = React.useContext(context);\n if (!ctx) {\n throw new Error(`${name} must be used within a ${contextName}.Provider`);\n }\n return ctx;\n };\n}\nfunction hasWindow() {\n return typeof window !== \"undefined\";\n}\nfunction round(value, decimals = 0) {\n const factor = 10 ** decimals;\n return Math.round((value + Number.EPSILON) * factor) / factor;\n}\nfunction isImageSlide(slide) {\n return slide.type === undefined || slide.type === \"image\";\n}\nfunction isImageFitCover(image, imageFit) {\n return image.imageFit === IMAGE_FIT_COVER || (image.imageFit !== IMAGE_FIT_CONTAIN && imageFit === IMAGE_FIT_COVER);\n}\nfunction parseInt(value) {\n return typeof value === \"string\" ? Number.parseInt(value, 10) : value;\n}\nfunction parseLengthPercentage(input) {\n if (typeof input === \"number\") {\n return { pixel: input };\n }\n if (typeof input === \"string\") {\n const value = parseInt(input);\n return input.endsWith(\"%\") ? { percent: value } : { pixel: value };\n }\n return { pixel: 0 };\n}\nfunction computeSlideRect(containerRect, padding) {\n const paddingValue = parseLengthPercentage(padding);\n const paddingPixels = paddingValue.percent !== undefined ? (containerRect.width / 100) * paddingValue.percent : paddingValue.pixel;\n return {\n width: Math.max(containerRect.width - 2 * paddingPixels, 0),\n height: Math.max(containerRect.height - 2 * paddingPixels, 0),\n };\n}\nfunction devicePixelRatio() {\n return (hasWindow() ? window === null || window === void 0 ? void 0 : window.devicePixelRatio : undefined) || 1;\n}\nfunction getSlideIndex(index, slidesCount) {\n return slidesCount > 0 ? ((index % slidesCount) + slidesCount) % slidesCount : 0;\n}\nfunction hasSlides(slides) {\n return slides.length > 0;\n}\nfunction getSlide(slides, index) {\n return slides[getSlideIndex(index, slides.length)];\n}\nfunction getSlideIfPresent(slides, index) {\n return hasSlides(slides) ? getSlide(slides, index) : undefined;\n}\nfunction getSlideKey(slide) {\n return isImageSlide(slide) ? slide.src : undefined;\n}\nfunction addToolbarButton(toolbar, key, button) {\n if (!button)\n return toolbar;\n const { buttons, ...restToolbar } = toolbar;\n const index = buttons.findIndex((item) => item === key);\n const buttonWithKey = React.isValidElement(button) ? React.cloneElement(button, { key }, null) : button;\n if (index >= 0) {\n const result = [...buttons];\n result.splice(index, 1, buttonWithKey);\n return { buttons: result, ...restToolbar };\n }\n return { buttons: [buttonWithKey, ...buttons], ...restToolbar };\n}\nfunction stopNavigationEventsPropagation() {\n const stopPropagation = (event) => {\n event.stopPropagation();\n };\n return { onPointerDown: stopPropagation, onKeyDown: stopPropagation, onWheel: stopPropagation };\n}\nfunction calculatePreload(carousel, slides, minimum = 0) {\n return Math.min(carousel.preload, Math.max(carousel.finite ? slides.length - 1 : Math.floor(slides.length / 2), minimum));\n}\nconst isReact19 = Number(React.version.split(\".\")[0]) >= 19;\nfunction makeInertWhen(condition) {\n const legacyValue = condition ? \"\" : undefined;\n return { inert: isReact19 ? condition : legacyValue };\n}\n\nconst LightboxDefaultProps = {\n open: false,\n close: () => { },\n index: 0,\n slides: [],\n render: {},\n plugins: [],\n toolbar: { buttons: [ACTION_CLOSE] },\n labels: {},\n animation: {\n fade: 250,\n swipe: 500,\n easing: {\n fade: \"ease\",\n swipe: \"ease-out\",\n navigation: \"ease-in-out\",\n },\n },\n carousel: {\n finite: false,\n preload: 2,\n padding: \"16px\",\n spacing: \"30%\",\n imageFit: IMAGE_FIT_CONTAIN,\n imageProps: {},\n },\n controller: {\n ref: null,\n focus: true,\n aria: false,\n touchAction: \"none\",\n closeOnPullUp: false,\n closeOnPullDown: false,\n closeOnBackdropClick: false,\n preventDefaultWheelX: true,\n preventDefaultWheelY: false,\n },\n portal: {},\n noScroll: {\n disabled: false,\n },\n on: {},\n styles: {},\n className: \"\",\n};\n\nfunction createModule(name, component) {\n return { name, component };\n}\nfunction createNode(module, children) {\n return { module, children };\n}\nfunction traverseNode(node, target, apply) {\n if (node.module.name === target) {\n return apply(node);\n }\n if (node.children) {\n return [\n createNode(node.module, node.children.flatMap((n) => { var _a; return (_a = traverseNode(n, target, apply)) !== null && _a !== void 0 ? _a : []; })),\n ];\n }\n return [node];\n}\nfunction traverse(nodes, target, apply) {\n return nodes.flatMap((node) => { var _a; return (_a = traverseNode(node, target, apply)) !== null && _a !== void 0 ? _a : []; });\n}\nfunction withPlugins(root, plugins = [], augmentations = []) {\n let config = root;\n const contains = (target) => {\n const nodes = [...config];\n while (nodes.length > 0) {\n const node = nodes.pop();\n if ((node === null || node === void 0 ? void 0 : node.module.name) === target)\n return true;\n if (node === null || node === void 0 ? void 0 : node.children)\n nodes.push(...node.children);\n }\n return false;\n };\n const addParent = (target, module) => {\n if (target === \"\") {\n config = [createNode(module, config)];\n return;\n }\n config = traverse(config, target, (node) => [createNode(module, [node])]);\n };\n const append = (target, module) => {\n config = traverse(config, target, (node) => [createNode(node.module, [createNode(module, node.children)])]);\n };\n const addChild = (target, module, precede) => {\n config = traverse(config, target, (node) => {\n var _a;\n return [\n createNode(node.module, [\n ...(precede ? [createNode(module)] : []),\n ...((_a = node.children) !== null && _a !== void 0 ? _a : []),\n ...(!precede ? [createNode(module)] : []),\n ]),\n ];\n });\n };\n const addSibling = (target, module, precede) => {\n config = traverse(config, target, (node) => [\n ...(precede ? [createNode(module)] : []),\n node,\n ...(!precede ? [createNode(module)] : []),\n ]);\n };\n const addModule = (module) => {\n append(MODULE_CONTROLLER, module);\n };\n const replace = (target, module) => {\n config = traverse(config, target, (node) => [createNode(module, node.children)]);\n };\n const remove = (target) => {\n config = traverse(config, target, (node) => node.children);\n };\n const augment = (augmentation) => {\n augmentations.push(augmentation);\n };\n plugins.forEach((plugin) => {\n plugin({\n contains,\n addParent,\n append,\n addChild,\n addSibling,\n addModule,\n replace,\n remove,\n augment,\n });\n });\n return {\n config,\n augmentation: (props) => augmentations.reduce((acc, augmentation) => augmentation(acc), props),\n };\n}\n\nconst DocumentContext = React.createContext(null);\nconst useDocumentContext = makeUseContext(\"useDocument\", \"DocumentContext\", DocumentContext);\nfunction DocumentContextProvider({ nodeRef, children }) {\n const context = React.useMemo(() => {\n const getOwnerDocument = (node) => { var _a; return ((_a = (node || nodeRef.current)) === null || _a === void 0 ? void 0 : _a.ownerDocument) || document; };\n const getOwnerWindow = (node) => { var _a; return ((_a = getOwnerDocument(node)) === null || _a === void 0 ? void 0 : _a.defaultView) || window; };\n return { getOwnerDocument, getOwnerWindow };\n }, [nodeRef]);\n return React.createElement(DocumentContext.Provider, { value: context }, children);\n}\n\nconst EventsContext = React.createContext(null);\nconst useEvents = makeUseContext(\"useEvents\", \"EventsContext\", EventsContext);\nfunction EventsProvider({ children }) {\n const [subscriptions] = React.useState({});\n React.useEffect(() => () => {\n Object.keys(subscriptions).forEach((topic) => delete subscriptions[topic]);\n }, [subscriptions]);\n const context = React.useMemo(() => {\n const unsubscribe = (topic, callback) => {\n var _a;\n (_a = subscriptions[topic]) === null || _a === void 0 ? void 0 : _a.splice(0, subscriptions[topic].length, ...subscriptions[topic].filter((cb) => cb !== callback));\n };\n const subscribe = (topic, callback) => {\n if (!subscriptions[topic]) {\n subscriptions[topic] = [];\n }\n subscriptions[topic].push(callback);\n return () => unsubscribe(topic, callback);\n };\n const publish = (...[topic, event]) => {\n var _a;\n (_a = subscriptions[topic]) === null || _a === void 0 ? void 0 : _a.forEach((callback) => callback(event));\n };\n return { publish, subscribe, unsubscribe };\n }, [subscriptions]);\n return React.createElement(EventsContext.Provider, { value: context }, children);\n}\n\nconst LightboxPropsContext = React.createContext(null);\nconst useLightboxProps = makeUseContext(\"useLightboxProps\", \"LightboxPropsContext\", LightboxPropsContext);\nfunction LightboxPropsProvider({ children, ...props }) {\n return React.createElement(LightboxPropsContext.Provider, { value: props }, children);\n}\n\nconst LightboxStateContext = React.createContext(null);\nconst useLightboxState = makeUseContext(\"useLightboxState\", \"LightboxStateContext\", LightboxStateContext);\nconst LightboxDispatchContext = React.createContext(null);\nconst useLightboxDispatch = makeUseContext(\"useLightboxDispatch\", \"LightboxDispatchContext\", LightboxDispatchContext);\nfunction reducer(state, action) {\n switch (action.type) {\n case \"swipe\": {\n const { slides } = state;\n const increment = (action === null || action === void 0 ? void 0 : action.increment) || 0;\n const globalIndex = state.globalIndex + increment;\n const currentIndex = getSlideIndex(globalIndex, slides.length);\n const currentSlide = getSlideIfPresent(slides, currentIndex);\n const animation = increment || action.duration\n ? {\n increment,\n duration: action.duration,\n easing: action.easing,\n }\n : undefined;\n return { slides, currentIndex, globalIndex, currentSlide, animation };\n }\n case \"update\":\n if (action.slides !== state.slides || action.index !== state.currentIndex) {\n return {\n slides: action.slides,\n currentIndex: action.index,\n globalIndex: action.index,\n currentSlide: getSlideIfPresent(action.slides, action.index),\n };\n }\n return state;\n default:\n throw new Error(UNKNOWN_ACTION_TYPE);\n }\n}\nfunction LightboxStateProvider({ slides, index, children }) {\n const [state, dispatch] = React.useReducer(reducer, {\n slides,\n currentIndex: index,\n globalIndex: index,\n currentSlide: getSlideIfPresent(slides, index),\n });\n React.useEffect(() => {\n dispatch({ type: \"update\", slides, index });\n }, [slides, index]);\n const context = React.useMemo(() => ({ ...state, state, dispatch }), [state, dispatch]);\n return (React.createElement(LightboxDispatchContext.Provider, { value: dispatch },\n React.createElement(LightboxStateContext.Provider, { value: context }, children)));\n}\n\nconst TimeoutsContext = React.createContext(null);\nconst useTimeouts = makeUseContext(\"useTimeouts\", \"TimeoutsContext\", TimeoutsContext);\nfunction TimeoutsProvider({ children }) {\n const [timeouts] = React.useState([]);\n React.useEffect(() => () => {\n timeouts.forEach((tid) => window.clearTimeout(tid));\n timeouts.splice(0, timeouts.length);\n }, [timeouts]);\n const context = React.useMemo(() => {\n const removeTimeout = (id) => {\n timeouts.splice(0, timeouts.length, ...timeouts.filter((tid) => tid !== id));\n };\n const setTimeout = (fn, delay) => {\n const id = window.setTimeout(() => {\n removeTimeout(id);\n fn();\n }, delay);\n timeouts.push(id);\n return id;\n };\n const clearTimeout = (id) => {\n if (id !== undefined) {\n removeTimeout(id);\n window.clearTimeout(id);\n }\n };\n return { setTimeout, clearTimeout };\n }, [timeouts]);\n return React.createElement(TimeoutsContext.Provider, { value: context }, children);\n}\n\nconst IconButton = React.forwardRef(function IconButton({ label: label$1, className, icon: Icon, renderIcon, onClick, style, ...rest }, ref) {\n const { styles, labels } = useLightboxProps();\n const buttonLabel = label(labels, label$1);\n return (React.createElement(\"button\", { ref: ref, type: \"button\", title: buttonLabel, \"aria-label\": buttonLabel, className: clsx(cssClass(ELEMENT_BUTTON), className), onClick: onClick, style: { ...style, ...styles.button }, ...rest }, renderIcon ? renderIcon() : React.createElement(Icon, { className: cssClass(ELEMENT_ICON), style: styles.icon })));\n});\n\nfunction svgIcon(name, children) {\n const icon = (props) => (React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 24 24\", width: \"24\", height: \"24\", \"aria-hidden\": \"true\", focusable: \"false\", ...props }, children));\n icon.displayName = name;\n return icon;\n}\nfunction createIcon(name, glyph) {\n return svgIcon(name, React.createElement(\"g\", { fill: \"currentColor\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"none\" }),\n glyph));\n}\nfunction createIconDisabled(name, glyph) {\n return svgIcon(name, React.createElement(React.Fragment, null,\n React.createElement(\"defs\", null,\n React.createElement(\"mask\", { id: \"strike\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"white\" }),\n React.createElement(\"path\", { d: \"M0 0L24 24\", stroke: \"black\", strokeWidth: 4 }))),\n React.createElement(\"path\", { d: \"M0.70707 2.121320L21.878680 23.292883\", stroke: \"currentColor\", strokeWidth: 2 }),\n React.createElement(\"g\", { fill: \"currentColor\", mask: \"url(#strike)\" },\n React.createElement(\"path\", { d: \"M0 0h24v24H0z\", fill: \"none\" }),\n glyph)));\n}\nconst CloseIcon = createIcon(\"Close\", React.createElement(\"path\", { d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" }));\nconst PreviousIcon = createIcon(\"Previous\", React.createElement(\"path\", { d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\" }));\nconst NextIcon = createIcon(\"Next\", React.createElement(\"path\", { d: \"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\" }));\nconst LoadingIcon = createIcon(\"Loading\", React.createElement(React.Fragment, null, Array.from({ length: 8 }).map((_, index, array) => (React.createElement(\"line\", { key: index, x1: \"12\", y1: \"6.5\", x2: \"12\", y2: \"1.8\", strokeLinecap: \"round\", strokeWidth: \"2.6\", stroke: \"currentColor\", strokeOpacity: (1 / array.length) * (index + 1), transform: `rotate(${(360 / array.length) * index}, 12, 12)` })))));\nconst ErrorIcon = createIcon(\"Error\", React.createElement(\"path\", { d: \"M21.9,21.9l-8.49-8.49l0,0L3.59,3.59l0,0L2.1,2.1L0.69,3.51L3,5.83V19c0,1.1,0.9,2,2,2h13.17l2.31,2.31L21.9,21.9z M5,18 l3.5-4.5l2.5,3.01L12.17,15l3,3H5z M21,18.17L5.83,3H19c1.1,0,2,0.9,2,2V18.17z\" }));\n\nconst useLayoutEffect = hasWindow() ? React.useLayoutEffect : React.useEffect;\n\nfunction useMotionPreference() {\n const [reduceMotion, setReduceMotion] = React.useState(false);\n React.useEffect(() => {\n var _a, _b;\n const mediaQuery = (_a = window.matchMedia) === null || _a === void 0 ? void 0 : _a.call(window, \"(prefers-reduced-motion: reduce)\");\n setReduceMotion(mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.matches);\n const listener = (event) => setReduceMotion(event.matches);\n (_b = mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.addEventListener) === null || _b === void 0 ? void 0 : _b.call(mediaQuery, \"change\", listener);\n return () => { var _a; return (_a = mediaQuery === null || mediaQuery === void 0 ? void 0 : mediaQuery.removeEventListener) === null || _a === void 0 ? void 0 : _a.call(mediaQuery, \"change\", listener); };\n }, []);\n return reduceMotion;\n}\n\nfunction currentTransformation(node) {\n let x = 0;\n let y = 0;\n let z = 0;\n const matrix = window.getComputedStyle(node).transform;\n const matcher = matrix.match(/matrix.*\\((.+)\\)/);\n if (matcher) {\n const values = matcher[1].split(\",\").map(parseInt);\n if (values.length === 6) {\n x = values[4];\n y = values[5];\n }\n else if (values.length === 16) {\n x = values[12];\n y = values[13];\n z = values[14];\n }\n }\n return { x, y, z };\n}\nfunction useAnimation(nodeRef, computeAnimation) {\n const snapshot = React.useRef();\n const animation = React.useRef();\n const reduceMotion = useMotionPreference();\n useLayoutEffect(() => {\n var _a, _b, _c;\n if (nodeRef.current && snapshot.current !== undefined && !reduceMotion) {\n const { keyframes, duration, easing, onfinish } = computeAnimation(snapshot.current, nodeRef.current.getBoundingClientRect(), currentTransformation(nodeRef.current)) || {};\n if (keyframes && duration) {\n (_a = animation.current) === null || _a === void 0 ? void 0 : _a.cancel();\n animation.current = undefined;\n try {\n animation.current = (_c = (_b = nodeRef.current).animate) === null || _c === void 0 ? void 0 : _c.call(_b, keyframes, { duration, easing });\n }\n catch (err) {\n console.error(err);\n }\n if (animation.current) {\n animation.current.onfinish = () => {\n animation.current = undefined;\n onfinish === null || onfinish === void 0 ? void 0 : onfinish();\n };\n }\n }\n }\n snapshot.current = undefined;\n });\n return {\n prepareAnimation: (currentSnapshot) => {\n snapshot.current = currentSnapshot;\n },\n isAnimationPlaying: () => { var _a; return ((_a = animation.current) === null || _a === void 0 ? void 0 : _a.playState) === \"running\"; },\n };\n}\n\nfunction useContainerRect() {\n const containerRef = React.useRef(null);\n const observerRef = React.useRef();\n const [containerRect, setContainerRect] = React.useState();\n const setContainerRef = React.useCallback((node) => {\n containerRef.current = node;\n if (observerRef.current) {\n observerRef.current.disconnect();\n observerRef.current = undefined;\n }\n const updateContainerRect = () => {\n if (node) {\n const styles = window.getComputedStyle(node);\n const parse = (value) => parseFloat(value) || 0;\n setContainerRect({\n width: Math.round(node.clientWidth - parse(styles.paddingLeft) - parse(styles.paddingRight)),\n height: Math.round(node.clientHeight - parse(styles.paddingTop) - parse(styles.paddingBottom)),\n });\n }\n else {\n setContainerRect(undefined);\n }\n };\n updateContainerRect();\n if (node && typeof ResizeObserver !== \"undefined\") {\n observerRef.current = new ResizeObserver(updateContainerRect);\n observerRef.current.observe(node);\n }\n }, []);\n return { setContainerRef, containerRef, containerRect };\n}\n\nfunction useDelay() {\n const timeoutId = React.useRef();\n const { setTimeout, clearTimeout } = useTimeouts();\n return React.useCallback((callback, delay) => {\n clearTimeout(timeoutId.current);\n timeoutId.current = setTimeout(callback, delay > 0 ? delay : 0);\n }, [setTimeout, clearTimeout]);\n}\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useLayoutEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) => { var _a; return (_a = ref.current) === null || _a === void 0 ? void 0 : _a.call(ref, ...args); }, []);\n}\n\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n }\n else if (ref) {\n ref.current = value;\n }\n}\nfunction useForkRef(refA, refB) {\n return React.useMemo(() => refA == null && refB == null\n ? null\n : (refValue) => {\n setRef(refA, refValue);\n setRef(refB, refValue);\n }, [refA, refB]);\n}\n\nfunction useLoseFocus(focus, disabled = false) {\n const focused = React.useRef();\n useLayoutEffect(() => {\n if (disabled && focused.current) {\n focused.current = false;\n focus();\n }\n }, [disabled, focus]);\n const onFocus = React.useCallback(() => {\n focused.current = true;\n }, []);\n const onBlur = React.useCallback(() => {\n focused.current = false;\n }, []);\n return { onFocus, onBlur };\n}\n\nfunction useRTL() {\n const [isRTL, setIsRTL] = React.useState(false);\n useLayoutEffect(() => {\n setIsRTL(window.getComputedStyle(window.document.documentElement).direction === \"rtl\");\n }, []);\n return isRTL;\n}\n\nfunction useSensors() {\n const [subscribers] = React.useState({});\n const notifySubscribers = React.useCallback((type, event) => {\n var _a;\n (_a = subscribers[type]) === null || _a === void 0 ? void 0 : _a.forEach((listener) => {\n if (!event.isPropagationStopped())\n listener(event);\n });\n }, [subscribers]);\n const registerSensors = React.useMemo(() => ({\n onPointerDown: (event) => notifySubscribers(EVENT_ON_POINTER_DOWN, event),\n onPointerMove: (event) => notifySubscribers(EVENT_ON_POINTER_MOVE, event),\n onPointerUp: (event) => notifySubscribers(EVENT_ON_POINTER_UP, event),\n onPointerLeave: (event) => notifySubscribers(EVENT_ON_POINTER_LEAVE, event),\n onPointerCancel: (event) => notifySubscribers(EVENT_ON_POINTER_CANCEL, event),\n onKeyDown: (event) => notifySubscribers(EVENT_ON_KEY_DOWN, event),\n onKeyUp: (event) => notifySubscribers(EVENT_ON_KEY_UP, event),\n onWheel: (event) => notifySubscribers(EVENT_ON_WHEEL, event),\n }), [notifySubscribers]);\n const subscribeSensors = React.useCallback((type, callback) => {\n if (!subscribers[type]) {\n subscribers[type] = [];\n }\n subscribers[type].unshift(callback);\n return () => {\n const listeners = subscribers[type];\n if (listeners) {\n listeners.splice(0, listeners.length, ...listeners.filter((el) => el !== callback));\n }\n };\n }, [subscribers]);\n return { registerSensors, subscribeSensors };\n}\n\nfunction useThrottle(callback, delay) {\n const lastCallbackTime = React.useRef(0);\n const delayCallback = useDelay();\n const executeCallback = useEventCallback((...args) => {\n lastCallbackTime.current = Date.now();\n callback(args);\n });\n return React.useCallback((...args) => {\n delayCallback(() => {\n executeCallback(args);\n }, delay - (Date.now() - lastCallbackTime.current));\n }, [delay, executeCallback, delayCallback]);\n}\n\nconst slidePrefix = makeComposePrefix(\"slide\");\nconst slideImagePrefix = makeComposePrefix(\"slide_image\");\nfunction ImageSlide({ slide: image, offset, render, rect, imageFit, imageProps, onClick, onLoad, onError, style, }) {\n var _a, _b, _c, _d, _e, _f, _g;\n const [status, setStatus] = React.useState(SLIDE_STATUS_LOADING);\n const { publish } = useEvents();\n const { setTimeout } = useTimeouts();\n const imageRef = React.useRef(null);\n React.useEffect(() => {\n if (offset === 0) {\n publish(activeSlideStatus(status));\n }\n }, [offset, status, publish]);\n const handleLoading = useEventCallback((img) => {\n (\"decode\" in img ? img.decode() : Promise.resolve())\n .catch(() => { })\n .then(() => {\n if (!img.parentNode) {\n return;\n }\n setStatus(SLIDE_STATUS_COMPLETE);\n setTimeout(() => {\n onLoad === null || onLoad === void 0 ? void 0 : onLoad(img);\n }, 0);\n });\n });\n const setImageRef = React.useCallback((img) => {\n imageRef.current = img;\n if (img === null || img === void 0 ? void 0 : img.complete) {\n handleLoading(img);\n }\n }, [handleLoading]);\n const handleOnLoad = React.useCallback((event) => {\n handleLoading(event.currentTarget);\n }, [handleLoading]);\n const handleOnError = useEventCallback(() => {\n setStatus(SLIDE_STATUS_ERROR);\n onError === null || onError === void 0 ? void 0 : onError();\n });\n const cover = isImageFitCover(image, imageFit);\n const nonInfinite = (value, fallback) => (Number.isFinite(value) ? value : fallback);\n const maxWidth = nonInfinite(Math.max(...((_b = (_a = image.srcSet) === null || _a === void 0 ? void 0 : _a.map((x) => x.width)) !== null && _b !== void 0 ? _b : []).concat(image.width ? [image.width] : []).filter(Boolean)), ((_c = imageRef.current) === null || _c === void 0 ? void 0 : _c.naturalWidth) || 0);\n const maxHeight = nonInfinite(Math.max(...((_e = (_d = image.srcSet) === null || _d === void 0 ? void 0 : _d.map((x) => x.height)) !== null && _e !== void 0 ? _e : []).concat(image.height ? [image.height] : []).filter(Boolean)), ((_f = imageRef.current) === null || _f === void 0 ? void 0 : _f.naturalHeight) || 0);\n const defaultStyle = maxWidth && maxHeight\n ? {\n maxWidth: `min(${maxWidth}px, 100%)`,\n maxHeight: `min(${maxHeight}px, 100%)`,\n }\n : {\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n };\n const srcSet = (_g = image.srcSet) === null || _g === void 0 ? void 0 : _g.sort((a, b) => a.width - b.width).map((item) => `${item.src} ${item.width}w`).join(\", \");\n const estimateActualWidth = () => rect && !cover && image.width && image.height ? (rect.height / image.height) * image.width : Number.MAX_VALUE;\n const sizes = srcSet && rect && hasWindow() ? `${Math.round(Math.min(estimateActualWidth(), rect.width))}px` : undefined;\n const { style: imagePropsStyle, className: imagePropsClassName, ...restImageProps } = imageProps || {};\n return (React.createElement(React.Fragment, null,\n React.createElement(\"img\", { ref: setImageRef, onLoad: handleOnLoad, onError: handleOnError, onClick: onClick, draggable: false, className: clsx(cssClass(slideImagePrefix()), cover && cssClass(slideImagePrefix(\"cover\")), status !== SLIDE_STATUS_COMPLETE && cssClass(slideImagePrefix(\"loading\")), imagePropsClassName), style: { ...defaultStyle, ...style, ...imagePropsStyle }, ...restImageProps, alt: image.alt, sizes: sizes, srcSet: srcSet, src: image.src }),\n status !== SLIDE_STATUS_COMPLETE && (React.createElement(\"div\", { className: cssClass(slidePrefix(SLIDE_STATUS_PLACEHOLDER)) },\n status === SLIDE_STATUS_LOADING &&\n ((render === null || render === void 0 ? void 0 : render.iconLoading) ? (render.iconLoading()) : (React.createElement(LoadingIcon, { className: clsx(cssClass(ELEMENT_ICON), cssClass(slidePrefix(SLIDE_STATUS_LOADING))) }))),\n status === SLIDE_STATUS_ERROR &&\n ((render === null || render === void 0 ? void 0 : render.iconError) ? (render.iconError()) : (React.createElement(ErrorIcon, { className: clsx(cssClass(ELEMENT_ICON), cssClass(slidePrefix(SLIDE_STATUS_ERROR))) })))))));\n}\n\nconst LightboxRoot = React.forwardRef(function LightboxRoot({ className, children, ...rest }, ref) {\n const nodeRef = React.useRef(null);\n return (React.createElement(DocumentContextProvider, { nodeRef: nodeRef },\n React.createElement(\"div\", { ref: useForkRef(ref, nodeRef), className: clsx(cssClass(\"root\"), className), ...rest }, children)));\n});\n\nvar SwipeState;\n(function (SwipeState) {\n SwipeState[SwipeState[\"NONE\"] = 0] = \"NONE\";\n SwipeState[SwipeState[\"SWIPE\"] = 1] = \"SWIPE\";\n SwipeState[SwipeState[\"PULL\"] = 2] = \"PULL\";\n SwipeState[SwipeState[\"ANIMATION\"] = 3] = \"ANIMATION\";\n})(SwipeState || (SwipeState = {}));\n\nfunction usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled) {\n React.useEffect(() => !disabled\n ? cleanup(subscribeSensors(EVENT_ON_POINTER_DOWN, onPointerDown), subscribeSensors(EVENT_ON_POINTER_MOVE, onPointerMove), subscribeSensors(EVENT_ON_POINTER_UP, onPointerUp), subscribeSensors(EVENT_ON_POINTER_LEAVE, onPointerUp), subscribeSensors(EVENT_ON_POINTER_CANCEL, onPointerUp))\n : () => { }, [subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled]);\n}\n\nvar Gesture;\n(function (Gesture) {\n Gesture[Gesture[\"NONE\"] = 0] = \"NONE\";\n Gesture[Gesture[\"SWIPE\"] = 1] = \"SWIPE\";\n Gesture[Gesture[\"PULL\"] = 2] = \"PULL\";\n})(Gesture || (Gesture = {}));\nconst SWIPE_THRESHOLD = 30;\nfunction usePointerSwipe(subscribeSensors, isSwipeValid, containerWidth, swipeAnimationDuration, onSwipeStart, onSwipeProgress, onSwipeFinish, onSwipeCancel, pullUpEnabled, pullDownEnabled, onPullStart, onPullProgress, onPullFinish, onPullCancel) {\n const offset = React.useRef(0);\n const pointers = React.useRef([]);\n const activePointer = React.useRef();\n const startTime = React.useRef(0);\n const gesture = React.useRef(Gesture.NONE);\n const clearPointer = React.useCallback((event) => {\n if (activePointer.current === event.pointerId) {\n activePointer.current = undefined;\n gesture.current = Gesture.NONE;\n }\n const currentPointers = pointers.current;\n currentPointers.splice(0, currentPointers.length, ...currentPointers.filter((p) => p.pointerId !== event.pointerId));\n }, []);\n const addPointer = React.useCallback((event) => {\n clearPointer(event);\n event.persist();\n pointers.current.push(event);\n }, [clearPointer]);\n const onPointerDown = useEventCallback((event) => {\n addPointer(event);\n });\n const exceedsPullThreshold = (value, threshold) => (pullDownEnabled && value > threshold) || (pullUpEnabled && value < -threshold);\n const onPointerUp = useEventCallback((event) => {\n if (pointers.current.find((x) => x.pointerId === event.pointerId) && activePointer.current === event.pointerId) {\n const duration = Date.now() - startTime.current;\n const currentOffset = offset.current;\n if (gesture.current === Gesture.SWIPE) {\n if (Math.abs(currentOffset) > 0.3 * containerWidth ||\n (Math.abs(currentOffset) > 5 && duration < swipeAnimationDuration)) {\n onSwipeFinish(currentOffset, duration);\n }\n else {\n onSwipeCancel(currentOffset);\n }\n }\n else if (gesture.current === Gesture.PULL) {\n if (exceedsPullThreshold(currentOffset, 2 * SWIPE_THRESHOLD)) {\n onPullFinish(currentOffset, duration);\n }\n else {\n onPullCancel(currentOffset);\n }\n }\n offset.current = 0;\n gesture.current = Gesture.NONE;\n }\n clearPointer(event);\n });\n const onPointerMove = useEventCallback((event) => {\n const pointer = pointers.current.find((p) => p.pointerId === event.pointerId);\n if (pointer) {\n const isCurrentPointer = activePointer.current === event.pointerId;\n if (event.buttons === 0) {\n if (isCurrentPointer && offset.current !== 0) {\n onPointerUp(event);\n }\n else {\n clearPointer(pointer);\n }\n return;\n }\n const deltaX = event.clientX - pointer.clientX;\n const deltaY = event.clientY - pointer.clientY;\n if (activePointer.current === undefined) {\n const startGesture = (newGesture) => {\n addPointer(event);\n activePointer.current = event.pointerId;\n startTime.current = Date.now();\n gesture.current = newGesture;\n };\n if (Math.abs(deltaX) > Math.abs(deltaY) && Math.abs(deltaX) > SWIPE_THRESHOLD && isSwipeValid(deltaX)) {\n startGesture(Gesture.SWIPE);\n onSwipeStart();\n }\n else if (Math.abs(deltaY) > Math.abs(deltaX) && exceedsPullThreshold(deltaY, SWIPE_THRESHOLD)) {\n startGesture(Gesture.PULL);\n onPullStart();\n }\n }\n else if (isCurrentPointer) {\n if (gesture.current === Gesture.SWIPE) {\n offset.current = deltaX;\n onSwipeProgress(deltaX);\n }\n else if (gesture.current === Gesture.PULL) {\n offset.current = deltaY;\n onPullProgress(deltaY);\n }\n }\n }\n });\n usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp);\n}\n\nfunction usePreventWheelDefaults({ preventDefaultWheelX, preventDefaultWheelY, }) {\n const ref = React.useRef(null);\n const listener = useEventCallback((event) => {\n const horizontal = Math.abs(event.deltaX) > Math.abs(event.deltaY);\n if ((horizontal && preventDefaultWheelX) || (!horizontal && preventDefaultWheelY) || event.ctrlKey) {\n event.preventDefault();\n }\n });\n return React.useCallback((node) => {\n var _a;\n if (node) {\n node.addEventListener(\"wheel\", listener, { passive: false });\n }\n else {\n (_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(\"wheel\", listener);\n }\n ref.current = node;\n }, [listener]);\n}\n\nfunction useWheelSwipe(swipeState, subscribeSensors, isSwipeValid, containerWidth, swipeAnimationDuration, onSwipeStart, onSwipeProgress, onSwipeFinish, onSwipeCancel) {\n const offset = React.useRef(0);\n const intent = React.useRef(0);\n const intentCleanup = React.useRef();\n const resetCleanup = React.useRef();\n const wheelInertia = React.useRef(0);\n const wheelInertiaCleanup = React.useRef();\n const startTime = React.useRef(0);\n const { setTimeout, clearTimeout } = useTimeouts();\n const cancelSwipeIntentCleanup = React.useCallback(() => {\n if (intentCleanup.current) {\n clearTimeout(intentCleanup.current);\n intentCleanup.current = undefined;\n }\n }, [clearTimeout]);\n const cancelSwipeResetCleanup = React.useCallback(() => {\n if (resetCleanup.current) {\n clearTimeout(resetCleanup.current);\n resetCleanup.current = undefined;\n }\n }, [clearTimeout]);\n const handleCleanup = useEventCallback(() => {\n if (swipeState !== SwipeState.SWIPE) {\n offset.current = 0;\n startTime.current = 0;\n cancelSwipeIntentCleanup();\n cancelSwipeResetCleanup();\n }\n });\n React.useEffect(handleCleanup, [swipeState, handleCleanup]);\n const handleCancelSwipe = useEventCallback((currentSwipeOffset) => {\n resetCleanup.current = undefined;\n if (offset.current === currentSwipeOffset) {\n onSwipeCancel(offset.current);\n }\n });\n const onWheel = useEventCallback((event) => {\n if (event.ctrlKey) {\n return;\n }\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n return;\n }\n const setWheelInertia = (inertia) => {\n wheelInertia.current = inertia;\n clearTimeout(wheelInertiaCleanup.current);\n wheelInertiaCleanup.current =\n inertia > 0\n ? setTimeout(() => {\n wheelInertia.current = 0;\n wheelInertiaCleanup.current = undefined;\n }, 300)\n : undefined;\n };\n if (swipeState === SwipeState.NONE) {\n if (Math.abs(event.deltaX) <= 1.2 * Math.abs(wheelInertia.current)) {\n setWheelInertia(event.deltaX);\n return;\n }\n if (!isSwipeValid(-event.deltaX)) {\n return;\n }\n intent.current += event.deltaX;\n cancelSwipeIntentCleanup();\n if (Math.abs(intent.current) > 30) {\n intent.current = 0;\n setWheelInertia(0);\n startTime.current = Date.now();\n onSwipeStart();\n }\n else {\n const currentSwipeIntent = intent.current;\n intentCleanup.current = setTimeout(() => {\n intentCleanup.current = undefined;\n if (currentSwipeIntent === intent.current) {\n intent.current = 0;\n }\n }, swipeAnimationDuration);\n }\n }\n else if (swipeState === SwipeState.SWIPE) {\n let newSwipeOffset = offset.current - event.deltaX;\n newSwipeOffset = Math.min(Math.abs(newSwipeOffset), containerWidth) * Math.sign(newSwipeOffset);\n offset.current = newSwipeOffset;\n onSwipeProgress(newSwipeOffset);\n cancelSwipeResetCleanup();\n if (Math.abs(newSwipeOffset) > 0.2 * containerWidth) {\n setWheelInertia(event.deltaX);\n onSwipeFinish(newSwipeOffset, Date.now() - startTime.current);\n return;\n }\n resetCleanup.current = setTimeout(() => handleCancelSwipe(newSwipeOffset), 2 * swipeAnimationDuration);\n }\n else {\n setWheelInertia(event.deltaX);\n }\n });\n React.useEffect(() => subscribeSensors(EVENT_ON_WHEEL, onWheel), [subscribeSensors, onWheel]);\n}\n\nconst cssContainerPrefix = makeComposePrefix(\"container\");\nconst ControllerContext = React.createContext(null);\nconst useController = makeUseContext(\"useController\", \"ControllerContext\", ControllerContext);\nfunction Controller({ children, ...props }) {\n var _a;\n const { carousel, animation, controller, on, styles, render } = props;\n const { closeOnPullUp, closeOnPullDown, preventDefaultWheelX, preventDefaultWheelY } = controller;\n const [toolbarWidth, setToolbarWidth] = React.useState();\n const state = useLightboxState();\n const dispatch = useLightboxDispatch();\n const [swipeState, setSwipeState] = React.useState(SwipeState.NONE);\n const swipeOffset = React.useRef(0);\n const pullOffset = React.useRef(0);\n const pullOpacity = React.useRef(1);\n const { registerSensors, subscribeSensors } = useSensors();\n const { subscribe, publish } = useEvents();\n const cleanupAnimationIncrement = useDelay();\n const cleanupSwipeOffset = useDelay();\n const cleanupPullOffset = useDelay();\n const { containerRef, setContainerRef, containerRect } = useContainerRect();\n const handleContainerRef = useForkRef(usePreventWheelDefaults({ preventDefaultWheelX, preventDefaultWheelY }), setContainerRef);\n const carouselRef = React.useRef(null);\n const setCarouselRef = useForkRef(carouselRef, undefined);\n const { getOwnerDocument } = useDocumentContext();\n const isRTL = useRTL();\n const rtl = (value) => (isRTL ? -1 : 1) * (typeof value === \"number\" ? value : 1);\n const focus = useEventCallback(() => { var _a; return (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.focus(); });\n const getLightboxProps = useEventCallback(() => props);\n const getLightboxState = useEventCallback(() => state);\n const prev = React.useCallback((params) => publish(ACTION_PREV, params), [publish]);\n const next = React.useCallback((params) => publish(ACTION_NEXT, params), [publish]);\n const close = React.useCallback(() => publish(ACTION_CLOSE), [publish]);\n const isSwipeValid = (offset) => !(carousel.finite &&\n ((rtl(offset) > 0 && state.currentIndex === 0) ||\n (rtl(offset) < 0 && state.currentIndex === state.slides.length - 1)));\n const setSwipeOffset = (offset) => {\n var _a;\n swipeOffset.current = offset;\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty(cssVar(\"swipe_offset\"), `${Math.round(offset)}px`);\n };\n const setPullOffset = (offset) => {\n var _a, _b;\n pullOffset.current = offset;\n pullOpacity.current = (() => {\n const threshold = 60;\n const minOpacity = 0.5;\n const offsetValue = (() => {\n if (closeOnPullDown && offset > 0)\n return offset;\n if (closeOnPullUp && offset < 0)\n return -offset;\n return 0;\n })();\n return Math.min(Math.max(round(1 - (offsetValue / threshold) * (1 - minOpacity), 2), minOpacity), 1);\n })();\n (_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty(cssVar(\"pull_offset\"), `${Math.round(offset)}px`);\n (_b = containerRef.current) === null || _b === void 0 ? void 0 : _b.style.setProperty(cssVar(\"pull_opacity\"), `${pullOpacity.current}`);\n };\n const { prepareAnimation: preparePullAnimation } = useAnimation(carouselRef, (snapshot, rect, translate) => {\n if (carouselRef.current && containerRect) {\n return {\n keyframes: [\n {\n transform: `translate(0, ${snapshot.rect.y - rect.y + translate.y}px)`,\n opacity: snapshot.opacity,\n },\n { transform: \"translate(0, 0)\", opacity: 1 },\n ],\n duration: snapshot.duration,\n easing: animation.easing.fade,\n };\n }\n return undefined;\n });\n const pull = (offset, cancel) => {\n if (closeOnPullUp || closeOnPullDown) {\n setPullOffset(offset);\n let duration = 0;\n if (carouselRef.current) {\n duration = animation.fade * (cancel ? 2 : 1);\n preparePullAnimation({\n rect: carouselRef.current.getBoundingClientRect(),\n opacity: pullOpacity.current,\n duration,\n });\n }\n cleanupPullOffset(() => {\n setPullOffset(0);\n setSwipeState(SwipeState.NONE);\n }, duration);\n setSwipeState(SwipeState.ANIMATION);\n if (!cancel) {\n close();\n }\n }\n };\n const { prepareAnimation, isAnimationPlaying } = useAnimation(carouselRef, (snapshot, rect, translate) => {\n var _a;\n if (carouselRef.current && containerRect && ((_a = state.animation) === null || _a === void 0 ? void 0 : _a.duration)) {\n const parsedSpacing = parseLengthPercentage(carousel.spacing);\n const spacingValue = (parsedSpacing.percent ? (parsedSpacing.percent * containerRect.width) / 100 : parsedSpacing.pixel) || 0;\n return {\n keyframes: [\n {\n transform: `translate(${rtl(state.globalIndex - snapshot.index) * (containerRect.width + spacingValue) +\n snapshot.rect.x -\n rect.x +\n translate.x}px, 0)`,\n },\n { transform: \"translate(0, 0)\" },\n ],\n duration: state.animation.duration,\n easing: state.animation.easing,\n };\n }\n return undefined;\n });\n const swipe = useEventCallback((action) => {\n var _a, _b;\n const currentSwipeOffset = action.offset || 0;\n const swipeDuration = !currentSwipeOffset ? ((_a = animation.navigation) !== null && _a !== void 0 ? _a : animation.swipe) : animation.swipe;\n const swipeEasing = !currentSwipeOffset && !isAnimationPlaying() ? animation.easing.navigation : animation.easing.swipe;\n let { direction } = action;\n const count = (_b = action.count) !== null && _b !== void 0 ? _b : 1;\n let newSwipeState = SwipeState.ANIMATION;\n let newSwipeAnimationDuration = swipeDuration * count;\n if (!direction) {\n const containerWidth = containerRect === null || containerRect === void 0 ? void 0 : containerRect.width;\n const elapsedTime = action.duration || 0;\n const expectedTime = containerWidth\n ? (swipeDuration / containerWidth) * Math.abs(currentSwipeOffset)\n : swipeDuration;\n if (count !== 0) {\n if (elapsedTime < expectedTime) {\n newSwipeAnimationDuration =\n (newSwipeAnimationDuration / expectedTime) * Math.max(elapsedTime, expectedTime / 5);\n }\n else if (containerWidth) {\n newSwipeAnimationDuration =\n (swipeDuration / containerWidth) * (containerWidth - Math.abs(currentSwipeOffset));\n }\n direction = rtl(currentSwipeOffset) > 0 ? ACTION_PREV : ACTION_NEXT;\n }\n else {\n newSwipeAnimationDuration = swipeDuration / 2;\n }\n }\n let increment = 0;\n if (direction === ACTION_PREV) {\n if (isSwipeValid(rtl(1))) {\n increment = -count;\n }\n else {\n newSwipeState = SwipeState.NONE;\n newSwipeAnimationDuration = swipeDuration;\n }\n }\n else if (direction === ACTION_NEXT) {\n if (isSwipeValid(rtl(-1))) {\n increment = count;\n }\n else {\n newSwipeState = SwipeState.NONE;\n newSwipeAnimationDuration = swipeDuration;\n }\n }\n newSwipeAnimationDuration = Math.round(newSwipeAnimationDuration);\n cleanupSwipeOffset(() => {\n setSwipeOffset(0);\n setSwipeState(SwipeState.NONE);\n }, newSwipeAnimationDuration);\n if (carouselRef.current) {\n prepareAnimation({\n rect: carouselRef.current.getBoundingClientRect(),\n index: state.globalIndex,\n });\n }\n setSwipeState(newSwipeState);\n publish(ACTION_SWIPE, {\n type: \"swipe\",\n increment,\n duration: newSwipeAnimationDuration,\n easing: swipeEasing,\n });\n });\n React.useEffect(() => {\n var _a, _b;\n if (((_a = state.animation) === null || _a === void 0 ? void 0 : _a.increment) && ((_b = state.animation) === null || _b === void 0 ? void 0 : _b.duration)) {\n cleanupAnimationIncrement(() => dispatch({ type: \"swipe\", increment: 0 }), state.animation.duration);\n }\n }, [state.animation, dispatch, cleanupAnimationIncrement]);\n const swipeParams = [\n subscribeSensors,\n isSwipeValid,\n (containerRect === null || containerRect === void 0 ? void 0 : containerRect.width) || 0,\n animation.swipe,\n () => setSwipeState(SwipeState.SWIPE),\n (offset) => setSwipeOffset(offset),\n (offset, duration) => swipe({ offset, duration, count: 1 }),\n (offset) => swipe({ offset, count: 0 }),\n ];\n const pullParams = [\n () => {\n if (closeOnPullDown) {\n setSwipeState(SwipeState.PULL);\n }\n },\n (offset) => setPullOffset(offset),\n (offset) => pull(offset),\n (offset) => pull(offset, true),\n ];\n usePointerSwipe(...swipeParams, closeOnPullUp, closeOnPullDown, ...pullParams);\n useWheelSwipe(swipeState, ...swipeParams);\n const focusOnMount = useEventCallback(() => {\n if (controller.focus &&\n getOwnerDocument().querySelector(`.${cssClass(MODULE_PORTAL)} .${cssClass(cssContainerPrefix())}`)) {\n focus();\n }\n });\n React.useEffect(focusOnMount, [focusOnMount]);\n const onViewCallback = useEventCallback(() => {\n var _a;\n (_a = on.view) === null || _a === void 0 ? void 0 : _a.call(on, { index: state.currentIndex });\n });\n React.useEffect(onViewCallback, [state.globalIndex, onViewCallback]);\n React.useEffect(() => cleanup(subscribe(ACTION_PREV, (action) => swipe({ direction: ACTION_PREV, ...action })), subscribe(ACTION_NEXT, (action) => swipe({ direction: ACTION_NEXT, ...action })), subscribe(ACTION_SWIPE, (action) => dispatch(action))), [subscribe, swipe, dispatch]);\n const context = React.useMemo(() => ({\n prev,\n next,\n close,\n focus,\n slideRect: containerRect ? computeSlideRect(containerRect, carousel.padding) : { width: 0, height: 0 },\n containerRect: containerRect || { width: 0, height: 0 },\n subscribeSensors,\n containerRef,\n setCarouselRef,\n toolbarWidth,\n setToolbarWidth,\n }), [\n prev,\n next,\n close,\n focus,\n subscribeSensors,\n containerRect,\n containerRef,\n setCarouselRef,\n toolbarWidth,\n setToolbarWidth,\n carousel.padding,\n ]);\n React.useImperativeHandle(controller.ref, () => ({\n prev,\n next,\n close,\n focus,\n getLightboxProps,\n getLightboxState,\n }), [prev, next, close, focus, getLightboxProps, getLightboxState]);\n return (React.createElement(\"div\", { ref: handleContainerRef, className: clsx(cssClass(cssContainerPrefix()), cssClass(CLASS_FLEX_CENTER)), style: {\n ...(swipeState === SwipeState.SWIPE\n ? { [cssVar(\"swipe_offset\")]: `${Math.round(swipeOffset.current)}px` }\n : null),\n ...(swipeState === SwipeState.PULL\n ? {\n [cssVar(\"pull_offset\")]: `${Math.round(pullOffset.current)}px`,\n [cssVar(\"pull_opacity\")]: `${pullOpacity.current}`,\n }\n : null),\n ...(controller.touchAction !== \"none\" ? { [cssVar(\"controller_touch_action\")]: controller.touchAction } : null),\n ...styles.container,\n }, ...(controller.aria ? { role: \"presentation\", \"aria-live\": \"polite\" } : null), tabIndex: -1, ...registerSensors }, containerRect && (React.createElement(ControllerContext.Provider, { value: context },\n children, (_a = render.controls) === null || _a === void 0 ? void 0 :\n _a.call(render)))));\n}\nconst ControllerModule = createModule(MODULE_CONTROLLER, Controller);\n\nfunction cssPrefix$2(value) {\n return composePrefix(MODULE_CAROUSEL, value);\n}\nfunction cssSlidePrefix(value) {\n return composePrefix(\"slide\", value);\n}\nfunction CarouselSlide({ slide, offset }) {\n const containerRef = React.useRef(null);\n const { currentIndex } = useLightboxState();\n const { slideRect, close, focus } = useController();\n const { render, carousel: { imageFit, imageProps }, on: { click: onClick }, controller: { closeOnBackdropClick }, styles: { slide: style }, } = useLightboxProps();\n const { getOwnerDocument } = useDocumentContext();\n const offscreen = offset !== 0;\n React.useEffect(() => {\n var _a;\n if (offscreen && ((_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.contains(getOwnerDocument().activeElement))) {\n focus();\n }\n }, [offscreen, focus, getOwnerDocument]);\n const renderSlide = () => {\n var _a, _b, _c, _d;\n let rendered = (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, { slide, offset, rect: slideRect });\n if (!rendered && isImageSlide(slide)) {\n rendered = (React.createElement(ImageSlide, { slide: slide, offset: offset, render: render, rect: slideRect, imageFit: imageFit, imageProps: imageProps, onClick: !offscreen ? () => onClick === null || onClick === void 0 ? void 0 : onClick({ index: currentIndex }) : undefined }));\n }\n return rendered ? (React.createElement(React.Fragment, null, (_b = render.slideHeader) === null || _b === void 0 ? void 0 :\n _b.call(render, { slide }),\n ((_c = render.slideContainer) !== null && _c !== void 0 ? _c : (({ children }) => children))({ slide, children: rendered }), (_d = render.slideFooter) === null || _d === void 0 ? void 0 :\n _d.call(render, { slide }))) : null;\n };\n const handleBackdropClick = (event) => {\n const container = containerRef.current;\n const target = event.target instanceof HTMLElement ? event.target : undefined;\n if (closeOnBackdropClick &&\n target &&\n container &&\n (target === container ||\n (Array.from(container.children).find((x) => x === target) &&\n target.classList.contains(cssClass(CLASS_SLIDE_WRAPPER))))) {\n close();\n }\n };\n return (React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(cssSlidePrefix()), !offscreen && cssClass(cssSlidePrefix(\"current\")), cssClass(CLASS_FLEX_CENTER)), ...makeInertWhen(offscreen), onClick: handleBackdropClick, style: style }, renderSlide()));\n}\nfunction Placeholder() {\n const style = useLightboxProps().styles.slide;\n return React.createElement(\"div\", { className: cssClass(\"slide\"), style: style });\n}\nfunction Carousel({ carousel }) {\n const { slides, currentIndex, globalIndex } = useLightboxState();\n const { setCarouselRef } = useController();\n const spacingValue = parseLengthPercentage(carousel.spacing);\n const paddingValue = parseLengthPercentage(carousel.padding);\n const preload = calculatePreload(carousel, slides, 1);\n const items = [];\n if (hasSlides(slides)) {\n for (let index = currentIndex - preload; index <= currentIndex + preload; index += 1) {\n const slide = getSlide(slides, index);\n const key = globalIndex - currentIndex + index;\n const placeholder = carousel.finite && (index < 0 || index > slides.length - 1);\n items.push(!placeholder\n ? {\n key: [`${key}`, getSlideKey(slide)].filter(Boolean).join(\"|\"),\n offset: index - currentIndex,\n slide,\n }\n : { key });\n }\n }\n return (React.createElement(\"div\", { ref: setCarouselRef, className: clsx(cssClass(cssPrefix$2()), items.length > 0 && cssClass(cssPrefix$2(\"with_slides\"))), style: {\n [`${cssVar(cssPrefix$2(\"slides_count\"))}`]: items.length,\n [`${cssVar(cssPrefix$2(\"spacing_px\"))}`]: spacingValue.pixel || 0,\n [`${cssVar(cssPrefix$2(\"spacing_percent\"))}`]: spacingValue.percent || 0,\n [`${cssVar(cssPrefix$2(\"padding_px\"))}`]: paddingValue.pixel || 0,\n [`${cssVar(cssPrefix$2(\"padding_percent\"))}`]: paddingValue.percent || 0,\n } }, items.map(({ key, slide, offset }) => slide ? React.createElement(CarouselSlide, { key: key, slide: slide, offset: offset }) : React.createElement(Placeholder, { key: key }))));\n}\nconst CarouselModule = createModule(MODULE_CAROUSEL, Carousel);\n\nfunction useNavigationState() {\n const { carousel } = useLightboxProps();\n const { slides, currentIndex } = useLightboxState();\n const prevDisabled = slides.length === 0 || (carousel.finite && currentIndex === 0);\n const nextDisabled = slides.length === 0 || (carousel.finite && currentIndex === slides.length - 1);\n return { prevDisabled, nextDisabled };\n}\n\nfunction useKeyboardNavigation(subscribeSensors) {\n var _a;\n const isRTL = useRTL();\n const { publish } = useEvents();\n const { animation } = useLightboxProps();\n const { prevDisabled, nextDisabled } = useNavigationState();\n const throttle = ((_a = animation.navigation) !== null && _a !== void 0 ? _a : animation.swipe) / 2;\n const prev = useThrottle(() => publish(ACTION_PREV), throttle);\n const next = useThrottle(() => publish(ACTION_NEXT), throttle);\n const handleKeyDown = useEventCallback((event) => {\n switch (event.key) {\n case VK_ESCAPE:\n publish(ACTION_CLOSE);\n break;\n case VK_ARROW_LEFT:\n if (!(isRTL ? nextDisabled : prevDisabled))\n (isRTL ? next : prev)();\n break;\n case VK_ARROW_RIGHT:\n if (!(isRTL ? prevDisabled : nextDisabled))\n (isRTL ? prev : next)();\n break;\n default:\n }\n });\n React.useEffect(() => subscribeSensors(EVENT_ON_KEY_DOWN, handleKeyDown), [subscribeSensors, handleKeyDown]);\n}\n\nfunction NavigationButton({ label, icon, renderIcon, action, onClick, disabled, style }) {\n return (React.createElement(IconButton, { label: label, icon: icon, renderIcon: renderIcon, className: cssClass(`navigation_${action}`), disabled: disabled, onClick: onClick, style: style, ...useLoseFocus(useController().focus, disabled) }));\n}\nfunction Navigation({ render: { buttonPrev, buttonNext, iconPrev, iconNext }, styles }) {\n const { prev, next, subscribeSensors } = useController();\n const { prevDisabled, nextDisabled } = useNavigationState();\n useKeyboardNavigation(subscribeSensors);\n return (React.createElement(React.Fragment, null,\n buttonPrev ? (buttonPrev()) : (React.createElement(NavigationButton, { label: \"Previous\", action: ACTION_PREV, icon: PreviousIcon, renderIcon: iconPrev, style: styles.navigationPrev, disabled: prevDisabled, onClick: prev })),\n buttonNext ? (buttonNext()) : (React.createElement(NavigationButton, { label: \"Next\", action: ACTION_NEXT, icon: NextIcon, renderIcon: iconNext, style: styles.navigationNext, disabled: nextDisabled, onClick: next }))));\n}\nconst NavigationModule = createModule(MODULE_NAVIGATION, Navigation);\n\nconst noScroll = cssClass(CLASS_NO_SCROLL);\nconst noScrollPadding = cssClass(CLASS_NO_SCROLL_PADDING);\nfunction isHTMLElement(element) {\n return \"style\" in element;\n}\nfunction padScrollbar(element, padding, rtl) {\n const styles = window.getComputedStyle(element);\n const property = rtl ? \"padding-left\" : \"padding-right\";\n const computedValue = rtl ? styles.paddingLeft : styles.paddingRight;\n const originalValue = element.style.getPropertyValue(property);\n element.style.setProperty(property, `${(parseInt(computedValue) || 0) + padding}px`);\n return () => {\n if (originalValue) {\n element.style.setProperty(property, originalValue);\n }\n else {\n element.style.removeProperty(property);\n }\n };\n}\nfunction NoScroll({ noScroll: { disabled }, children }) {\n const rtl = useRTL();\n const { getOwnerDocument, getOwnerWindow } = useDocumentContext();\n React.useEffect(() => {\n if (disabled)\n return () => { };\n const cleanup = [];\n const ownerWindow = getOwnerWindow();\n const { body, documentElement } = getOwnerDocument();\n const scrollbar = Math.round(ownerWindow.innerWidth - documentElement.clientWidth);\n if (scrollbar > 0) {\n cleanup.push(padScrollbar(body, scrollbar, rtl));\n const elements = body.getElementsByTagName(\"*\");\n for (let i = 0; i < elements.length; i += 1) {\n const element = elements[i];\n if (isHTMLElement(element) &&\n ownerWindow.getComputedStyle(element).getPropertyValue(\"position\") === \"fixed\" &&\n !element.classList.contains(noScrollPadding)) {\n cleanup.push(padScrollbar(element, scrollbar, rtl));\n }\n }\n }\n body.classList.add(noScroll);\n return () => {\n body.classList.remove(noScroll);\n cleanup.forEach((clean) => clean());\n };\n }, [rtl, disabled, getOwnerDocument, getOwnerWindow]);\n return React.createElement(React.Fragment, null, children);\n}\nconst NoScrollModule = createModule(MODULE_NO_SCROLL, NoScroll);\n\nfunction cssPrefix$1(value) {\n return composePrefix(MODULE_PORTAL, value);\n}\nfunction setAttribute(element, attribute, value) {\n const previousValue = element.getAttribute(attribute);\n element.setAttribute(attribute, value);\n return () => {\n if (previousValue) {\n element.setAttribute(attribute, previousValue);\n }\n else {\n element.removeAttribute(attribute);\n }\n };\n}\nfunction Portal({ children, animation, styles, className, on, portal, close }) {\n const [mounted, setMounted] = React.useState(false);\n const [visible, setVisible] = React.useState(false);\n const cleanup = React.useRef([]);\n const restoreFocus = React.useRef(null);\n const { setTimeout } = useTimeouts();\n const { subscribe } = useEvents();\n const reduceMotion = useMotionPreference();\n const animationDuration = !reduceMotion ? animation.fade : 0;\n React.useEffect(() => {\n setMounted(true);\n return () => {\n setMounted(false);\n setVisible(false);\n };\n }, []);\n const handleCleanup = useEventCallback(() => {\n cleanup.current.forEach((clean) => clean());\n cleanup.current = [];\n });\n const handleClose = useEventCallback(() => {\n var _a;\n setVisible(false);\n handleCleanup();\n (_a = on.exiting) === null || _a === void 0 ? void 0 : _a.call(on);\n setTimeout(() => {\n var _a;\n (_a = on.exited) === null || _a === void 0 ? void 0 : _a.call(on);\n close();\n }, animationDuration);\n });\n React.useEffect(() => subscribe(ACTION_CLOSE, handleClose), [subscribe, handleClose]);\n const handleEnter = useEventCallback((node) => {\n var _a, _b, _c;\n node.scrollTop;\n setVisible(true);\n (_a = on.entering) === null || _a === void 0 ? void 0 : _a.call(on);\n const elements = (_c = (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.children) !== null && _c !== void 0 ? _c : [];\n for (let i = 0; i < elements.length; i += 1) {\n const element = elements[i];\n if ([\"TEMPLATE\", \"SCRIPT\", \"STYLE\"].indexOf(element.tagName) === -1 && element !== node) {\n cleanup.current.push(setAttribute(element, \"inert\", \"\"));\n cleanup.current.push(setAttribute(element, \"aria-hidden\", \"true\"));\n }\n }\n cleanup.current.push(() => {\n var _a, _b;\n (_b = (_a = restoreFocus.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);\n });\n setTimeout(() => {\n var _a;\n (_a = on.entered) === null || _a === void 0 ? void 0 : _a.call(on);\n }, animationDuration);\n });\n const handleRef = React.useCallback((node) => {\n if (node) {\n handleEnter(node);\n }\n else {\n handleCleanup();\n }\n }, [handleEnter, handleCleanup]);\n return mounted\n ? createPortal(React.createElement(LightboxRoot, { ref: handleRef, className: clsx(className, cssClass(cssPrefix$1()), cssClass(CLASS_NO_SCROLL_PADDING), visible && cssClass(cssPrefix$1(\"open\"))), role: \"presentation\", \"aria-live\": \"polite\", style: {\n ...(animation.fade !== LightboxDefaultProps.animation.fade\n ? { [cssVar(\"fade_animation_duration\")]: `${animationDuration}ms` }\n : null),\n ...(animation.easing.fade !== LightboxDefaultProps.animation.easing.fade\n ? { [cssVar(\"fade_animation_timing_function\")]: animation.easing.fade }\n : null),\n ...styles.root,\n }, onFocus: (event) => {\n if (!restoreFocus.current) {\n restoreFocus.current = event.relatedTarget;\n }\n } }, children), portal.root || document.body)\n : null;\n}\nconst PortalModule = createModule(MODULE_PORTAL, Portal);\n\nfunction Root({ children }) {\n return React.createElement(React.Fragment, null, children);\n}\nconst RootModule = createModule(MODULE_ROOT, Root);\n\nfunction cssPrefix(value) {\n return composePrefix(MODULE_TOOLBAR, value);\n}\nfunction Toolbar({ toolbar: { buttons }, render: { buttonClose, iconClose }, styles }) {\n const { close, setToolbarWidth } = useController();\n const { setContainerRef, containerRect } = useContainerRect();\n useLayoutEffect(() => {\n setToolbarWidth(containerRect === null || containerRect === void 0 ? void 0 : containerRect.width);\n }, [setToolbarWidth, containerRect === null || containerRect === void 0 ? void 0 : containerRect.width]);\n const renderCloseButton = () => {\n if (buttonClose)\n return buttonClose();\n return React.createElement(IconButton, { key: ACTION_CLOSE, label: \"Close\", icon: CloseIcon, renderIcon: iconClose, onClick: close });\n };\n return (React.createElement(\"div\", { ref: setContainerRef, style: styles.toolbar, className: cssClass(cssPrefix()) }, buttons === null || buttons === void 0 ? void 0 : buttons.map((button) => (button === ACTION_CLOSE ? renderCloseButton() : button))));\n}\nconst ToolbarModule = createModule(MODULE_TOOLBAR, Toolbar);\n\nfunction renderNode(node, props) {\n var _a;\n return React.createElement(node.module.component, { key: node.module.name, ...props }, (_a = node.children) === null || _a === void 0 ? void 0 : _a.map((child) => renderNode(child, props)));\n}\nfunction mergeAnimation(defaultAnimation, animation = {}) {\n const { easing: defaultAnimationEasing, ...restDefaultAnimation } = defaultAnimation;\n const { easing, ...restAnimation } = animation;\n return {\n easing: { ...defaultAnimationEasing, ...easing },\n ...restDefaultAnimation,\n ...restAnimation,\n };\n}\nfunction Lightbox({ carousel, animation, render, toolbar, controller, noScroll, on, plugins, slides, index, ...restProps }) {\n const { animation: defaultAnimation, carousel: defaultCarousel, render: defaultRender, toolbar: defaultToolbar, controller: defaultController, noScroll: defaultNoScroll, on: defaultOn, slides: defaultSlides, index: defaultIndex, plugins: defaultPlugins, ...restDefaultProps } = LightboxDefaultProps;\n const { config, augmentation } = withPlugins([\n createNode(PortalModule, [\n createNode(NoScrollModule, [\n createNode(ControllerModule, [\n createNode(CarouselModule),\n createNode(ToolbarModule),\n createNode(NavigationModule),\n ]),\n ]),\n ]),\n ], plugins || defaultPlugins);\n const props = augmentation({\n animation: mergeAnimation(defaultAnimation, animation),\n carousel: { ...defaultCarousel, ...carousel },\n render: { ...defaultRender, ...render },\n toolbar: { ...defaultToolbar, ...toolbar },\n controller: { ...defaultController, ...controller },\n noScroll: { ...defaultNoScroll, ...noScroll },\n on: { ...defaultOn, ...on },\n ...restDefaultProps,\n ...restProps,\n });\n if (!props.open)\n return null;\n return (React.createElement(LightboxPropsProvider, { ...props },\n React.createElement(LightboxStateProvider, { slides: slides || defaultSlides, index: parseInt(index || defaultIndex) },\n React.createElement(TimeoutsProvider, null,\n React.createElement(EventsProvider, null, renderNode(createNode(RootModule, config), props))))));\n}\n\nexport { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, CLASS_FLEX_CENTER, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, CLASS_SLIDE_WRAPPER, Carousel, CarouselModule, CloseIcon, Controller, ControllerContext, ControllerModule, DocumentContext, DocumentContextProvider, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, ErrorIcon, EventsContext, EventsProvider, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, IconButton, ImageSlide, Lightbox, LightboxDefaultProps, LightboxDispatchContext, LightboxPropsContext, LightboxPropsProvider, LightboxRoot, LightboxStateContext, LightboxStateProvider, LoadingIcon, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, Navigation, NavigationButton, NavigationModule, NextIcon, NoScroll, NoScrollModule, Portal, PortalModule, PreviousIcon, Root, RootModule, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SwipeState, TimeoutsContext, TimeoutsProvider, Toolbar, ToolbarModule, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, activeSlideStatus, addToolbarButton, calculatePreload, cleanup, clsx, composePrefix, computeSlideRect, createIcon, createIconDisabled, createModule, createNode, cssClass, cssVar, Lightbox as default, devicePixelRatio, getSlide, getSlideIfPresent, getSlideIndex, getSlideKey, hasSlides, hasWindow, isImageFitCover, isImageSlide, label, makeComposePrefix, makeInertWhen, makeUseContext, parseInt, parseLengthPercentage, round, setRef, stopNavigationEventsPropagation, useAnimation, useContainerRect, useController, useDelay, useDocumentContext, useEventCallback, useEvents, useForkRef, useKeyboardNavigation, useLayoutEffect, useLightboxDispatch, useLightboxProps, useLightboxState, useLoseFocus, useMotionPreference, useNavigationState, usePointerEvents, usePointerSwipe, usePreventWheelDefaults, useRTL, useSensors, useThrottle, useTimeouts, useWheelSwipe, withPlugins };","import * as React from 'react';\nimport { cssClass, useLightboxProps, makeUseContext, useController, clsx, cssVar, createIcon, createIconDisabled, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport { PLUGIN_CAPTIONS } from '../../types.js';\n\nconst cssPrefix = (className) => cssClass(`slide_${className}`);\n\nconst defaultCaptionsProps = {\n descriptionTextAlign: \"start\",\n descriptionMaxLines: 3,\n showToggle: false,\n hidden: false,\n};\nconst resolveCaptionsProps = (captions) => ({\n ...defaultCaptionsProps,\n ...captions,\n});\nfunction useCaptionsProps() {\n const { captions } = useLightboxProps();\n return resolveCaptionsProps(captions);\n}\n\nconst CaptionsContext = React.createContext(null);\nconst useCaptions = makeUseContext(\"useCaptions\", \"CaptionsContext\", CaptionsContext);\nfunction CaptionsContextProvider({ captions, children }) {\n const { ref, hidden } = resolveCaptionsProps(captions);\n const [visible, setVisible] = React.useState(!hidden);\n const context = React.useMemo(() => ({\n visible,\n show: () => setVisible(true),\n hide: () => setVisible(false),\n }), [visible]);\n React.useImperativeHandle(ref, () => context, [context]);\n return React.createElement(CaptionsContext.Provider, { value: context }, children);\n}\n\nfunction Title({ title }) {\n const { toolbarWidth } = useController();\n const { styles } = useLightboxProps();\n const { visible } = useCaptions();\n if (!visible)\n return null;\n return (React.createElement(\"div\", { style: styles.captionsTitleContainer, className: clsx(cssPrefix(\"captions_container\"), cssPrefix(\"title_container\")) },\n React.createElement(\"div\", { className: cssPrefix(\"title\"), style: {\n ...(toolbarWidth ? { [cssVar(\"toolbar_width\")]: `${toolbarWidth}px` } : null),\n ...styles.captionsTitle,\n } }, title)));\n}\n\nfunction Description({ description }) {\n const { descriptionTextAlign, descriptionMaxLines } = useCaptionsProps();\n const { styles } = useLightboxProps();\n const { visible } = useCaptions();\n if (!visible)\n return null;\n return (React.createElement(\"div\", { style: styles.captionsDescriptionContainer, className: clsx(cssPrefix(\"captions_container\"), cssPrefix(\"description_container\")) },\n React.createElement(\"div\", { className: cssPrefix(\"description\"), style: {\n ...(descriptionTextAlign !== defaultCaptionsProps.descriptionTextAlign ||\n descriptionMaxLines !== defaultCaptionsProps.descriptionMaxLines\n ? {\n [cssVar(\"slide_description_text_align\")]: descriptionTextAlign,\n [cssVar(\"slide_description_max_lines\")]: descriptionMaxLines,\n }\n : null),\n ...styles.captionsDescription,\n } }, typeof description === \"string\"\n ? description\n .split(\"\\n\")\n .flatMap((line, index) => [...(index > 0 ? [React.createElement(\"br\", { key: index })] : []), line])\n : description)));\n}\n\nconst captionsIcon = () => (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { strokeWidth: 2, stroke: \"currentColor\", strokeLinejoin: \"round\", fill: \"none\", d: \"M3 5l18 0l0 14l-18 0l0-14z\" }),\n React.createElement(\"path\", { d: \"M7 15h3c.55 0 1-.45 1-1v-1H9.5v.5h-2v-3h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7 0h3c.55 0 1-.45 1-1v-1h-1.5v.5h-2v-3h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z\" })));\nconst CaptionsVisible = createIcon(\"CaptionsVisible\", captionsIcon());\nconst CaptionsHidden = createIconDisabled(\"CaptionsVisible\", captionsIcon());\nfunction CaptionsButton() {\n const { visible, show, hide } = useCaptions();\n const { render } = useLightboxProps();\n if (render.buttonCaptions) {\n return React.createElement(React.Fragment, null, render.buttonCaptions({ visible, show, hide }));\n }\n return (React.createElement(IconButton, { label: visible ? \"Hide captions\" : \"Show captions\", icon: visible ? CaptionsVisible : CaptionsHidden, renderIcon: visible ? render.iconCaptionsVisible : render.iconCaptionsHidden, onClick: visible ? hide : show }));\n}\n\nfunction Captions({ augment, addModule }) {\n augment(({ captions: captionsProps, render: { slideFooter: renderFooter, ...restRender }, toolbar, ...restProps }) => {\n const captions = resolveCaptionsProps(captionsProps);\n return {\n render: {\n slideFooter: ({ slide }) => (React.createElement(React.Fragment, null, renderFooter === null || renderFooter === void 0 ? void 0 :\n renderFooter({ slide }),\n slide.title && React.createElement(Title, { title: slide.title }),\n slide.description && React.createElement(Description, { description: slide.description }))),\n ...restRender,\n },\n toolbar: addToolbarButton(toolbar, PLUGIN_CAPTIONS, captions.showToggle ? React.createElement(CaptionsButton, null) : null),\n captions,\n ...restProps,\n };\n });\n addModule(createModule(PLUGIN_CAPTIONS, CaptionsContextProvider));\n}\n\nexport { Captions as default };\n","import * as React from 'react';\nimport { makeUseContext, useDocumentContext, useLayoutEffect, cleanup, useEventCallback, clsx, cssClass, createIcon, useLightboxProps, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport { PLUGIN_FULLSCREEN, CLASS_FULLSIZE, PLUGIN_THUMBNAILS, MODULE_CONTROLLER } from '../../types.js';\n\nconst defaultFullscreenProps = {\n auto: false,\n ref: null,\n};\nconst resolveFullscreenProps = (fullscreen) => ({\n ...defaultFullscreenProps,\n ...fullscreen,\n});\n\nconst FullscreenContext = React.createContext(null);\nconst useFullscreen = makeUseContext(\"useFullscreen\", \"FullscreenContext\", FullscreenContext);\nfunction FullscreenContextProvider({ fullscreen: fullscreenProps, on, children }) {\n const { auto, ref } = resolveFullscreenProps(fullscreenProps);\n const containerRef = React.useRef(null);\n const [disabled, setDisabled] = React.useState();\n const [fullscreen, setFullscreen] = React.useState(false);\n const wasFullscreen = React.useRef(false);\n const { getOwnerDocument } = useDocumentContext();\n useLayoutEffect(() => {\n var _a, _b, _c, _d;\n const ownerDocument = getOwnerDocument();\n setDisabled(!((_d = (_c = (_b = (_a = ownerDocument.fullscreenEnabled) !== null && _a !== void 0 ? _a : ownerDocument.webkitFullscreenEnabled) !== null && _b !== void 0 ? _b : ownerDocument.mozFullScreenEnabled) !== null && _c !== void 0 ? _c : ownerDocument.msFullscreenEnabled) !== null && _d !== void 0 ? _d : false));\n }, [getOwnerDocument]);\n const getFullscreenElement = React.useCallback(() => {\n var _a;\n const ownerDocument = getOwnerDocument();\n const fullscreenElement = ownerDocument.fullscreenElement ||\n ownerDocument.webkitFullscreenElement ||\n ownerDocument.mozFullScreenElement ||\n ownerDocument.msFullscreenElement;\n return ((_a = fullscreenElement === null || fullscreenElement === void 0 ? void 0 : fullscreenElement.shadowRoot) === null || _a === void 0 ? void 0 : _a.fullscreenElement) || fullscreenElement;\n }, [getOwnerDocument]);\n const enter = React.useCallback(() => {\n const container = containerRef.current;\n try {\n if (container.requestFullscreen) {\n container.requestFullscreen().catch(() => { });\n }\n else if (container.webkitRequestFullscreen) {\n container.webkitRequestFullscreen();\n }\n else if (container.mozRequestFullScreen) {\n container.mozRequestFullScreen();\n }\n else if (container.msRequestFullscreen) {\n container.msRequestFullscreen();\n }\n }\n catch (err) {\n }\n }, []);\n const exit = React.useCallback(() => {\n if (!getFullscreenElement())\n return;\n const ownerDocument = getOwnerDocument();\n try {\n if (ownerDocument.exitFullscreen) {\n ownerDocument.exitFullscreen().catch(() => { });\n }\n else if (ownerDocument.webkitExitFullscreen) {\n ownerDocument.webkitExitFullscreen();\n }\n else if (ownerDocument.mozCancelFullScreen) {\n ownerDocument.mozCancelFullScreen();\n }\n else if (ownerDocument.msExitFullscreen) {\n ownerDocument.msExitFullscreen();\n }\n }\n catch (err) {\n }\n }, [getFullscreenElement, getOwnerDocument]);\n React.useEffect(() => {\n const ownerDocument = getOwnerDocument();\n const listener = () => {\n setFullscreen(getFullscreenElement() === containerRef.current);\n };\n return cleanup(...[\"fullscreenchange\", \"webkitfullscreenchange\", \"mozfullscreenchange\", \"MSFullscreenChange\"].map((event) => {\n ownerDocument.addEventListener(event, listener);\n return () => ownerDocument.removeEventListener(event, listener);\n }));\n }, [getFullscreenElement, getOwnerDocument]);\n const onEnterFullscreen = useEventCallback(() => { var _a; return (_a = on.enterFullscreen) === null || _a === void 0 ? void 0 : _a.call(on); });\n const onExitFullscreen = useEventCallback(() => { var _a; return (_a = on.exitFullscreen) === null || _a === void 0 ? void 0 : _a.call(on); });\n React.useEffect(() => {\n if (fullscreen) {\n wasFullscreen.current = true;\n }\n if (wasFullscreen.current) {\n (fullscreen ? onEnterFullscreen : onExitFullscreen)();\n }\n }, [fullscreen, onEnterFullscreen, onExitFullscreen]);\n const handleAutoFullscreen = useEventCallback(() => {\n var _a;\n (_a = (auto ? enter : null)) === null || _a === void 0 ? void 0 : _a();\n return exit;\n });\n React.useEffect(handleAutoFullscreen, [handleAutoFullscreen]);\n const context = React.useMemo(() => ({ fullscreen, disabled, enter, exit }), [fullscreen, disabled, enter, exit]);\n React.useImperativeHandle(ref, () => context, [context]);\n return (React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(PLUGIN_FULLSCREEN), cssClass(CLASS_FULLSIZE)) },\n React.createElement(FullscreenContext.Provider, { value: context }, children)));\n}\n\nconst EnterFullscreenIcon = createIcon(\"EnterFullscreen\", React.createElement(\"path\", { d: \"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\" }));\nconst ExitFullscreenIcon = createIcon(\"ExitFullscreen\", React.createElement(\"path\", { d: \"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\" }));\nfunction FullscreenButton() {\n var _a;\n const { fullscreen, disabled, enter, exit } = useFullscreen();\n const { render } = useLightboxProps();\n if (disabled)\n return null;\n if (render.buttonFullscreen) {\n return React.createElement(React.Fragment, null, (_a = render.buttonFullscreen) === null || _a === void 0 ? void 0 : _a.call(render, { fullscreen, disabled, enter, exit }));\n }\n return (React.createElement(IconButton, { disabled: disabled, label: fullscreen ? \"Exit Fullscreen\" : \"Enter Fullscreen\", icon: fullscreen ? ExitFullscreenIcon : EnterFullscreenIcon, renderIcon: fullscreen ? render.iconExitFullscreen : render.iconEnterFullscreen, onClick: fullscreen ? exit : enter }));\n}\n\nfunction Fullscreen({ augment, contains, addParent }) {\n augment(({ fullscreen, toolbar, ...restProps }) => ({\n toolbar: addToolbarButton(toolbar, PLUGIN_FULLSCREEN, React.createElement(FullscreenButton, null)),\n fullscreen: resolveFullscreenProps(fullscreen),\n ...restProps,\n }));\n addParent(contains(PLUGIN_THUMBNAILS) ? PLUGIN_THUMBNAILS : MODULE_CONTROLLER, createModule(PLUGIN_FULLSCREEN, FullscreenContextProvider));\n}\n\nexport { Fullscreen as default };\n","import * as React from 'react';\nimport { makeUseContext, useLightboxState, useTimeouts, useEvents, useController, useEventCallback, cleanup, createIcon, useLightboxProps, useLoseFocus, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport { SLIDE_STATUS_LOADING, SLIDE_STATUS_PLAYING, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, ACTIVE_SLIDE_ERROR, SLIDE_STATUS_ERROR, ACTIVE_SLIDE_COMPLETE, SLIDE_STATUS_COMPLETE, PLUGIN_SLIDESHOW } from '../../types.js';\n\nconst defaultSlideshowProps = {\n autoplay: false,\n delay: 3000,\n ref: null,\n};\nconst resolveSlideshowProps = (slideshow) => ({\n ...defaultSlideshowProps,\n ...slideshow,\n});\n\nconst SlideshowContext = React.createContext(null);\nconst useSlideshow = makeUseContext(\"useSlideshow\", \"SlideshowContext\", SlideshowContext);\nfunction SlideshowContextProvider({ slideshow, carousel: { finite }, on, children }) {\n const { autoplay, delay, ref } = resolveSlideshowProps(slideshow);\n const wasPlaying = React.useRef(autoplay);\n const [playing, setPlaying] = React.useState(autoplay);\n const scheduler = React.useRef();\n const slideStatus = React.useRef();\n const { slides, currentIndex } = useLightboxState();\n const { setTimeout, clearTimeout } = useTimeouts();\n const { subscribe } = useEvents();\n const { next } = useController();\n const disabled = slides.length === 0 || (finite && currentIndex === slides.length - 1);\n const play = React.useCallback(() => {\n if (!playing && !disabled) {\n setPlaying(true);\n }\n }, [playing, disabled]);\n const pause = React.useCallback(() => {\n if (playing) {\n setPlaying(false);\n }\n }, [playing]);\n const cancelScheduler = React.useCallback(() => {\n clearTimeout(scheduler.current);\n scheduler.current = undefined;\n }, [clearTimeout]);\n const scheduleNextSlide = useEventCallback(() => {\n cancelScheduler();\n if (!playing ||\n disabled ||\n slideStatus.current === SLIDE_STATUS_LOADING ||\n slideStatus.current === SLIDE_STATUS_PLAYING) {\n return;\n }\n scheduler.current = setTimeout(() => {\n if (playing) {\n slideStatus.current = undefined;\n next();\n }\n }, delay);\n });\n React.useEffect(scheduleNextSlide, [currentIndex, playing, scheduleNextSlide]);\n React.useEffect(() => {\n if (playing && disabled) {\n setPlaying(false);\n }\n }, [currentIndex, playing, disabled]);\n const onSlideshowStart = useEventCallback(() => { var _a; return (_a = on.slideshowStart) === null || _a === void 0 ? void 0 : _a.call(on); });\n const onSlideshowStop = useEventCallback(() => { var _a; return (_a = on.slideshowStop) === null || _a === void 0 ? void 0 : _a.call(on); });\n React.useEffect(() => {\n if (playing) {\n onSlideshowStart();\n }\n else if (wasPlaying.current) {\n onSlideshowStop();\n }\n wasPlaying.current = playing;\n }, [playing, onSlideshowStart, onSlideshowStop]);\n React.useEffect(() => cleanup(cancelScheduler, subscribe(ACTIVE_SLIDE_LOADING, () => {\n slideStatus.current = SLIDE_STATUS_LOADING;\n cancelScheduler();\n }), subscribe(ACTIVE_SLIDE_PLAYING, () => {\n slideStatus.current = SLIDE_STATUS_PLAYING;\n cancelScheduler();\n }), subscribe(ACTIVE_SLIDE_ERROR, () => {\n slideStatus.current = SLIDE_STATUS_ERROR;\n scheduleNextSlide();\n }), subscribe(ACTIVE_SLIDE_COMPLETE, () => {\n slideStatus.current = SLIDE_STATUS_COMPLETE;\n scheduleNextSlide();\n })), [subscribe, cancelScheduler, scheduleNextSlide]);\n const context = React.useMemo(() => ({ playing, disabled, play, pause }), [playing, disabled, play, pause]);\n React.useImperativeHandle(ref, () => context, [context]);\n return React.createElement(SlideshowContext.Provider, { value: context }, children);\n}\n\nconst PlayIcon = createIcon(\"Play\", React.createElement(\"path\", { d: \"M8 5v14l11-7z\" }));\nconst PauseIcon = createIcon(\"Pause\", React.createElement(\"path\", { d: \"M6 19h4V5H6v14zm8-14v14h4V5h-4z\" }));\nfunction SlideshowButton() {\n const { playing, disabled, play, pause } = useSlideshow();\n const { render } = useLightboxProps();\n const focusListeners = useLoseFocus(useController().focus, disabled);\n if (render.buttonSlideshow) {\n return React.createElement(React.Fragment, null, render.buttonSlideshow({ playing, disabled, play, pause }));\n }\n return (React.createElement(IconButton, { label: playing ? \"Pause\" : \"Play\", icon: playing ? PauseIcon : PlayIcon, renderIcon: playing ? render.iconSlideshowPause : render.iconSlideshowPlay, onClick: playing ? pause : play, disabled: disabled, ...focusListeners }));\n}\n\nfunction Slideshow({ augment, addModule }) {\n augment(({ slideshow, toolbar, ...restProps }) => ({\n toolbar: addToolbarButton(toolbar, PLUGIN_SLIDESHOW, React.createElement(SlideshowButton, null)),\n slideshow: resolveSlideshowProps(slideshow),\n ...restProps,\n }));\n addModule(createModule(PLUGIN_SLIDESHOW, SlideshowContextProvider));\n}\n\nexport { Slideshow as default };\n","import * as React from 'react';\nimport { useLightboxProps, composePrefix, createIcon, ImageSlide, isImageSlide, cssClass, makeComposePrefix, useDocumentContext, useEventCallback, clsx, cssVar, getSlideKey, useRTL, useEvents, useLightboxState, useSensors, useKeyboardNavigation, useAnimation, cleanup, calculatePreload, hasSlides, getSlide, makeUseContext, LightboxPropsProvider, createIconDisabled, IconButton, addToolbarButton, createModule } from '../../index.js';\nimport { PLUGIN_THUMBNAILS, ELEMENT_ICON, CLASS_FLEX_CENTER, ACTION_SWIPE, ACTION_NEXT, ACTION_PREV, PLUGIN_FULLSCREEN, MODULE_CONTROLLER } from '../../types.js';\n\nconst defaultThumbnailsProps = {\n ref: null,\n position: \"bottom\",\n width: 120,\n height: 80,\n border: 1,\n borderRadius: 4,\n padding: 4,\n gap: 16,\n imageFit: \"contain\",\n vignette: true,\n hidden: false,\n showToggle: false,\n};\nconst resolveThumbnailsProps = (thumbnails) => ({\n ...defaultThumbnailsProps,\n ...thumbnails,\n});\nfunction useThumbnailsProps() {\n const { thumbnails } = useLightboxProps();\n return resolveThumbnailsProps(thumbnails);\n}\n\nconst cssPrefix = (value) => composePrefix(PLUGIN_THUMBNAILS, value);\nconst cssThumbnailPrefix = (value) => cssPrefix(composePrefix(\"thumbnail\", value));\n\nconst VideoThumbnailIcon = createIcon(\"VideoThumbnail\", React.createElement(\"path\", { d: \"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\" }));\nconst UnknownThumbnailIcon = createIcon(\"UnknownThumbnail\", React.createElement(\"path\", { d: \"M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z\" }));\nfunction renderThumbnail({ slide, render, rect, imageFit }) {\n var _a;\n const customThumbnail = (_a = render.thumbnail) === null || _a === void 0 ? void 0 : _a.call(render, { slide, render, rect, imageFit });\n if (customThumbnail) {\n return customThumbnail;\n }\n const imageSlideProps = { render, rect, imageFit };\n if (slide.thumbnail) {\n return React.createElement(ImageSlide, { slide: { src: slide.thumbnail }, ...imageSlideProps });\n }\n if (isImageSlide(slide)) {\n return React.createElement(ImageSlide, { slide: slide, ...imageSlideProps });\n }\n const thumbnailIconClass = cssClass(cssThumbnailPrefix(ELEMENT_ICON));\n if (slide.type === \"video\") {\n return (React.createElement(React.Fragment, null,\n slide.poster && React.createElement(ImageSlide, { slide: { src: slide.poster }, ...imageSlideProps }),\n React.createElement(VideoThumbnailIcon, { className: thumbnailIconClass })));\n }\n return React.createElement(UnknownThumbnailIcon, { className: thumbnailIconClass });\n}\nconst activePrefix = makeComposePrefix(\"active\");\nconst fadeInPrefix = makeComposePrefix(\"fadein\");\nconst fadeOutPrefix = makeComposePrefix(\"fadeout\");\nconst placeholderPrefix = makeComposePrefix(\"placeholder\");\nconst DELAY = \"delay\";\nconst DURATION = \"duration\";\nfunction Thumbnail({ slide, onClick, active, fadeIn, fadeOut, placeholder, onLoseFocus }) {\n const ref = React.useRef(null);\n const { render, styles } = useLightboxProps();\n const { getOwnerDocument } = useDocumentContext();\n const { width, height, imageFit } = useThumbnailsProps();\n const rect = { width, height };\n const onLoseFocusCallback = useEventCallback(onLoseFocus);\n React.useEffect(() => {\n if (fadeOut && getOwnerDocument().activeElement === ref.current) {\n onLoseFocusCallback();\n }\n }, [fadeOut, onLoseFocusCallback, getOwnerDocument]);\n return (React.createElement(\"button\", { ref: ref, type: \"button\", className: clsx(cssClass(CLASS_FLEX_CENTER), cssClass(cssThumbnailPrefix()), active && cssClass(cssThumbnailPrefix(activePrefix())), fadeIn && cssClass(cssThumbnailPrefix(fadeInPrefix())), fadeOut && cssClass(cssThumbnailPrefix(fadeOutPrefix())), placeholder && cssClass(cssThumbnailPrefix(placeholderPrefix()))), style: {\n ...(fadeIn\n ? {\n [cssVar(cssThumbnailPrefix(fadeInPrefix(DURATION)))]: `${fadeIn.duration}ms`,\n [cssVar(cssThumbnailPrefix(fadeInPrefix(DELAY)))]: `${fadeIn.delay}ms`,\n }\n : null),\n ...(fadeOut\n ? {\n [cssVar(cssThumbnailPrefix(fadeOutPrefix(DURATION)))]: `${fadeOut.duration}ms`,\n [cssVar(cssThumbnailPrefix(fadeOutPrefix(DELAY)))]: `${fadeOut.delay}ms`,\n }\n : null),\n ...styles.thumbnail,\n }, onClick: onClick }, slide && renderThumbnail({ slide, render, rect, imageFit })));\n}\n\nfunction isHorizontal(position) {\n return [\"top\", \"bottom\"].includes(position);\n}\nfunction boxSize(thumbnails, dimension) {\n return dimension + 2 * (thumbnails.border + thumbnails.padding) + thumbnails.gap;\n}\nfunction getThumbnailKey(slide) {\n const { thumbnail, poster } = slide || { thumbnail: \"placeholder\" };\n return ((typeof thumbnail === \"string\" && thumbnail) ||\n (typeof poster === \"string\" && poster) ||\n (slide && getSlideKey(slide)) ||\n undefined);\n}\nfunction ThumbnailsTrack({ visible, containerRef }) {\n const track = React.useRef(null);\n const isRTL = useRTL();\n const { publish, subscribe } = useEvents();\n const { carousel, styles } = useLightboxProps();\n const { slides, globalIndex, animation } = useLightboxState();\n const { registerSensors, subscribeSensors } = useSensors();\n useKeyboardNavigation(subscribeSensors);\n const thumbnails = useThumbnailsProps();\n const { position, width, height, border, borderStyle, borderColor, borderRadius, padding, gap, vignette } = thumbnails;\n const animationDuration = (animation === null || animation === void 0 ? void 0 : animation.duration) || 0;\n const offset = (animationDuration > 0 && (animation === null || animation === void 0 ? void 0 : animation.increment)) || 0;\n const { prepareAnimation } = useAnimation(track, (snapshot) => ({\n keyframes: isHorizontal(position)\n ? [\n {\n transform: `translateX(${(isRTL ? -1 : 1) * boxSize(thumbnails, width) * offset + snapshot}px)`,\n },\n { transform: \"translateX(0)\" },\n ]\n : [\n {\n transform: `translateY(${boxSize(thumbnails, height) * offset + snapshot}px)`,\n },\n { transform: \"translateY(0)\" },\n ],\n duration: animationDuration,\n easing: animation === null || animation === void 0 ? void 0 : animation.easing,\n }));\n const handleControllerSwipe = useEventCallback(() => {\n let animationOffset = 0;\n if (containerRef.current && track.current) {\n const containerRect = containerRef.current.getBoundingClientRect();\n const trackRect = track.current.getBoundingClientRect();\n animationOffset = isHorizontal(position)\n ? trackRect.left - containerRect.left - (containerRect.width - trackRect.width) / 2\n : trackRect.top - containerRect.top - (containerRect.height - trackRect.height) / 2;\n }\n prepareAnimation(animationOffset);\n });\n React.useEffect(() => cleanup(subscribe(ACTION_SWIPE, handleControllerSwipe)), [subscribe, handleControllerSwipe]);\n const preload = calculatePreload(carousel, slides);\n const items = [];\n if (hasSlides(slides)) {\n for (let index = globalIndex - preload - Math.abs(offset); index <= globalIndex + preload + Math.abs(offset); index += 1) {\n const placeholder = (carousel.finite && (index < 0 || index > slides.length - 1)) ||\n (offset < 0 && index < globalIndex - preload) ||\n (offset > 0 && index > globalIndex + preload);\n const slide = !placeholder ? getSlide(slides, index) : null;\n const key = [`${index}`, getThumbnailKey(slide)].filter(Boolean).join(\"|\");\n items.push({ key, index, slide });\n }\n }\n const handleClick = (slideIndex) => () => {\n if (slideIndex > globalIndex) {\n publish(ACTION_NEXT, { count: slideIndex - globalIndex });\n }\n else if (slideIndex < globalIndex) {\n publish(ACTION_PREV, { count: globalIndex - slideIndex });\n }\n };\n return (React.createElement(\"div\", { className: clsx(cssClass(cssPrefix(\"container\")), cssClass(CLASS_FLEX_CENTER)), style: {\n ...(!visible ? { display: \"none\" } : null),\n ...(width !== defaultThumbnailsProps.width ? { [cssVar(cssThumbnailPrefix(\"width\"))]: `${width}px` } : null),\n ...(height !== defaultThumbnailsProps.height\n ? { [cssVar(cssThumbnailPrefix(\"height\"))]: `${height}px` }\n : null),\n ...(border !== defaultThumbnailsProps.border\n ? { [cssVar(cssThumbnailPrefix(\"border\"))]: `${border}px` }\n : null),\n ...(borderStyle ? { [cssVar(cssThumbnailPrefix(\"border_style\"))]: borderStyle } : null),\n ...(borderColor ? { [cssVar(cssThumbnailPrefix(\"border_color\"))]: borderColor } : null),\n ...(borderRadius !== defaultThumbnailsProps.borderRadius\n ? { [cssVar(cssThumbnailPrefix(\"border_radius\"))]: `${borderRadius}px` }\n : null),\n ...(padding !== defaultThumbnailsProps.padding\n ? { [cssVar(cssThumbnailPrefix(\"padding\"))]: `${padding}px` }\n : null),\n ...(gap !== defaultThumbnailsProps.gap ? { [cssVar(cssThumbnailPrefix(\"gap\"))]: `${gap}px` } : null),\n ...styles.thumbnailsContainer,\n } },\n React.createElement(\"nav\", { ref: track, style: styles.thumbnailsTrack, className: clsx(cssClass(cssPrefix(\"track\")), cssClass(CLASS_FLEX_CENTER)), tabIndex: -1, ...registerSensors }, items.map(({ key, index, slide }) => {\n const fadeAnimationDuration = animationDuration / Math.abs(offset || 1);\n const fadeIn = (offset > 0 && index > globalIndex + preload - offset && index <= globalIndex + preload) ||\n (offset < 0 && index < globalIndex - preload - offset && index >= globalIndex - preload)\n ? {\n duration: fadeAnimationDuration,\n delay: ((offset > 0 ? index - (globalIndex + preload - offset) : globalIndex - preload - offset - index) -\n 1) *\n fadeAnimationDuration,\n }\n : undefined;\n const fadeOut = (offset > 0 && index < globalIndex - preload) || (offset < 0 && index > globalIndex + preload)\n ? {\n duration: fadeAnimationDuration,\n delay: (offset > 0\n ? offset - (globalIndex - preload - index)\n : -offset - (index - (globalIndex + preload))) * fadeAnimationDuration,\n }\n : undefined;\n return (React.createElement(Thumbnail, { key: key, slide: slide, active: index === globalIndex, fadeIn: fadeIn, fadeOut: fadeOut, placeholder: !slide, onClick: handleClick(index), onLoseFocus: () => { var _a; return (_a = track.current) === null || _a === void 0 ? void 0 : _a.focus(); } }));\n })),\n vignette && React.createElement(\"div\", { className: cssClass(cssPrefix(\"vignette\")) })));\n}\n\nconst ThumbnailsContext = React.createContext(null);\nconst useThumbnails = makeUseContext(\"useThumbnails\", \"ThumbnailsContext\", ThumbnailsContext);\nfunction ThumbnailsContextProvider({ children, ...props }) {\n const { ref, position, hidden } = resolveThumbnailsProps(props.thumbnails);\n const [visible, setVisible] = React.useState(!hidden);\n const containerRef = React.useRef(null);\n const context = React.useMemo(() => ({\n visible,\n show: () => setVisible(true),\n hide: () => setVisible(false),\n }), [visible]);\n React.useImperativeHandle(ref, () => context, [context]);\n return (React.createElement(LightboxPropsProvider, { ...props },\n React.createElement(ThumbnailsContext.Provider, { value: context },\n React.createElement(\"div\", { ref: containerRef, className: clsx(cssClass(cssPrefix()), cssClass(cssPrefix(`${position}`))) },\n [\"start\", \"top\"].includes(position) && React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible }),\n React.createElement(\"div\", { className: cssClass(cssPrefix(\"wrapper\")) }, children),\n [\"end\", \"bottom\"].includes(position) && React.createElement(ThumbnailsTrack, { containerRef: containerRef, visible: visible })))));\n}\n\nconst thumbnailsIcon = () => (React.createElement(React.Fragment, null,\n React.createElement(\"path\", { strokeWidth: 2, stroke: \"currentColor\", strokeLinejoin: \"round\", fill: \"none\", d: \"M3 5l18 0l0 14l-18 0l0-14z\" }),\n React.createElement(\"path\", { d: \"M5 14h4v3h-4zM10 14h4v3h-4zM15 14h4v3h-4z\" })));\nconst ThumbnailsVisible = createIcon(\"ThumbnailsVisible\", thumbnailsIcon());\nconst ThumbnailsHidden = createIconDisabled(\"ThumbnailsHidden\", thumbnailsIcon());\nfunction ThumbnailsButton() {\n const { visible, show, hide } = useThumbnails();\n const { render } = useLightboxProps();\n if (render.buttonThumbnails) {\n return React.createElement(React.Fragment, null, render.buttonThumbnails({ visible, show, hide }));\n }\n return (React.createElement(IconButton, { label: visible ? \"Hide thumbnails\" : \"Show thumbnails\", icon: visible ? ThumbnailsVisible : ThumbnailsHidden, renderIcon: visible ? render.iconThumbnailsVisible : render.iconThumbnailsHidden, onClick: visible ? hide : show }));\n}\n\nfunction Thumbnails({ augment, contains, append, addParent }) {\n augment(({ thumbnails: thumbnailsProps, toolbar, ...restProps }) => {\n const thumbnails = resolveThumbnailsProps(thumbnailsProps);\n return {\n toolbar: addToolbarButton(toolbar, PLUGIN_THUMBNAILS, thumbnails.showToggle ? React.createElement(ThumbnailsButton, null) : null),\n thumbnails,\n ...restProps,\n };\n });\n const module = createModule(PLUGIN_THUMBNAILS, ThumbnailsContextProvider);\n if (contains(PLUGIN_FULLSCREEN)) {\n append(PLUGIN_FULLSCREEN, module);\n }\n else {\n addParent(MODULE_CONTROLLER, module);\n }\n}\n\nexport { Thumbnails as default };\n","import * as React from 'react';\nimport { useLightboxProps, useMotionPreference, useEventCallback, useLayoutEffect, useLightboxState, isImageSlide, isImageFitCover, round, useDocumentContext, useController, usePointerEvents, cleanup, makeUseContext, createIcon, IconButton, devicePixelRatio, ImageSlide, clsx, cssClass, addToolbarButton, createModule } from '../../index.js';\nimport { EVENT_ON_KEY_DOWN, EVENT_ON_WHEEL, UNKNOWN_ACTION_TYPE, CLASS_FULLSIZE, CLASS_FLEX_CENTER, CLASS_SLIDE_WRAPPER, CLASS_SLIDE_WRAPPER_INTERACTIVE, PLUGIN_ZOOM } from '../../types.js';\n\nconst defaultZoomProps = {\n maxZoomPixelRatio: 1,\n zoomInMultiplier: 2,\n doubleTapDelay: 300,\n doubleClickDelay: 500,\n doubleClickMaxStops: 2,\n keyboardMoveDistance: 50,\n wheelZoomDistanceFactor: 100,\n pinchZoomDistanceFactor: 100,\n scrollToZoom: false,\n};\nconst resolveZoomProps = (zoom) => ({\n ...defaultZoomProps,\n ...zoom,\n});\n\nfunction useZoomAnimation(zoom, offsetX, offsetY, zoomWrapperRef) {\n const zoomAnimation = React.useRef();\n const zoomAnimationStart = React.useRef();\n const { zoom: zoomAnimationDuration } = useLightboxProps().animation;\n const reduceMotion = useMotionPreference();\n const playZoomAnimation = useEventCallback(() => {\n var _a, _b, _c;\n (_a = zoomAnimation.current) === null || _a === void 0 ? void 0 : _a.cancel();\n zoomAnimation.current = undefined;\n if (zoomAnimationStart.current && (zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current)) {\n try {\n zoomAnimation.current = (_c = (_b = zoomWrapperRef.current).animate) === null || _c === void 0 ? void 0 : _c.call(_b, [\n { transform: zoomAnimationStart.current },\n { transform: `scale(${zoom}) translateX(${offsetX}px) translateY(${offsetY}px)` },\n ], {\n duration: !reduceMotion ? (zoomAnimationDuration !== null && zoomAnimationDuration !== void 0 ? zoomAnimationDuration : 500) : 0,\n easing: zoomAnimation.current ? \"ease-out\" : \"ease-in-out\",\n });\n }\n catch (err) {\n console.error(err);\n }\n zoomAnimationStart.current = undefined;\n if (zoomAnimation.current) {\n zoomAnimation.current.onfinish = () => {\n zoomAnimation.current = undefined;\n };\n }\n }\n });\n useLayoutEffect(playZoomAnimation, [zoom, offsetX, offsetY, playZoomAnimation]);\n return React.useCallback(() => {\n zoomAnimationStart.current = (zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current)\n ? window.getComputedStyle(zoomWrapperRef.current).transform\n : undefined;\n }, [zoomWrapperRef]);\n}\n\nfunction useZoomCallback(zoom, disabled) {\n const { on } = useLightboxProps();\n const onZoomCallback = useEventCallback(() => {\n var _a;\n if (!disabled) {\n (_a = on.zoom) === null || _a === void 0 ? void 0 : _a.call(on, { zoom });\n }\n });\n React.useEffect(onZoomCallback, [zoom, onZoomCallback]);\n}\n\nfunction useZoomProps() {\n const { zoom } = useLightboxProps();\n return resolveZoomProps(zoom);\n}\n\nfunction useZoomImageRect(slideRect, imageDimensions) {\n var _a, _b;\n let imageRect = { width: 0, height: 0 };\n let maxImageRect = { width: 0, height: 0 };\n const { currentSlide } = useLightboxState();\n const { imageFit } = useLightboxProps().carousel;\n const { maxZoomPixelRatio } = useZoomProps();\n if (slideRect && currentSlide) {\n const slide = { ...currentSlide, ...imageDimensions };\n if (isImageSlide(slide)) {\n const cover = isImageFitCover(slide, imageFit);\n const width = Math.max(...(((_a = slide.srcSet) === null || _a === void 0 ? void 0 : _a.map((x) => x.width)) || []).concat(slide.width ? [slide.width] : []));\n const height = Math.max(...(((_b = slide.srcSet) === null || _b === void 0 ? void 0 : _b.map((x) => x.height)) || []).concat(slide.height ? [slide.height] : []));\n if (width > 0 && height > 0 && slideRect.width > 0 && slideRect.height > 0) {\n maxImageRect = cover\n ? {\n width: Math.round(Math.min(width, (slideRect.width / slideRect.height) * height)),\n height: Math.round(Math.min(height, (slideRect.height / slideRect.width) * width)),\n }\n : { width, height };\n maxImageRect = {\n width: maxImageRect.width * maxZoomPixelRatio,\n height: maxImageRect.height * maxZoomPixelRatio,\n };\n imageRect = cover\n ? {\n width: Math.min(slideRect.width, maxImageRect.width, width),\n height: Math.min(slideRect.height, maxImageRect.height, height),\n }\n : {\n width: Math.round(Math.min(slideRect.width, (slideRect.height / height) * width, width)),\n height: Math.round(Math.min(slideRect.height, (slideRect.width / width) * height, height)),\n };\n }\n }\n }\n const maxZoom = imageRect.width ? Math.max(round(maxImageRect.width / imageRect.width, 5), 1) : 1;\n return { imageRect, maxZoom };\n}\n\nfunction distance(pointerA, pointerB) {\n return ((pointerA.clientX - pointerB.clientX) ** 2 + (pointerA.clientY - pointerB.clientY) ** 2) ** 0.5;\n}\nfunction scaleZoom(value, delta, factor = 100, clamp = 2) {\n return value * Math.min(1 + Math.abs(delta / factor), clamp) ** Math.sign(delta);\n}\nfunction useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoomWrapperRef) {\n const activePointers = React.useRef([]);\n const lastPointerDown = React.useRef(0);\n const pinchZoomDistance = React.useRef();\n const { globalIndex } = useLightboxState();\n const { getOwnerWindow } = useDocumentContext();\n const { containerRef, subscribeSensors } = useController();\n const { keyboardMoveDistance, zoomInMultiplier, wheelZoomDistanceFactor, scrollToZoom, doubleTapDelay, doubleClickDelay, doubleClickMaxStops, pinchZoomDistanceFactor, } = useZoomProps();\n const translateCoordinates = React.useCallback((event) => {\n if (containerRef.current) {\n const { pageX, pageY } = event;\n const { scrollX, scrollY } = getOwnerWindow();\n const { left, top, width, height } = containerRef.current.getBoundingClientRect();\n return [pageX - left - scrollX - width / 2, pageY - top - scrollY - height / 2];\n }\n return [];\n }, [containerRef, getOwnerWindow]);\n const onKeyDown = useEventCallback((event) => {\n const preventDefault = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n if (zoom > 1) {\n const move = (deltaX, deltaY) => {\n preventDefault();\n changeOffsets(deltaX, deltaY);\n };\n if (event.key === \"ArrowDown\") {\n move(0, keyboardMoveDistance);\n }\n else if (event.key === \"ArrowUp\") {\n move(0, -keyboardMoveDistance);\n }\n else if (event.key === \"ArrowLeft\") {\n move(-keyboardMoveDistance, 0);\n }\n else if (event.key === \"ArrowRight\") {\n move(keyboardMoveDistance, 0);\n }\n }\n const handleChangeZoom = (zoomValue) => {\n preventDefault();\n changeZoom(zoomValue);\n };\n const hasMeta = () => event.getModifierState(\"Meta\");\n if (event.key === \"+\" || (event.key === \"=\" && hasMeta())) {\n handleChangeZoom(zoom * zoomInMultiplier);\n }\n else if (event.key === \"-\" || (event.key === \"_\" && hasMeta())) {\n handleChangeZoom(zoom / zoomInMultiplier);\n }\n else if (event.key === \"0\" && hasMeta()) {\n handleChangeZoom(1);\n }\n });\n const onWheel = useEventCallback((event) => {\n if (event.ctrlKey || scrollToZoom) {\n if (Math.abs(event.deltaY) > Math.abs(event.deltaX)) {\n event.stopPropagation();\n changeZoom(scaleZoom(zoom, -event.deltaY, wheelZoomDistanceFactor), true, ...translateCoordinates(event));\n return;\n }\n }\n if (zoom > 1) {\n event.stopPropagation();\n if (!scrollToZoom) {\n changeOffsets(event.deltaX, event.deltaY);\n }\n }\n });\n const clearPointer = React.useCallback((event) => {\n const pointers = activePointers.current;\n pointers.splice(0, pointers.length, ...pointers.filter((p) => p.pointerId !== event.pointerId));\n }, []);\n const replacePointer = React.useCallback((event) => {\n clearPointer(event);\n event.persist();\n activePointers.current.push(event);\n }, [clearPointer]);\n const onPointerDown = useEventCallback((event) => {\n var _a;\n const pointers = activePointers.current;\n if ((event.pointerType === \"mouse\" && event.buttons > 1) ||\n !((_a = zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target))) {\n return;\n }\n if (zoom > 1) {\n event.stopPropagation();\n }\n const { timeStamp } = event;\n if (pointers.length === 0 &&\n timeStamp - lastPointerDown.current < (event.pointerType === \"touch\" ? doubleTapDelay : doubleClickDelay)) {\n lastPointerDown.current = 0;\n changeZoom(zoom !== maxZoom ? zoom * Math.max(maxZoom ** (1 / doubleClickMaxStops), zoomInMultiplier) : 1, false, ...translateCoordinates(event));\n }\n else {\n lastPointerDown.current = timeStamp;\n }\n replacePointer(event);\n if (pointers.length === 2) {\n pinchZoomDistance.current = distance(pointers[0], pointers[1]);\n }\n });\n const onPointerMove = useEventCallback((event) => {\n const pointers = activePointers.current;\n const activePointer = pointers.find((p) => p.pointerId === event.pointerId);\n if (pointers.length === 2 && pinchZoomDistance.current) {\n event.stopPropagation();\n replacePointer(event);\n const currentDistance = distance(pointers[0], pointers[1]);\n const delta = currentDistance - pinchZoomDistance.current;\n if (Math.abs(delta) > 0) {\n changeZoom(scaleZoom(zoom, delta, pinchZoomDistanceFactor), true, ...pointers\n .map((x) => translateCoordinates(x))\n .reduce((acc, coordinate) => coordinate.map((x, i) => acc[i] + x / 2)));\n pinchZoomDistance.current = currentDistance;\n }\n return;\n }\n if (zoom > 1) {\n event.stopPropagation();\n if (activePointer) {\n if (pointers.length === 1) {\n changeOffsets((activePointer.clientX - event.clientX) / zoom, (activePointer.clientY - event.clientY) / zoom);\n }\n replacePointer(event);\n }\n }\n });\n const onPointerUp = React.useCallback((event) => {\n const pointers = activePointers.current;\n if (pointers.length === 2 && pointers.find((p) => p.pointerId === event.pointerId)) {\n pinchZoomDistance.current = undefined;\n }\n clearPointer(event);\n }, [clearPointer]);\n const cleanupSensors = React.useCallback(() => {\n const pointers = activePointers.current;\n pointers.splice(0, pointers.length);\n lastPointerDown.current = 0;\n pinchZoomDistance.current = undefined;\n }, []);\n usePointerEvents(subscribeSensors, onPointerDown, onPointerMove, onPointerUp, disabled);\n React.useEffect(cleanupSensors, [globalIndex, cleanupSensors]);\n React.useEffect(() => {\n if (!disabled) {\n return cleanup(cleanupSensors, subscribeSensors(EVENT_ON_KEY_DOWN, onKeyDown), subscribeSensors(EVENT_ON_WHEEL, onWheel));\n }\n return () => { };\n }, [disabled, subscribeSensors, cleanupSensors, onKeyDown, onWheel]);\n}\n\nfunction useZoomState(imageRect, maxZoom, zoomWrapperRef) {\n const [zoom, setZoom] = React.useState(1);\n const [offsetX, setOffsetX] = React.useState(0);\n const [offsetY, setOffsetY] = React.useState(0);\n const animate = useZoomAnimation(zoom, offsetX, offsetY, zoomWrapperRef);\n const { currentSlide, globalIndex } = useLightboxState();\n const { containerRect, slideRect } = useController();\n const { zoomInMultiplier } = useZoomProps();\n const currentSource = currentSlide && isImageSlide(currentSlide) ? currentSlide.src : undefined;\n const disabled = !currentSource || !(zoomWrapperRef === null || zoomWrapperRef === void 0 ? void 0 : zoomWrapperRef.current);\n useLayoutEffect(() => {\n setZoom(1);\n setOffsetX(0);\n setOffsetY(0);\n }, [globalIndex, currentSource]);\n const changeOffsets = React.useCallback((dx, dy, targetZoom) => {\n const newZoom = targetZoom || zoom;\n const newOffsetX = offsetX - (dx || 0);\n const newOffsetY = offsetY - (dy || 0);\n const maxOffsetX = (imageRect.width * newZoom - slideRect.width) / 2 / newZoom;\n const maxOffsetY = (imageRect.height * newZoom - slideRect.height) / 2 / newZoom;\n setOffsetX(Math.min(Math.abs(newOffsetX), Math.max(maxOffsetX, 0)) * Math.sign(newOffsetX));\n setOffsetY(Math.min(Math.abs(newOffsetY), Math.max(maxOffsetY, 0)) * Math.sign(newOffsetY));\n }, [zoom, offsetX, offsetY, slideRect, imageRect.width, imageRect.height]);\n const changeZoom = React.useCallback((targetZoom, rapid, dx, dy) => {\n const newZoom = round(Math.min(Math.max(targetZoom + 0.001 < maxZoom ? targetZoom : maxZoom, 1), maxZoom), 5);\n if (newZoom === zoom)\n return;\n if (!rapid) {\n animate();\n }\n changeOffsets(dx ? dx * (1 / zoom - 1 / newZoom) : 0, dy ? dy * (1 / zoom - 1 / newZoom) : 0, newZoom);\n setZoom(newZoom);\n }, [zoom, maxZoom, changeOffsets, animate]);\n const handleControllerRectChange = useEventCallback(() => {\n if (zoom > 1) {\n if (zoom > maxZoom) {\n changeZoom(maxZoom, true);\n }\n changeOffsets();\n }\n });\n useLayoutEffect(handleControllerRectChange, [containerRect.width, containerRect.height, handleControllerRectChange]);\n const zoomIn = React.useCallback(() => changeZoom(zoom * zoomInMultiplier), [zoom, zoomInMultiplier, changeZoom]);\n const zoomOut = React.useCallback(() => changeZoom(zoom / zoomInMultiplier), [zoom, zoomInMultiplier, changeZoom]);\n return { zoom, offsetX, offsetY, disabled, changeOffsets, changeZoom, zoomIn, zoomOut };\n}\n\nconst ZoomControllerContext = React.createContext(null);\nconst useZoom = makeUseContext(\"useZoom\", \"ZoomControllerContext\", ZoomControllerContext);\nfunction ZoomContextProvider({ children }) {\n const [zoomWrapper, setZoomWrapper] = React.useState();\n const { slideRect } = useController();\n const { imageRect, maxZoom } = useZoomImageRect(slideRect, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.imageDimensions);\n const { zoom, offsetX, offsetY, disabled, changeZoom, changeOffsets, zoomIn, zoomOut } = useZoomState(imageRect, maxZoom, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.zoomWrapperRef);\n useZoomCallback(zoom, disabled);\n useZoomSensors(zoom, maxZoom, disabled, changeZoom, changeOffsets, zoomWrapper === null || zoomWrapper === void 0 ? void 0 : zoomWrapper.zoomWrapperRef);\n const zoomRef = React.useMemo(() => ({ zoom, maxZoom, offsetX, offsetY, disabled, zoomIn, zoomOut, changeZoom }), [zoom, maxZoom, offsetX, offsetY, disabled, zoomIn, zoomOut, changeZoom]);\n React.useImperativeHandle(useZoomProps().ref, () => zoomRef, [zoomRef]);\n const context = React.useMemo(() => ({ ...zoomRef, setZoomWrapper }), [zoomRef, setZoomWrapper]);\n return React.createElement(ZoomControllerContext.Provider, { value: context }, children);\n}\n\nconst ZoomInIcon = createIcon(\"ZoomIn\", React.createElement(React.Fragment, null,\n React.createElement(\"path\", { d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\" }),\n React.createElement(\"path\", { d: \"M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z\" })));\nconst ZoomOutIcon = createIcon(\"ZoomOut\", React.createElement(\"path\", { d: \"M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\" }));\nconst ZoomButton = React.forwardRef(function ZoomButton({ zoomIn, onLoseFocus }, ref) {\n const wasEnabled = React.useRef(false);\n const wasFocused = React.useRef(false);\n const { zoom, maxZoom, zoomIn: zoomInCallback, zoomOut: zoomOutCallback, disabled: zoomDisabled } = useZoom();\n const { render } = useLightboxProps();\n const disabled = zoomDisabled || (zoomIn ? zoom >= maxZoom : zoom <= 1);\n React.useEffect(() => {\n if (disabled && wasEnabled.current && wasFocused.current) {\n onLoseFocus();\n }\n if (!disabled) {\n wasEnabled.current = true;\n }\n }, [disabled, onLoseFocus]);\n return (React.createElement(IconButton, { ref: ref, disabled: disabled, label: zoomIn ? \"Zoom in\" : \"Zoom out\", icon: zoomIn ? ZoomInIcon : ZoomOutIcon, renderIcon: zoomIn ? render.iconZoomIn : render.iconZoomOut, onClick: zoomIn ? zoomInCallback : zoomOutCallback, onFocus: () => {\n wasFocused.current = true;\n }, onBlur: () => {\n wasFocused.current = false;\n } }));\n});\n\nfunction ZoomButtonsGroup() {\n const zoomInRef = React.useRef(null);\n const zoomOutRef = React.useRef(null);\n const { focus } = useController();\n const focusSibling = React.useCallback((sibling) => {\n var _a, _b;\n if (!((_a = sibling.current) === null || _a === void 0 ? void 0 : _a.disabled)) {\n (_b = sibling.current) === null || _b === void 0 ? void 0 : _b.focus();\n }\n else {\n focus();\n }\n }, [focus]);\n const focusZoomIn = React.useCallback(() => focusSibling(zoomInRef), [focusSibling]);\n const focusZoomOut = React.useCallback(() => focusSibling(zoomOutRef), [focusSibling]);\n return (React.createElement(React.Fragment, null,\n React.createElement(ZoomButton, { zoomIn: true, ref: zoomInRef, onLoseFocus: focusZoomOut }),\n React.createElement(ZoomButton, { ref: zoomOutRef, onLoseFocus: focusZoomIn })));\n}\n\nfunction ZoomToolbarControl() {\n const { render } = useLightboxProps();\n const zoomRef = useZoom();\n if (render.buttonZoom) {\n return React.createElement(React.Fragment, null, render.buttonZoom(zoomRef));\n }\n return React.createElement(ZoomButtonsGroup, null);\n}\n\nfunction isResponsiveImageSlide(slide) {\n var _a;\n return (((_a = slide.srcSet) === null || _a === void 0 ? void 0 : _a.length) || 0) > 0;\n}\nfunction reducer({ current, preload }, { type, source }) {\n switch (type) {\n case \"fetch\":\n if (!current) {\n return { current: source };\n }\n return { current, preload: source };\n case \"done\":\n if (source === preload) {\n return { current: source };\n }\n return { current, preload };\n default:\n throw new Error(UNKNOWN_ACTION_TYPE);\n }\n}\nfunction ResponsiveImage(props) {\n var _a, _b;\n const [{ current, preload }, dispatch] = React.useReducer(reducer, {});\n const { slide: image, rect, imageFit, render, interactive } = props;\n const srcSet = image.srcSet.sort((a, b) => a.width - b.width);\n const width = (_a = image.width) !== null && _a !== void 0 ? _a : srcSet[srcSet.length - 1].width;\n const height = (_b = image.height) !== null && _b !== void 0 ? _b : srcSet[srcSet.length - 1].height;\n const cover = isImageFitCover(image, imageFit);\n const maxWidth = Math.max(...srcSet.map((x) => x.width));\n const targetWidth = Math.min((cover ? Math.max : Math.min)(rect.width, width * (rect.height / height)), maxWidth);\n const pixelDensity = devicePixelRatio();\n const handleResize = useEventCallback(() => {\n var _a;\n const targetSource = (_a = srcSet.find((x) => x.width >= targetWidth * pixelDensity)) !== null && _a !== void 0 ? _a : srcSet[srcSet.length - 1];\n if (!current || srcSet.findIndex((x) => x.src === current) < srcSet.findIndex((x) => x === targetSource)) {\n dispatch({ type: \"fetch\", source: targetSource.src });\n }\n });\n useLayoutEffect(handleResize, [rect.width, rect.height, pixelDensity, handleResize]);\n const handlePreload = useEventCallback((currentPreload) => dispatch({ type: \"done\", source: currentPreload }));\n const style = {\n WebkitTransform: !interactive ? \"translateZ(0)\" : \"initial\",\n };\n if (!cover) {\n Object.assign(style, rect.width / rect.height < width / height ? { width: \"100%\", height: \"auto\" } : { width: \"auto\", height: \"100%\" });\n }\n return (React.createElement(React.Fragment, null,\n preload && preload !== current && (React.createElement(ImageSlide, { key: \"preload\", ...props, slide: { ...image, src: preload, srcSet: undefined }, style: { position: \"absolute\", visibility: \"hidden\", ...style }, onLoad: () => handlePreload(preload), render: {\n ...render,\n iconLoading: () => null,\n iconError: () => null,\n } })),\n current && (React.createElement(ImageSlide, { key: \"current\", ...props, slide: { ...image, src: current, srcSet: undefined }, style: style }))));\n}\n\nfunction ZoomWrapper({ render, slide, offset, rect }) {\n var _a;\n const [imageDimensions, setImageDimensions] = React.useState();\n const zoomWrapperRef = React.useRef(null);\n const { zoom, maxZoom, offsetX, offsetY, setZoomWrapper } = useZoom();\n const interactive = zoom > 1;\n const { carousel, on } = useLightboxProps();\n const { currentIndex } = useLightboxState();\n useLayoutEffect(() => {\n if (offset === 0) {\n setZoomWrapper({ zoomWrapperRef, imageDimensions });\n return () => setZoomWrapper(undefined);\n }\n return () => { };\n }, [offset, imageDimensions, setZoomWrapper]);\n let rendered = (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, { slide, offset, rect, zoom, maxZoom });\n if (!rendered && isImageSlide(slide)) {\n const slideProps = {\n slide,\n offset,\n rect,\n render,\n imageFit: carousel.imageFit,\n imageProps: carousel.imageProps,\n onClick: offset === 0 ? () => { var _a; return (_a = on.click) === null || _a === void 0 ? void 0 : _a.call(on, { index: currentIndex }); } : undefined,\n };\n rendered = isResponsiveImageSlide(slide) ? (React.createElement(ResponsiveImage, { ...slideProps, slide: slide, interactive: interactive, rect: offset === 0 ? { width: rect.width * zoom, height: rect.height * zoom } : rect })) : (React.createElement(ImageSlide, { onLoad: (img) => setImageDimensions({ width: img.naturalWidth, height: img.naturalHeight }), ...slideProps }));\n }\n if (!rendered)\n return null;\n return (React.createElement(\"div\", { ref: zoomWrapperRef, className: clsx(cssClass(CLASS_FULLSIZE), cssClass(CLASS_FLEX_CENTER), cssClass(CLASS_SLIDE_WRAPPER), interactive && cssClass(CLASS_SLIDE_WRAPPER_INTERACTIVE)), style: offset === 0 ? { transform: `scale(${zoom}) translateX(${offsetX}px) translateY(${offsetY}px)` } : undefined }, rendered));\n}\n\nconst Zoom = ({ augment, addModule }) => {\n augment(({ zoom: zoomProps, toolbar, render, controller, ...restProps }) => {\n const zoom = resolveZoomProps(zoomProps);\n return {\n zoom,\n toolbar: addToolbarButton(toolbar, PLUGIN_ZOOM, React.createElement(ZoomToolbarControl, null)),\n render: {\n ...render,\n slide: (props) => { var _a; return isImageSlide(props.slide) ? React.createElement(ZoomWrapper, { render: render, ...props }) : (_a = render.slide) === null || _a === void 0 ? void 0 : _a.call(render, props); },\n },\n controller: { ...controller, preventDefaultWheelY: zoom.scrollToZoom },\n ...restProps,\n };\n });\n addModule(createModule(PLUGIN_ZOOM, ZoomContextProvider));\n};\n\nexport { Zoom as default };\n","const MODULE_CAROUSEL = \"carousel\";\nconst MODULE_CONTROLLER = \"controller\";\nconst MODULE_NAVIGATION = \"navigation\";\nconst MODULE_NO_SCROLL = \"no-scroll\";\nconst MODULE_PORTAL = \"portal\";\nconst MODULE_ROOT = \"root\";\nconst MODULE_TOOLBAR = \"toolbar\";\nconst PLUGIN_CAPTIONS = \"captions\";\nconst PLUGIN_COUNTER = \"counter\";\nconst PLUGIN_DOWNLOAD = \"download\";\nconst PLUGIN_FULLSCREEN = \"fullscreen\";\nconst PLUGIN_INLINE = \"inline\";\nconst PLUGIN_SHARE = \"share\";\nconst PLUGIN_SLIDESHOW = \"slideshow\";\nconst PLUGIN_THUMBNAILS = \"thumbnails\";\nconst PLUGIN_ZOOM = \"zoom\";\nconst SLIDE_STATUS_LOADING = \"loading\";\nconst SLIDE_STATUS_PLAYING = \"playing\";\nconst SLIDE_STATUS_ERROR = \"error\";\nconst SLIDE_STATUS_COMPLETE = \"complete\";\nconst SLIDE_STATUS_PLACEHOLDER = \"placeholder\";\nconst activeSlideStatus = (status) => `active-slide-${status}`;\nconst ACTIVE_SLIDE_LOADING = activeSlideStatus(SLIDE_STATUS_LOADING);\nconst ACTIVE_SLIDE_PLAYING = activeSlideStatus(SLIDE_STATUS_PLAYING);\nconst ACTIVE_SLIDE_ERROR = activeSlideStatus(SLIDE_STATUS_ERROR);\nconst ACTIVE_SLIDE_COMPLETE = activeSlideStatus(SLIDE_STATUS_COMPLETE);\nconst CLASS_FULLSIZE = \"fullsize\";\nconst CLASS_FLEX_CENTER = \"flex_center\";\nconst CLASS_NO_SCROLL = \"no_scroll\";\nconst CLASS_NO_SCROLL_PADDING = \"no_scroll_padding\";\nconst CLASS_SLIDE_WRAPPER = \"slide_wrapper\";\nconst CLASS_SLIDE_WRAPPER_INTERACTIVE = \"slide_wrapper_interactive\";\nconst ACTION_PREV = \"prev\";\nconst ACTION_NEXT = \"next\";\nconst ACTION_SWIPE = \"swipe\";\nconst ACTION_CLOSE = \"close\";\nconst EVENT_ON_POINTER_DOWN = \"onPointerDown\";\nconst EVENT_ON_POINTER_MOVE = \"onPointerMove\";\nconst EVENT_ON_POINTER_UP = \"onPointerUp\";\nconst EVENT_ON_POINTER_LEAVE = \"onPointerLeave\";\nconst EVENT_ON_POINTER_CANCEL = \"onPointerCancel\";\nconst EVENT_ON_KEY_DOWN = \"onKeyDown\";\nconst EVENT_ON_KEY_UP = \"onKeyUp\";\nconst EVENT_ON_WHEEL = \"onWheel\";\nconst VK_ESCAPE = \"Escape\";\nconst VK_ARROW_LEFT = \"ArrowLeft\";\nconst VK_ARROW_RIGHT = \"ArrowRight\";\nconst ELEMENT_BUTTON = \"button\";\nconst ELEMENT_ICON = \"icon\";\nconst IMAGE_FIT_CONTAIN = \"contain\";\nconst IMAGE_FIT_COVER = \"cover\";\nconst UNKNOWN_ACTION_TYPE = \"Unknown action type\";\n\nexport { ACTION_CLOSE, ACTION_NEXT, ACTION_PREV, ACTION_SWIPE, ACTIVE_SLIDE_COMPLETE, ACTIVE_SLIDE_ERROR, ACTIVE_SLIDE_LOADING, ACTIVE_SLIDE_PLAYING, CLASS_FLEX_CENTER, CLASS_FULLSIZE, CLASS_NO_SCROLL, CLASS_NO_SCROLL_PADDING, CLASS_SLIDE_WRAPPER, CLASS_SLIDE_WRAPPER_INTERACTIVE, ELEMENT_BUTTON, ELEMENT_ICON, EVENT_ON_KEY_DOWN, EVENT_ON_KEY_UP, EVENT_ON_POINTER_CANCEL, EVENT_ON_POINTER_DOWN, EVENT_ON_POINTER_LEAVE, EVENT_ON_POINTER_MOVE, EVENT_ON_POINTER_UP, EVENT_ON_WHEEL, IMAGE_FIT_CONTAIN, IMAGE_FIT_COVER, MODULE_CAROUSEL, MODULE_CONTROLLER, MODULE_NAVIGATION, MODULE_NO_SCROLL, MODULE_PORTAL, MODULE_ROOT, MODULE_TOOLBAR, PLUGIN_CAPTIONS, PLUGIN_COUNTER, PLUGIN_DOWNLOAD, PLUGIN_FULLSCREEN, PLUGIN_INLINE, PLUGIN_SHARE, PLUGIN_SLIDESHOW, PLUGIN_THUMBNAILS, PLUGIN_ZOOM, SLIDE_STATUS_COMPLETE, SLIDE_STATUS_ERROR, SLIDE_STATUS_LOADING, SLIDE_STATUS_PLACEHOLDER, SLIDE_STATUS_PLAYING, UNKNOWN_ACTION_TYPE, VK_ARROW_LEFT, VK_ARROW_RIGHT, VK_ESCAPE, activeSlideStatus };\n"],"names":["module","exports","equal","a","b","constructor","Array","isArray","length","i","Map","size","entries","has","get","Set","ArrayBuffer","isView","RegExp","source","flags","valueOf","Object","prototype","toString","keys","hasOwnProperty","call","key","$$typeof","e","r","byteLength","getLens","t","f","toByteArray","h","o","u","n","s","charCodeAt","fromByteArray","push","encodeChunk","join","Uint8Array","indexOf","Symbol","for","createBuffer","setPrototypeOf","Buffer","allocUnsafe","from","fromString","isEncoding","write","slice","fromArrayLike","isInstance","buffer","SharedArrayBuffer","fromArrayBuffer","undefined","fromObject","isBuffer","checked","copy","type","data","toPrimitive","assertSize","arguments","utf8ToBytes","base64ToBytes","toLowerCase","slowToString","hexSlice","utf8Slice","asciiSlice","Math","min","String","fromCharCode","latin1Slice","utf16leSlice","swap","bidirectionalIndexOf","arrayIndexOf","lastIndexOf","read","readUInt16BE","c","decodeCodePointsArray","apply","checkOffset","checkInt","checkIEEE754","writeFloat","writeDouble","SlowBuffer","alloc","INSPECT_MAX_BYTES","kMaxLength","TYPED_ARRAY_SUPPORT","typedArraySupport","foo","console","error","defineProperty","enumerable","byteOffset","poolSize","fill","allocUnsafeSlow","_isBuffer","compare","offset","concat","swap16","swap32","swap64","toLocaleString","equals","inspect","replace","trim","includes","isFinite","hexWrite","Number","parseInt","substr","blitBuffer","asciiToBytes","utf16leToBytes","toJSON","_arr","subarray","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","copyWithin","set","Infinity","base64clean","split","name","l","p","NaN","y","g","isNaN","abs","floor","log","LN2","__nccwpck_require__","ab","__dirname","loadAnimation","_extends","assign","bind","target","_objectWithoutPropertiesLoose","excluded","sourceKeys","emptyObject","noOp","_ref","react__WEBPACK_IMPORTED_MODULE_1__","memo","forwardRef","params","forwardedRef","animationData","path","_params$play","play","_params$speed","speed","_params$direction","direction","_params$segments","segments","segmentsIn","_params$goTo","goTo","_params$useSubframes","useSubframes","_params$renderer","renderer","_params$loop","loop","_params$rendererSetti","rendererSettings","rendererSettingsIn","audioFactory","_params$onLoad","onLoad","_params$onComplete","onComplete","_params$onLoopComplet","onLoopComplete","_params$onEnterFrame","onEnterFrame","_params$onSegmentStar","onSegmentStart","props","propsFiltered","_props","_props2","animElementRef","useRef","animRef","getAnim","useCallback","current","_useState","useState","ready","setReady","_useState2","setSegments","useEffect","fast_deep_equal_es6_react__WEBPACK_IMPORTED_MODULE_2___default","_useState3","setRendererSettings","removeEventListener","setLottieRefs","newRef","rfdc_default__WEBPACK_IMPORTED_MODULE_3___default","container","autoplay","onDomLoaded","addEventListener","destroy","wasPlayingSegmentsRef","playSegments","playReverse","resetSegments","getDuration","pause","lastFrame","goToAndPlay","setDirection","setSpeed","goToAndStop","setSubframe","createElement","ref","__webpack_require__","copyBuffer","cur","opts","circles","rfdcCircles","refs","refsNew","constructorHandlers","Date","fn","cloneArray","handler","proto","cloneProto","o2","k","pop","clone","a2","index","distance","PanSession","event","handlers","transformPagePoint","contextWindow","dragSnapToOrigin","startEvent","lastMoveEvent","lastMoveEventInfo","window","updatePoint","info","getPanInfo","history","isPanStarted","isDistancePastThreshold","distance2D","x","sqrt","xDelta","yDelta","point","timestamp","frameloop_frame","frameData","onStart","onMove","handlePointerMove","transformPoint","Wi","update","handlePointerUp","end","onEnd","onSessionEnd","resumeAnimation","panInfo","is_primary_pointer","D","initialInfo","event_info","Q","onSessionStart","removeListeners","pipe","z","add_pointer_event","updateHandlers","Pn","subtractPoint","delta","lastDevicePoint","velocity","getVelocity","timeDelta","timestampedPoint","lastPoint","time_conversion","w","time","X","currentVelocity","calcLength","axis","max","calcAxisDelta","origin","originPoint","number","scale","translate","calcBoxDelta","originX","originY","calcRelativeAxis","relative","parent","calcRelativeAxisPosition","layout","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","label","eachAxis","callback","getContextWindow","ownerDocument","defaultView","elementDragControls","WeakMap","VisualElementDragControls","visualElement","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","models","dO","start","originEvent","snapToCursor","presenceContext","isPresent","getProps","panSession","pauseAnimation","stopAnimation","_a","drag","dragPropagation","onDragStart","lock","fJ","resolveConstraints","projection","isAnimationBlocked","getAxisMotionValue","units","aQ","test","measuredAxis","layoutBox","postRender","removeWillChange","add_will_change","K","animationState","setActive","dragDirectionLock","onDirectionLock","onDrag","getCurrentDirection","lockThreshold","updateAxis","render","stop","getAnimationState","animation","getTransformPagePoint","cancel","startAnimation","onDragEnd","_point","shouldDrag","axisValue","next","applyConstraints","dragConstraints","measure","prevConstraints","is_ref_object","I","resolveRefConstraints","calcRelativeConstraints","top","left","bottom","right","resolveDragElastic","rebaseAxisConstraints","relativeConstraints","onMeasureDragConstraints","constraintsElement","errors","constraintsBox","root","measuredConstraints","userConstraints","conversion","z2","i8","dragMomentum","dragTransition","onDragTransitionEnd","Promise","all","transition","inertia","bounceStiffness","bounceDamping","timeConstant","restDelta","restSpeed","startAxisValueAnimation","then","motion_value","v","state","dragKey","toUpperCase","externalMotionValue","getValue","initial","scalePositionWithinConstraints","boxProgress","latest","calcOrigin","sourceLength","targetLength","progress","Y","clamp","transformTemplate","style","transform","updateScroll","updateLayout","addListeners","element","stopPointerListener","dragListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","add_dom_event","E","stopLayoutUpdateListener","hasLayoutChanged","motionValue","DragGesture","Feature","L","node","removeGroupControls","noop","Z","controls","mount","dragControls","subscribe","unmount","asyncHandler","PanGesture","removePointerDownListener","onPointerDown","pointerDownEvent","session","createPanHandlers","onPanSessionStart","onPanStart","onPan","onPanEnd","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","pixelsToPercent","pixels","correctBorderRadius","correct","px","parseFloat","MeasureLayoutWithContext","react","Component","componentDidMount","layoutGroup","switchLayoutGroup","layoutId","scale_correction","B","defaultScaleCorrectors","group","add","register","didUpdate","safeToRemove","setOptions","options","onExitComplete","getSnapshotBeforeUpdate","prevProps","layoutDependency","willUpdate","promote","relegate","stack","getStack","members","componentDidUpdate","microtask","currentAnimation","isLead","componentWillUnmount","promoteContext","scheduleCheckAfterUnmount","remove","deregister","MeasureLayout","usePresence","context","useContext","context_PresenceContext","O","id","useId","LayoutGroupContext","jsx_runtime","jsx","SwitchLayoutGroupContext","borderRadius","applyTo","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","boxShadow","treeScale","projectionDelta","shadow","complex","P","parse","template","createTransformer","xScale","yScale","averageScale","borders","numBorders","asNumber","value","isPx","getRadius","values","radiusName","easeCrossfadeIn","compress","circ","Bn","easeCrossfadeOut","easing","copyAxisInto","originAxis","copyBoxInto","box","originBox","copyAxisDeltaInto","originDelta","removePointDelta","boxScale","delta_apply","q2","removeAxisTransforms","transforms","scaleKey","originKey","sourceAxis","removeAxisDelta","relativeProgress","xKeys","yKeys","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","axisEquals","axisEqualsRounded","round","boxEqualsRounded","aspectRatio","axisDeltaEquals","NodeStack","array","y4","scheduleRender","cl","prevLead","lead","indexOfNode","findIndex","member","preserveFollowOpacity","show","instance","resumeFrom","preserveOpacity","snapshot","latestValues","animationValues","isUpdating","isLayoutDirty","crossfade","hide","exitAnimationComplete","forEach","resumingFrom","removeLeadSnapshot","compareByDepth","depth","FlatTree","children","isDirty","child","sort","metrics","totalNodes","resolvedTargetDeltas","recalculatedProjection","isDebug","MotionDebug","transformAxes","hiddenVisibility","visibility","resetDistortingTransform","sharedAnimationValues","setStaticValue","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","animationId","isTreeAnimating","isProjectionDirty","isSharedProjectionDirty","isTransformDirty","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","hasCheckedOptimisedAppear","eventHandlers","hasTreeAnimated","updateScheduled","scheduleUpdate","projectionUpdateScheduled","checkUpdateFailed","clearAllSnapshots","updateProjection","nodes","propagateDirtyNodes","resolveTargetDelta","calcProjection","cleanDirtyNodes","record","resolvedRelativeTargetAt","hasProjected","isVisible","animationProgress","sharedNodes","subscription_manager","notifyListeners","args","subscriptionManager","notify","hasListeners","SVGElement","tagName","cancelDelay","resizeUnblockUpdate","delay","timeout","sync_time","now","checkElapsed","elapsed","finishAnimation","registerSharedNode","animate","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","getDefaultTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","layoutRoot","setAnimationOrigin","animationOptions","transitions","onPlay","shouldReduceMotion","delete","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetSkewAndRotation","getTransformTemplate","shouldNotifyListeners","MotionCancelOptimisedAnimation","cancelTreeOptimisedTransformAnimations","projectionNode","appearId","get_appear_id","MotionHasOptimisedAnimation","prevTransformTemplateValue","updateSnapshot","clearMeasurements","clearIsLayoutDirty","resetTransformStyle","notifyLayoutUpdate","isProcessing","S6","process","preRender","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","alwaysMeasureLayout","prevLayout","layoutCorrected","phase","needsMeasurement","Boolean","layoutScroll","scroll","isRoot","wasRoot","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","has_transform","ud","removeTransform","pageBox","measurePageBox","removeElementScroll","roundAxis","measuredBox","measureViewportBox","some","checkNodeWasScrollRoot","am","boxWithoutScroll","applyTransform","transformOnly","withTransforms","D2","boxWithoutTransform","Lj","setTargetDelta","targetDelta","forceRelativeParentToResolveTarget","relativeParent","forceRecalculation","getLead","isShared","attemptToResolveRelativeTarget","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","D_","isProjecting","canSkip","pendingAnimation","prevTreeScaleX","prevTreeScaleY","YY","prevProjectionDelta","createProjectionDeltas","notifyAll","wc","projectionDeltaWithTransform","prevRelativeTarget","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","snapshotSource","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","mixTargetDelta","mixAxisDelta","output","mixAxis","to","mixValues","follow","opacity","opacityExit","borderLabel","followRadius","leadRadius","rotate","animateSingleValue","keyframes","motionValue$1","is_motion_value","es_value","BX","onUpdate","completeAnimation","applyTransformsToTarget","shouldAnimatePositionOnly","animationType","xLength","yLength","config","initialPromotionConfig","shouldPreserveFollowOpacity","getPrevLead","hasDistortingTransform","rotateX","rotateY","rotateZ","skewX","skewY","resetValues","getProjectionStyles","styleProp","_b","styles","pointerEvents","resolve_motion_value","emptyStyles","valuesToRender","buildProjectionTransform","latestTransform","xTranslate","yTranslate","zTranslate","transformPerspective","elementScaleX","elementScaleY","transformOrigin","corrected","num","resetTree","clear","measuredLayout","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","duration","ease","userAgentContains","navigator","userAgent","string","roundPoint","DocumentProjectionNode","document","documentElement","scrollLeft","body","scrollTop","rootProjectionNode","HTMLProjectionNode","documentNode","getComputedStyle","position","createMotionComponent","create_factory","animations","gestures","pan","ProjectionNode","create_visual_element","motion","create_proxy","thresholds","useInView","margin","amount","once","isInView","setInView","inView","elementOrSelector","rootMargin","elements","querySelectorAll","Element","activeIntersections","observer","IntersectionObserver","entry","isIntersecting","newOnEnd","unobserve","threshold","observe","disconnect","create_element_if_not_defined_createElementIfNotDefined","swiper","originalParams","checkProps","createElements","auto","utils","el","className","append","Navigation","extendParams","on","emit","getEl","res","isElement","querySelector","hostEl","uniqueNavElements","toggleEl","disabled","navigation","m","subEl","classList","disabledClass","watchOverflow","enabled","isLocked","lockClass","nextEl","prevEl","isBeginning","rewind","isEnd","onPrevClick","preventDefault","slidePrev","onNextClick","slideNext","init","initButton","dir","destroyButton","hideOnClick","hiddenClass","navigationDisabledClass","disable","filter","_s","targetEl","targetIsButton","composedPath","find","pathEl","isHidden","pagination","clickable","contains","toggle","enable","classes_to_selector_classesToSelector","classes","Pagination","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","onBulletClick","closest","slidesPerGroup","prevIndex","nextIndex","realIndex","moveDirection","slides","slideToLoop","slideTo","previousIndex","rtl","slidesLength","virtual","total","ceil","snapGrid","previousRealIndex","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","isHorizontal","classesToRemove","map","suffix","flat","bullet","bulletIndex","setAttribute","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scaleX","scaleY","progressEl","transitionDuration","innerHTML","grid","rows","paginationHTML","numberOfBullets","freeMode","Autoplay","raf","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","running","paused","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","getTime","onTransitionEnd","destroyed","wrapperEl","detail","bySwiperTouchMove","resume","calcTimeLeft","requestAnimationFrame","getSlideDelay","activeSlideEl","slideEl","getAttribute","run","delayForce","cancelAnimationFrame","currentSlideDelay","proceed","cssMode","clearTimeout","setTimeout","internal","reset","onVisibilityChange","ssr_window_esm","visibilityState","onPointerEnter","pointerType","animating","onPointerLeave","attachMouseEvents","detachMouseEvents","attachDocumentEvents","detachDocumentEvents","EffectFade","fadeEffect","crossFade","effect_init_effectInit","requireUpdateOnVirtual","effect","setTranslate","setTransition","overwriteParams","perspective","recreateShadows","getEffectParams","classNames","containerModifierClass","overwriteParamsResult","slideShadows","shadowEl","tx","swiperSlideOffset","virtualTranslate","ty","slideOpacity","effect_target_effectTarget","effectParams","transformEl","backfaceVisibility","transformElements","effect_virtual_transition_end_effectVirtualTransitionEnd","allSlides","getSlide","parentElement","shadowRoot","parentNode","eventTriggered","transitionEndTarget","getSlideIndex","evt","CustomEvent","bubbles","cancelable","dispatchEvent","slidesPerView","watchSlidesProgress","spaceBetween","isObject","obj","extend","src","ssrDocument","activeElement","blur","nodeName","getElementById","createEvent","initEvent","childNodes","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","pathname","protocol","search","getDocument","doc","ssrWindow","replaceState","pushState","go","back","getPropertyValue","Image","screen","matchMedia","getWindow","win","noExtend","nextSource","HTMLElement","nodeType","keysArray","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","deleteProps","object","nextTick","getTranslate","matrix","curTransform","transformMatrix","_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","targetPosition","side","startPosition","startTime","scrollSnapType","cssModeFrameID","isOutOfBound","currentPosition","easeProgress","cos","PI","scrollTo","overflow","getSlideTransformEl","elementChildren","selector","HTMLSlotElement","assignedElements","matches","elementIsChildOf","isChild","showWarning","text","warn","err","tag","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","elementStyle","prop","elementIndex","previousSibling","elementParents","parents","elementTransitionEnd","fireCallBack","elementOuterSize","includeMargins","offsetWidth","makeElementsArray","support","deviceCached","browser","getSupport","calcSupport","smoothScroll","touch","DocumentTouch","getDevice","overrides","calcDevice","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","macos","iPadScreens","os","toggleSlideClasses$1","condition","toggleSlideClasses","processLazyPreloader","imageEl","slideClass","lazyEl","lazyPreloaderClass","unlazy","removeAttribute","preload","lazyPreloadPrevNext","slidesPerViewDynamic","preloadColumns","activeColumn","_","column","slideIndexLastInView","transitionEmit","runCallbacks","step","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","innerWidth","onTouchStart","originalEvent","touchEventsData","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","preventInteractionOnTransition","loopFix","touchEventsTarget","which","button","isMoved","swipingClassHasValue","noSwipingClass","eventPath","noSwipingSelector","isTargetShadow","noSwiping","closestElement","base","__closestFrom","assignedSlot","found","getRootNode","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","d","updateSize","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","loopFixed","rtlTranslate","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","isVertical","maxTranslate","minTranslate","previousX","previousY","diffX","diffY","touchAngle","atan2","preventTouchMoveFromPointerMove","touchMoveStopPropagation","nested","stopPropagation","diff","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","allowSlideNext","allowSlidePrev","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","currentTranslate","loopSwapReset","disableParentSwiper","resistanceRatio","centeredSlides","slidesSizesGrid","activeSlideIndex","resistance","followFinger","updateActiveIndex","updateSlidesClasses","updateProgress","onTouchEnd","currentPos","isSafari","isWebView","slidesGrid","touchEndTime","timeDiff","pathTree","updateClickedSlide","lastClickTime","swipeToLast","stopIndex","groupSize","slidesPerGroupSkip","increment","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","breakpoints","setBreakpoint","isVirtual","updateSlides","isVirtualLoop","resizeTimeout","checkOverflow","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","previousTranslate","translatesDiff","autoHeight","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","events","method","capture","domMethod","passive","updateOnWindowResize","isGridEnabled","defaults","swiperElementNodeName","initialSlide","resizeObserver","eventsPrefix","url","setWrapperSize","breakpointsBase","slidesPerGroupAuto","centeredSlidesBounds","slidesOffsetBefore","slidesOffsetAfter","normalizeSlideIndex","centerInsufficientSlides","roundLengths","slideToClickedSlide","loopAddBlankSlides","loopAdditionalSlides","loopPreventsSliding","passiveListeners","maxBackfaceHiddenSlides","slideBlankClass","slideActiveClass","slideVisibleClass","slideFullyVisibleClass","slideNextClass","slidePrevClass","wrapperClass","runCallbacksOnInit","_emitClasses","prototypes","eventsEmitter","priority","self","eventsListeners","onceHandler","off","__emitterProxy","_len","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","_len2","_key2","unshift","eventsArray","clientWidth","clientHeight","slideSize","getDirectionPropertyValue","getDirectionLabel","slidesEl","swiperSize","wrongRTL","previousSlidesLength","offsetBefore","offsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","gridEnabled","initSlides","unsetSlides","shouldResetSlideSize","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","paddingLeft","paddingRight","boxSizing","swiperSlideSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","slideIndex","allSlidesSize","slideSizeValue","maxSnap","snap","offsetSize","allSlidesOffset","addToSnapGrid","addToSlidesGrid","updateSlidesOffset","backFaceHiddenClass","hasClassBackfaceClassAdded","updateAutoHeight","activeSlides","newHeight","getSlideByIndex","getSlideIndexByData","visibleSlides","offsetHeight","minusOffset","offsetLeft","offsetTop","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","originalProgress","multiplier","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","activeSlide","prevSlide","nextSlide","getFilteredSlide","q","emitSlidesClasses","newActiveIndex","getVirtualRealIndex","aIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","initialized","slideFound","clickedSlide","clickedIndex","j","byController","translateTo","translateBounds","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionDelay","transitionStart","transitionEnd","normalizedTranslate","normalizedGrid","normalizedGridNext","_immediateVirtual","_cssModeVirtualInitialSet","onSlideToWrapperTransitionEnd","newIndex","targetSlideIndex","cols","needLoopFix","slideRealIndex","perGroup","_clientLeft","clientLeft","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","slideReset","slideToClosest","currentSnap","nextSnap","slideToIndex","slideSelector","loopedSlides","loopCreate","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","recalcSlides","byMousewheel","prependSlidesIndexes","appendSlidesIndexes","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","activeColIndex","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","newSlideTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","moving","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","breakpointOnlyParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","containerEl","currentHeight","innerHeight","points","wasLocked","lastSlideRightEdge","addClasses","suffixes","prepareClasses","prefix","resultClasses","item","removeClasses","extendedDefaults","Swiper","swipers","newParams","calcBrowser","needPerspectiveFix","major","minor","isSafariBrowser","need3dFix","modules","__modules__","allModulesParams","mod","moduleParamName","moduleParams","swiperParams","passedParams","eventName","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translated","complete","newDirection","needUpdate","changeLanguageDirection","mounted","getWrapperSelector","slideSlots","lazyElements","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","prototypeGroup","protoMethod","animationFrame","resizeHandler","createObserver","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","removeObserver","orientationChangeHandler","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","paramsList","needsNavigation","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","updateOnVirtualData","parallax","isChildSwiperSlide","displayName","useIsomorphicLayoutEffect","deps","useLayoutEffect","SwiperSlideContext","createContext","SwiperContext","swiper_react_Swiper","externalElRef","Tag","wrapperTag","WrapperTag","onSwiper","rest","eventsAssigned","containerClasses","setContainerClasses","virtualData","setVirtualData","breakpointChanged","setBreakpointChanged","initializedRef","swiperElRef","swiperRef","oldPassedParamsRef","oldSlides","nextElRef","prevElRef","paginationElRef","scrollbarElRef","restProps","getParams","splitEvents","allowedParams","slots","getChildren","Children","toArray","slot","foundSlides","processChildren","onBeforeBreakpoint","_containerClasses","initSwiper","passParams","extendWith","cache","renderExternal","renderExternalUpdate","mountSwiper","paginationEl","scrollbarEl","changedParams","getChangedParams","oldParams","oldChildren","getKey","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","updateSwiper","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","loopNeedDestroy","loopNeedEnable","loopNeedReloop","updateParams","currentParams","thumbs","destroyModule","newValue","part","appendChild","nextButtonSvg","prevButtonSvg","Provider","renderVirtual","loopFrom","loopTo","slidesToRender","cloneElement","virtualIndex","Fragment","SwiperSlide","externalRef","zoom","lazy","slideElRef","slideClasses","setSlideClasses","lazyLoaded","setLazyLoaded","updateClasses","slideData","isActive","renderChildren","SwipeState","Gesture","cssPrefix$3","clsx","cssClass","cssVar","composePrefix","makeComposePrefix","cleanup","cleaners","cleaner","makeUseContext","contextName","ctx","react__WEBPACK_IMPORTED_MODULE_0__","hasWindow","decimals","factor","EPSILON","isImageSlide","isImageFitCover","image","imageFit","_types_js__WEBPACK_IMPORTED_MODULE_2__","rO","j3","parseLengthPercentage","input","pixel","endsWith","percent","devicePixelRatio","hasSlides","slidesCount","getSlideIfPresent","getSlideKey","addToolbarButton","toolbar","buttons","restToolbar","buttonWithKey","isValidElement","result","calculatePreload","carousel","minimum","finite","isReact19","version","LightboxDefaultProps","open","close","plugins","t9","labels","fade","swipe","padding","spacing","imageProps","focus","aria","closeOnPullUp","closeOnPullDown","closeOnBackdropClick","preventDefaultWheelX","preventDefaultWheelY","portal","noScroll","createModule","component","createNode","traverse","flatMap","traverseNode","DocumentContext","useDocumentContext","DocumentContextProvider","nodeRef","useMemo","getOwnerDocument","getOwnerWindow","EventsContext","useEvents","EventsProvider","subscriptions","topic","unsubscribe","cb","publish","LightboxPropsContext","useLightboxProps","LightboxPropsProvider","LightboxStateContext","useLightboxState","LightboxDispatchContext","useLightboxDispatch","reducer","action","globalIndex","currentIndex","currentSlide","c3","LightboxStateProvider","dispatch","useReducer","TimeoutsContext","useTimeouts","TimeoutsProvider","timeouts","tid","removeTimeout","IconButton","label$1","icon","Icon","renderIcon","buttonLabel","title","bg","vg","svgIcon","xmlns","viewBox","focusable","createIcon","glyph","createIconDisabled","stroke","strokeWidth","mask","CloseIcon","PreviousIcon","NextIcon","LoadingIcon","x1","y1","x2","y2","strokeLinecap","strokeOpacity","ErrorIcon","useMotionPreference","reduceMotion","setReduceMotion","mediaQuery","listener","useAnimation","computeAnimation","_c","onfinish","getBoundingClientRect","currentTransformation","matcher","prepareAnimation","currentSnapshot","isAnimationPlaying","playState","useContainerRect","containerRef","observerRef","containerRect","setContainerRect","setContainerRef","updateContainerRect","paddingTop","paddingBottom","useDelay","timeoutId","useEventCallback","setRef","useForkRef","refA","refB","refValue","useLoseFocus","focused","onFocus","onBlur","useRTL","isRTL","setIsRTL","useSensors","subscribers","notifySubscribers","isPropagationStopped","registerSensors","NZ","onPointerMove","N4","onPointerUp","S2","pE","onPointerCancel","Vt","onKeyDown","ds","onKeyUp","Bm","onWheel","yq","subscribeSensors","listeners","useThrottle","lastCallbackTime","delayCallback","executeCallback","slidePrefix","slideImagePrefix","ImageSlide","rect","onError","_d","_e","_f","_g","status","setStatus","Xe","imageRef","J1","handleLoading","img","decode","resolve","catch","Zv","setImageRef","handleOnLoad","currentTarget","handleOnError","fS","cover","nonInfinite","fallback","maxWidth","srcSet","naturalWidth","maxHeight","naturalHeight","defaultStyle","sizes","MAX_VALUE","imagePropsStyle","imagePropsClassName","restImageProps","draggable","alt","$L","iconLoading","iconError","LightboxRoot","usePointerEvents","cssContainerPrefix","ControllerContext","useController","ControllerModule","l4","toolbarWidth","setToolbarWidth","swipeState","setSwipeState","NONE","swipeOffset","pullOffset","pullOpacity","cleanupAnimationIncrement","cleanupSwipeOffset","cleanupPullOffset","handleContainerRef","usePreventWheelDefaults","horizontal","deltaX","deltaY","ctrlKey","carouselRef","setCarouselRef","getLightboxProps","getLightboxState","KN","Eb","isSwipeValid","setSwipeOffset","setPullOffset","preparePullAnimation","pull","ANIMATION","parsedSpacing","spacingValue","currentSwipeOffset","swipeDuration","swipeEasing","count","newSwipeState","newSwipeAnimationDuration","containerWidth","elapsedTime","expectedTime","Tn","swipeParams","SWIPE","pullParams","PULL","usePointerSwipe","swipeAnimationDuration","onSwipeStart","onSwipeProgress","onSwipeFinish","onSwipeCancel","pullUpEnabled","pullDownEnabled","onPullStart","onPullProgress","onPullFinish","onPullCancel","pointers","activePointer","gesture","clearPointer","currentPointers","addPointer","persist","exceedsPullThreshold","currentOffset","pointer","isCurrentPointer","clientX","clientY","startGesture","newGesture","useWheelSwipe","intent","intentCleanup","resetCleanup","wheelInertia","wheelInertiaCleanup","cancelSwipeIntentCleanup","cancelSwipeResetCleanup","handleCleanup","handleCancelSwipe","setWheelInertia","currentSwipeIntent","newSwipeOffset","sign","focusOnMount","SA","onViewCallback","slideRect","computeSlideRect","paddingValue","paddingPixels","useImperativeHandle","aN","role","tabIndex","cssPrefix$2","k0","cssSlidePrefix","CarouselSlide","rendered","click","offscreen","inert","af","slideHeader","slideContainer","slideFooter","Placeholder","CarouselModule","items","placeholder","useNavigationState","prevDisabled","nextDisabled","useKeyboardNavigation","throttle","handleKeyDown","PU","Sl","NH","NavigationButton","NavigationModule","Op","buttonPrev","buttonNext","iconPrev","iconNext","navigationPrev","navigationNext","Tf","noScrollPadding","M9","padScrollbar","computedValue","originalValue","removeProperty","NoScrollModule","HE","ownerWindow","clean","attribute","previousValue","PortalModule","setMounted","visible","setVisible","restoreFocus","animationDuration","handleClose","exiting","exited","handleEnter","entering","entered","handleRef","react_dom__WEBPACK_IMPORTED_MODULE_1__","createPortal","relatedTarget","RootModule","lT","ToolbarModule","hb","buttonClose","iconClose","renderCloseButton","Lightbox","defaultAnimation","defaultCarousel","defaultRender","defaultToolbar","defaultController","defaultNoScroll","defaultOn","defaultSlides","defaultIndex","defaultPlugins","restDefaultProps","augmentation","withPlugins","augmentations","addParent","addChild","precede","addSibling","addModule","augment","plugin","reduce","acc","mergeAnimation","defaultAnimationEasing","restDefaultAnimation","restAnimation","renderNode","cssPrefix","_index_js__WEBPACK_IMPORTED_MODULE_1__","Nc","defaultCaptionsProps","descriptionTextAlign","descriptionMaxLines","showToggle","hidden","resolveCaptionsProps","captions","CaptionsContext","useCaptions","Fy","CaptionsContextProvider","Title","bc","RD","captionsTitleContainer","Wy","gJ","captionsTitle","Description","description","useCaptionsProps","captionsDescriptionContainer","captionsDescription","line","captionsIcon","strokeLinejoin","CaptionsVisible","U2","CaptionsHidden","TX","CaptionsButton","buttonCaptions","hU","iconCaptionsVisible","iconCaptionsHidden","Captions","captionsProps","renderFooter","restRender","wQ","JT","l6","defaultFullscreenProps","resolveFullscreenProps","fullscreen","FullscreenContext","useFullscreen","FullscreenContextProvider","fullscreenProps","setDisabled","setFullscreen","wasFullscreen","tS","bt","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","getFullscreenElement","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","enter","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","exit","exitFullscreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","Eq","onEnterFullscreen","$0","enterFullscreen","onExitFullscreen","handleAutoFullscreen","zr","yS","EnterFullscreenIcon","ExitFullscreenIcon","FullscreenButton","buttonFullscreen","iconExitFullscreen","iconEnterFullscreen","Fullscreen","dA","defaultSlideshowProps","resolveSlideshowProps","slideshow","SlideshowContext","useSlideshow","SlideshowContextProvider","wasPlaying","playing","setPlaying","scheduler","slideStatus","oc","aU","hI","cancelScheduler","scheduleNextSlide","hP","onSlideshowStart","slideshowStart","onSlideshowStop","slideshowStop","p7","fV","vP","LN","PlayIcon","PauseIcon","SlideshowButton","focusListeners","d8","buttonSlideshow","iconSlideshowPause","iconSlideshowPlay","Slideshow","HY","defaultThumbnailsProps","border","gap","vignette","resolveThumbnailsProps","thumbnails","useThumbnailsProps","Xl","cssThumbnailPrefix","VideoThumbnailIcon","UnknownThumbnailIcon","activePrefix","cO","fadeInPrefix","fadeOutPrefix","placeholderPrefix","DELAY","DURATION","Thumbnail","active","fadeIn","fadeOut","onLoseFocus","onLoseFocusCallback","thumbnail","renderThumbnail","customThumbnail","imageSlideProps","P0","QB","thumbnailIconClass","poster","boxSize","dimension","ThumbnailsTrack","track","Su","Dy","t$","borderStyle","borderColor","_7","handleControllerSwipe","animationOffset","trackRect","mw","Ju","CT","getThumbnailKey","iv","handleClick","display","thumbnailsContainer","thumbnailsTrack","fadeAnimationDuration","ThumbnailsContext","useThumbnails","ThumbnailsContextProvider","OV","thumbnailsIcon","ThumbnailsVisible","ThumbnailsHidden","ThumbnailsButton","buttonThumbnails","iconThumbnailsVisible","iconThumbnailsHidden","Thumbnails","thumbnailsProps","defaultZoomProps","maxZoomPixelRatio","zoomInMultiplier","doubleTapDelay","doubleClickDelay","doubleClickMaxStops","keyboardMoveDistance","wheelZoomDistanceFactor","pinchZoomDistanceFactor","scrollToZoom","resolveZoomProps","useZoomProps","pointerA","pointerB","scaleZoom","ZoomControllerContext","useZoom","ZoomContextProvider","zoomWrapper","setZoomWrapper","imageRect","maxZoom","useZoomImageRect","imageDimensions","maxImageRect","VI","NM","offsetX","offsetY","changeZoom","changeOffsets","zoomIn","zoomOut","useZoomState","zoomWrapperRef","setZoom","setOffsetX","setOffsetY","useZoomAnimation","zoomAnimation","zoomAnimationStart","zoomAnimationDuration","OL","playZoomAnimation","currentSource","dx","dy","targetZoom","newZoom","newOffsetX","newOffsetY","maxOffsetX","maxOffsetY","rapid","handleControllerRectChange","useZoomCallback","onZoomCallback","useZoomSensors","activePointers","lastPointerDown","pinchZoomDistance","translateCoordinates","scrollX","scrollY","move","handleChangeZoom","zoomValue","hasMeta","getModifierState","replacePointer","timeStamp","currentDistance","coordinate","cleanupSensors","bQ","zoomRef","ZoomInIcon","ZoomOutIcon","ZoomButton","wasFocused","zoomInCallback","zoomOutCallback","zoomDisabled","iconZoomIn","iconZoomOut","ZoomButtonsGroup","zoomInRef","zoomOutRef","focusSibling","sibling","focusZoomIn","focusZoomOut","ZoomToolbarControl","buttonZoom","ResponsiveImage","interactive","targetWidth","pixelDensity","KL","handleResize","targetSource","handlePreload","currentPreload","WebkitTransform","ZoomWrapper","setImageDimensions","slideProps","isResponsiveImageSlide","ZZ","Zoom","zoomProps","xc","MODULE_CAROUSEL","MODULE_CONTROLLER","MODULE_NAVIGATION","MODULE_NO_SCROLL","MODULE_PORTAL","MODULE_ROOT","MODULE_TOOLBAR","PLUGIN_CAPTIONS","PLUGIN_FULLSCREEN","PLUGIN_SLIDESHOW","PLUGIN_THUMBNAILS","PLUGIN_ZOOM","SLIDE_STATUS_LOADING","SLIDE_STATUS_PLAYING","SLIDE_STATUS_ERROR","SLIDE_STATUS_COMPLETE","SLIDE_STATUS_PLACEHOLDER","activeSlideStatus","ACTIVE_SLIDE_LOADING","ACTIVE_SLIDE_PLAYING","ACTIVE_SLIDE_ERROR","ACTIVE_SLIDE_COMPLETE","CLASS_FULLSIZE","CLASS_FLEX_CENTER","CLASS_NO_SCROLL","CLASS_NO_SCROLL_PADDING","CLASS_SLIDE_WRAPPER","CLASS_SLIDE_WRAPPER_INTERACTIVE","ACTION_PREV","ACTION_NEXT","ACTION_SWIPE","ACTION_CLOSE","EVENT_ON_POINTER_DOWN","EVENT_ON_POINTER_MOVE","EVENT_ON_POINTER_UP","EVENT_ON_POINTER_LEAVE","EVENT_ON_POINTER_CANCEL","EVENT_ON_KEY_DOWN","EVENT_ON_KEY_UP","EVENT_ON_WHEEL","VK_ESCAPE","VK_ARROW_LEFT","VK_ARROW_RIGHT","ELEMENT_BUTTON","ELEMENT_ICON","IMAGE_FIT_CONTAIN","IMAGE_FIT_COVER","UNKNOWN_ACTION_TYPE"],"sourceRoot":""}