= 0\n }\n\n switch (ph.type) {\n case 'b':\n arg = parseInt(arg, 10).toString(2)\n break\n case 'c':\n arg = String.fromCharCode(parseInt(arg, 10))\n break\n case 'd':\n case 'i':\n arg = parseInt(arg, 10)\n break\n case 'j':\n arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n break\n case 'e':\n arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n break\n case 'f':\n arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n break\n case 'g':\n arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n break\n case 'o':\n arg = (parseInt(arg, 10) >>> 0).toString(8)\n break\n case 's':\n arg = String(arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 't':\n arg = String(!!arg)\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'T':\n arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'u':\n arg = parseInt(arg, 10) >>> 0\n break\n case 'v':\n arg = arg.valueOf()\n arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n break\n case 'x':\n arg = (parseInt(arg, 10) >>> 0).toString(16)\n break\n case 'X':\n arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n break\n }\n if (re.json.test(ph.type)) {\n output += arg\n }\n else {\n if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n sign = is_positive ? '+' : '-'\n arg = arg.toString().replace(re.sign, '')\n }\n else {\n sign = ''\n }\n pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n pad_length = ph.width - (sign + arg).length\n pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n }\n }\n }\n return output\n }\n\n var sprintf_cache = Object.create(null)\n\n function sprintf_parse(fmt) {\n if (sprintf_cache[fmt]) {\n return sprintf_cache[fmt]\n }\n\n var _fmt = fmt, match, parse_tree = [], arg_names = 0\n while (_fmt) {\n if ((match = re.text.exec(_fmt)) !== null) {\n parse_tree.push(match[0])\n }\n else if ((match = re.modulo.exec(_fmt)) !== null) {\n parse_tree.push('%')\n }\n else if ((match = re.placeholder.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1\n var field_list = [], replacement_field = match[2], field_match = []\n if ((field_match = re.key.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n field_list.push(field_match[1])\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n }\n }\n else {\n throw new SyntaxError('[sprintf] failed to parse named argument key')\n }\n match[2] = field_list\n }\n else {\n arg_names |= 2\n }\n if (arg_names === 3) {\n throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n }\n\n parse_tree.push(\n {\n placeholder: match[0],\n param_no: match[1],\n keys: match[2],\n sign: match[3],\n pad_char: match[4],\n align: match[5],\n width: match[6],\n precision: match[7],\n type: match[8]\n }\n )\n }\n else {\n throw new SyntaxError('[sprintf] unexpected placeholder')\n }\n _fmt = _fmt.substring(match[0].length)\n }\n return sprintf_cache[fmt] = parse_tree\n }\n\n /**\n * export to either browser or node.js\n */\n /* eslint-disable quote-props */\n if (typeof exports !== 'undefined') {\n exports['sprintf'] = sprintf\n exports['vsprintf'] = vsprintf\n }\n if (typeof window !== 'undefined') {\n window['sprintf'] = sprintf\n window['vsprintf'] = vsprintf\n\n if (typeof define === 'function' && define['amd']) {\n define(function() {\n return {\n 'sprintf': sprintf,\n 'vsprintf': vsprintf\n }\n })\n }\n }\n /* eslint-enable quote-props */\n}(); // eslint-disable-line\n"]}
\ No newline at end of file
diff --git a/node/node_modules/ip-address/node_modules/sprintf-js/package.json b/node/node_modules/ip-address/node_modules/sprintf-js/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..1d3dcf3deef669fc31442eae42398055e0c3e9f0
--- /dev/null
+++ b/node/node_modules/ip-address/node_modules/sprintf-js/package.json
@@ -0,0 +1,35 @@
+{
+ "name": "sprintf-js",
+ "version": "1.1.3",
+ "description": "JavaScript sprintf implementation",
+ "author": "Alexandru Mărășteanu >(p+=this.DB-k);
+ }
+ else {
+ d = (this[i]>>(p-=k))&km;
+ if(p <= 0) { p += this.DB; --i; }
+ }
+ if(d > 0) m = true;
+ if(m) r += int2char(d);
+ }
+ }
+ return m?r:"0";
+ }
+
+ // (public) -this
+ function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }
+
+ // (public) |this|
+ function bnAbs() { return (this.s<0)?this.negate():this; }
+
+ // (public) return + if this > a, - if this < a, 0 if equal
+ function bnCompareTo(a) {
+ var r = this.s-a.s;
+ if(r != 0) return r;
+ var i = this.t;
+ r = i-a.t;
+ if(r != 0) return (this.s<0)?-r:r;
+ while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;
+ return 0;
+ }
+
+ // returns bit length of the integer x
+ function nbits(x) {
+ var r = 1, t;
+ if((t=x>>>16) != 0) { x = t; r += 16; }
+ if((t=x>>8) != 0) { x = t; r += 8; }
+ if((t=x>>4) != 0) { x = t; r += 4; }
+ if((t=x>>2) != 0) { x = t; r += 2; }
+ if((t=x>>1) != 0) { x = t; r += 1; }
+ return r;
+ }
+
+ // (public) return the number of bits in "this"
+ function bnBitLength() {
+ if(this.t <= 0) return 0;
+ return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));
+ }
+
+ // (protected) r = this << n*DB
+ function bnpDLShiftTo(n,r) {
+ var i;
+ for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];
+ for(i = n-1; i >= 0; --i) r[i] = 0;
+ r.t = this.t+n;
+ r.s = this.s;
+ }
+
+ // (protected) r = this >> n*DB
+ function bnpDRShiftTo(n,r) {
+ for(var i = n; i < this.t; ++i) r[i-n] = this[i];
+ r.t = Math.max(this.t-n,0);
+ r.s = this.s;
+ }
+
+ // (protected) r = this << n
+ function bnpLShiftTo(n,r) {
+ var bs = n%this.DB;
+ var cbs = this.DB-bs;
+ var bm = (1< >(p+=this.DB-8);
+ }
+ else {
+ d = (this[i]>>(p-=8))&0xff;
+ if(p <= 0) { p += this.DB; --i; }
+ }
+ if((d&0x80) != 0) d |= -256;
+ if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;
+ if(k > 0 || d != this.s) r[k++] = d;
+ }
+ }
+ return r;
+ }
+
+ function bnEquals(a) { return(this.compareTo(a)==0); }
+ function bnMin(a) { return(this.compareTo(a)<0)?this:a; }
+ function bnMax(a) { return(this.compareTo(a)>0)?this:a; }
+
+ // (protected) r = this op a (bitwise)
+ function bnpBitwiseTo(a,op,r) {
+ var i, f, m = Math.min(a.t,this.t);
+ for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);
+ if(a.t < this.t) {
+ f = a.s&this.DM;
+ for(i = m; i < this.t; ++i) r[i] = op(this[i],f);
+ r.t = this.t;
+ }
+ else {
+ f = this.s&this.DM;
+ for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);
+ r.t = a.t;
+ }
+ r.s = op(this.s,a.s);
+ r.clamp();
+ }
+
+ // (public) this & a
+ function op_and(x,y) { return x&y; }
+ function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }
+
+ // (public) this | a
+ function op_or(x,y) { return x|y; }
+ function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }
+
+ // (public) this ^ a
+ function op_xor(x,y) { return x^y; }
+ function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }
+
+ // (public) this & ~a
+ function op_andnot(x,y) { return x&~y; }
+ function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }
+
+ // (public) ~this
+ function bnNot() {
+ var r = nbi();
+ for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];
+ r.t = this.t;
+ r.s = ~this.s;
+ return r;
+ }
+
+ // (public) this << n
+ function bnShiftLeft(n) {
+ var r = nbi();
+ if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);
+ return r;
+ }
+
+ // (public) this >> n
+ function bnShiftRight(n) {
+ var r = nbi();
+ if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);
+ return r;
+ }
+
+ // return index of lowest 1-bit in x, x < 2^31
+ function lbit(x) {
+ if(x == 0) return -1;
+ var r = 0;
+ if((x&0xffff) == 0) { x >>= 16; r += 16; }
+ if((x&0xff) == 0) { x >>= 8; r += 8; }
+ if((x&0xf) == 0) { x >>= 4; r += 4; }
+ if((x&3) == 0) { x >>= 2; r += 2; }
+ if((x&1) == 0) ++r;
+ return r;
+ }
+
+ // (public) returns index of lowest 1-bit (or -1 if none)
+ function bnGetLowestSetBit() {
+ for(var i = 0; i < this.t; ++i)
+ if(this[i] != 0) return i*this.DB+lbit(this[i]);
+ if(this.s < 0) return this.t*this.DB;
+ return -1;
+ }
+
+ // return number of 1 bits in x
+ function cbit(x) {
+ var r = 0;
+ while(x != 0) { x &= x-1; ++r; }
+ return r;
+ }
+
+ // (public) return number of set bits
+ function bnBitCount() {
+ var r = 0, x = this.s&this.DM;
+ for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);
+ return r;
+ }
+
+ // (public) true iff nth bit is set
+ function bnTestBit(n) {
+ var j = Math.floor(n/this.DB);
+ if(j >= this.t) return(this.s!=0);
+ return((this[j]&(1<<(n%this.DB)))!=0);
+ }
+
+ // (protected) this op (1< 1&&u.push(e.virtualSize-n)}if(o&&s.loop){const t=m[0]+S;if(s.slidesPerGroup>1){const i=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),r=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${S}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(S||0)})),e-=S;const t=e-n;u=u.map((e=>e<=0?-f:e>t?t+v:e))}if(s.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(S||0)})),e-=S,e 0?(n._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{n.wrapperEl.style.scrollSnapType="",n._immediateVirtual=!1}))}else{if(!n.support.smoothScroll)return animateCSSModeScroll({swiper:n,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return n.setTransition(t),n.setTranslate(g),n.updateActiveIndex(a),n.updateSlidesClasses(),n.emit("beforeTransitionStart",t,i),n.transitionStart(s,w),0===t?n.transitionEnd(s,w):n.animating||(n.animating=!0,n.onSlideToWrapperTransitionEnd||(n.onSlideToWrapperTransitionEnd=function(e){n&&!n.destroyed&&e.target===this&&(n.wrapperEl.removeEventListener("transitionend",n.onSlideToWrapperTransitionEnd),n.onSlideToWrapperTransitionEnd=null,delete n.onSlideToWrapperTransitionEnd,n.transitionEnd(s,w))}),n.wrapperEl.addEventListener("transitionend",n.onSlideToWrapperTransitionEnd)),!0}function slideToLoop(e,t,s,i){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const r=this;if(r.destroyed)return;const n=r.grid&&r.params.grid&&r.params.grid.rows>1;let a=e;if(r.params.loop)if(r.virtual&&r.params.virtual.enabled)a+=r.virtual.slidesBefore;else{let e;if(n){const t=a*r.params.grid.rows;e=r.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=r.getSlideIndexByData(a);const t=n?Math.ceil(r.slides.length/r.params.grid.rows):r.slides.length,{centeredSlides:s}=r.params;let i=r.params.slidesPerView;"auto"===i?i=r.slidesPerViewDynamic():(i=Math.ceil(parseFloat(r.params.slidesPerView,10)),s&&i%2==0&&(i+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else a=r.getSlideIndexByData(a)}return requestAnimationFrame((()=>{r.slideTo(a,t,s,i)})),r}function slideNext(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const i=this,{enabled:r,params:n,animating:a}=i;if(!r||i.destroyed)return i;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(i.slidesPerViewDynamic("current",!0),1));const o=i.activeIndex 1&&m.push(e.virtualSize-r)}if(o&&s.loop){const t=g[0]+x;if(s.slidesPerGroup>1){const a=Math.ceil((e.virtual.slidesBefore+e.virtual.slidesAfter)/s.slidesPerGroup),i=t*s.slidesPerGroup;for(let e=0;e!(s.cssMode&&!s.loop)||t!==c.length-1)).forEach((e=>{e.style[t]=`${x}px`}))}if(s.centeredSlides&&s.centeredSlidesBounds){let e=0;g.forEach((t=>{e+=t+(x||0)})),e-=x;const t=e-r;m=m.map((e=>e<=0?-v:e>t?t+w:e))}if(s.centerInsufficientSlides){let e=0;if(g.forEach((t=>{e+=t+(x||0)})),e-=x,e 0?(r._cssModeVirtualInitialSet=!0,requestAnimationFrame((()=>{h[e?"scrollLeft":"scrollTop"]=s}))):h[e?"scrollLeft":"scrollTop"]=s,t&&requestAnimationFrame((()=>{r.wrapperEl.style.scrollSnapType="",r._immediateVirtual=!1}))}else{if(!r.support.smoothScroll)return m({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(w),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.wrapperEl.removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.wrapperEl.addEventListener("transitionend",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){e=parseInt(e,10)}const i=this;if(i.destroyed)return;const r=i.grid&&i.params.grid&&i.params.grid.rows>1;let n=e;if(i.params.loop)if(i.virtual&&i.params.virtual.enabled)n+=i.virtual.slidesBefore;else{let e;if(r){const t=n*i.params.grid.rows;e=i.slides.filter((e=>1*e.getAttribute("data-swiper-slide-index")===t))[0].column}else e=i.getSlideIndexByData(n);const t=r?Math.ceil(i.slides.length/i.params.grid.rows):i.slides.length,{centeredSlides:s}=i.params;let a=i.params.slidesPerView;"auto"===a?a=i.slidesPerViewDynamic():(a=Math.ceil(parseFloat(i.params.slidesPerView,10)),s&&a%2==0&&(a+=1));let l=t-e1*t.getAttribute("data-swiper-slide-index")===e))[0].column}else n=i.getSlideIndexByData(n)}return requestAnimationFrame((()=>{i.slideTo(n,t,s,a)})),i},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{enabled:i,params:r,animating:n}=a;if(!i||a.destroyed)return a;let l=r.slidesPerGroup;"auto"===r.slidesPerView&&1===r.slidesPerGroup&&r.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndex0?n:0),t&&(t.style.opacity=-n>0?-n:0)}}},setTransition:e=>{t.slides.map((e=>getSlideTransformEl(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})}export{EffectCoverflow as default};
+//# sourceMappingURL=effect-coverflow.min.mjs.map
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/effect-coverflow.min.mjs.map b/node/node_modules/swiper/modules/effect-coverflow.min.mjs.map
new file mode 100644
index 0000000000000000000000000000000000000000..4b71baf7007ac18efae3efab8e9c0563fb8fda72
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-coverflow.min.mjs.map
@@ -0,0 +1 @@
+{"version":3,"file":"effect-coverflow.mjs.mjs","names":["createShadow","effectInit","effectTarget","getSlideTransformEl","EffectCoverflow","_ref","swiper","extendParams","on","coverflowEffect","rotate","stretch","depth","scale","modifier","slideShadows","effect","setTranslate","width","swiperWidth","height","swiperHeight","slides","slidesSizesGrid","params","isHorizontal","transform","translate","center","i","length","slideEl","slideSize","centerOffset","swiperSlideOffset","offsetMultiplier","rotateY","rotateX","translateZ","Math","abs","indexOf","parseFloat","translateY","translateX","browser","need3dFix","slideTransform","style","zIndex","round","shadowBeforeEl","querySelector","shadowAfterEl","opacity","setTransition","duration","map","forEach","el","transitionDuration","querySelectorAll","shadowEl","perspective","overwriteParams","watchSlidesProgress"],"sources":["0"],"mappings":"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"}
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/effect-coverflow.mjs b/node/node_modules/swiper/modules/effect-coverflow.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..819c44b619dfda9ccc082e73de77d236d6215b3f
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-coverflow.mjs
@@ -0,0 +1,111 @@
+import { c as createShadow } from '../shared/create-shadow.mjs';
+import { e as effectInit } from '../shared/effect-init.mjs';
+import { e as effectTarget } from '../shared/effect-target.mjs';
+import { g as getSlideTransformEl } from '../shared/utils.mjs';
+
+function EffectCoverflow(_ref) {
+ let {
+ swiper,
+ extendParams,
+ on
+ } = _ref;
+ extendParams({
+ coverflowEffect: {
+ rotate: 50,
+ stretch: 0,
+ depth: 100,
+ scale: 1,
+ modifier: 1,
+ slideShadows: true
+ }
+ });
+ const setTranslate = () => {
+ const {
+ width: swiperWidth,
+ height: swiperHeight,
+ slides,
+ slidesSizesGrid
+ } = swiper;
+ const params = swiper.params.coverflowEffect;
+ const isHorizontal = swiper.isHorizontal();
+ const transform = swiper.translate;
+ const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
+ const rotate = isHorizontal ? params.rotate : -params.rotate;
+ const translate = params.depth;
+ // Each slide offset from center
+ for (let i = 0, length = slides.length; i < length; i += 1) {
+ const slideEl = slides[i];
+ const slideSize = slidesSizesGrid[i];
+ const slideOffset = slideEl.swiperSlideOffset;
+ const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
+ const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
+ let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
+ let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
+ // var rotateZ = 0
+ let translateZ = -translate * Math.abs(offsetMultiplier);
+ let stretch = params.stretch;
+ // Allow percentage to make a relative stretch for responsive sliders
+ if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
+ stretch = parseFloat(params.stretch) / 100 * slideSize;
+ }
+ let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
+ let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
+ let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
+
+ // Fix for ultra small values
+ if (Math.abs(translateX) < 0.001) translateX = 0;
+ if (Math.abs(translateY) < 0.001) translateY = 0;
+ if (Math.abs(translateZ) < 0.001) translateZ = 0;
+ if (Math.abs(rotateY) < 0.001) rotateY = 0;
+ if (Math.abs(rotateX) < 0.001) rotateX = 0;
+ if (Math.abs(scale) < 0.001) scale = 0;
+ if (swiper.browser && swiper.browser.need3dFix) {
+ if (Math.abs(rotateY) / 90 % 2 === 1) {
+ rotateY += 0.001;
+ }
+ if (Math.abs(rotateX) / 90 % 2 === 1) {
+ rotateX += 0.001;
+ }
+ }
+ const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;
+ const targetEl = effectTarget(params, slideEl);
+ targetEl.style.transform = slideTransform;
+ slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
+ if (params.slideShadows) {
+ // Set shadows
+ let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
+ let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
+ if (!shadowBeforeEl) {
+ shadowBeforeEl = createShadow('coverflow', slideEl, isHorizontal ? 'left' : 'top');
+ }
+ if (!shadowAfterEl) {
+ shadowAfterEl = createShadow('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
+ }
+ if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
+ if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
+ }
+ }
+ };
+ const setTransition = duration => {
+ const transformElements = swiper.slides.map(slideEl => getSlideTransformEl(slideEl));
+ transformElements.forEach(el => {
+ el.style.transitionDuration = `${duration}ms`;
+ el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
+ shadowEl.style.transitionDuration = `${duration}ms`;
+ });
+ });
+ };
+ effectInit({
+ effect: 'coverflow',
+ swiper,
+ on,
+ setTranslate,
+ setTransition,
+ perspective: () => true,
+ overwriteParams: () => ({
+ watchSlidesProgress: true
+ })
+ });
+}
+
+export { EffectCoverflow as default };
diff --git a/node/node_modules/swiper/modules/effect-coverflow.scss b/node/node_modules/swiper/modules/effect-coverflow.scss
new file mode 100644
index 0000000000000000000000000000000000000000..ac504bf1a62d44495f7d7ecb7a115b7834dda1e4
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-coverflow.scss
@@ -0,0 +1,2 @@
+.swiper-coverflow {
+}
diff --git a/node/node_modules/swiper/modules/effect-creative-element.css b/node/node_modules/swiper/modules/effect-creative-element.css
new file mode 100644
index 0000000000000000000000000000000000000000..6ccf22b62fd70ac3973ba4ad12b82918ceabdaeb
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative-element.css
@@ -0,0 +1,6 @@
+.swiper-creative ::slotted(swiper-slide) {
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ overflow: hidden;
+ transition-property: transform, opacity, height;
+}
diff --git a/node/node_modules/swiper/modules/effect-creative-element.min.css b/node/node_modules/swiper/modules/effect-creative-element.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..70fb70574c841d519df70f63caf03e09d8ca64ea
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative-element.min.css
@@ -0,0 +1 @@
+.swiper-creative ::slotted(swiper-slide){-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/effect-creative.css b/node/node_modules/swiper/modules/effect-creative.css
new file mode 100644
index 0000000000000000000000000000000000000000..2082494168b6669184b57202698ec94caeab7c03
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative.css
@@ -0,0 +1,6 @@
+.swiper-creative .swiper-slide {
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+ overflow: hidden;
+ transition-property: transform, opacity, height;
+}
diff --git a/node/node_modules/swiper/modules/effect-creative.less b/node/node_modules/swiper/modules/effect-creative.less
new file mode 100644
index 0000000000000000000000000000000000000000..b893cad5c8331ff785b6ee6c54df91bed4bccf34
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative.less
@@ -0,0 +1,7 @@
+.swiper-creative {
+ .swiper-slide {
+ backface-visibility: hidden;
+ overflow: hidden;
+ transition-property: transform, opacity, height;
+ }
+}
diff --git a/node/node_modules/swiper/modules/effect-creative.min.css b/node/node_modules/swiper/modules/effect-creative.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..404da2c284e73470c47b8eede4af00d7ae7e5f23
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative.min.css
@@ -0,0 +1 @@
+.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/effect-creative.min.mjs b/node/node_modules/swiper/modules/effect-creative.min.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..5147f345a0a65783741e0e0bb0671e92dc1a51fe
--- /dev/null
+++ b/node/node_modules/swiper/modules/effect-creative.min.mjs
@@ -0,0 +1,2 @@
+import{c as createShadow}from"../shared/create-shadow.min.mjs";import{e as effectInit}from"../shared/effect-init.min.mjs";import{e as effectTarget}from"../shared/effect-target.min.mjs";import{e as effectVirtualTransitionEnd}from"../shared/effect-virtual-transition-end.min.mjs";import{g as getSlideTransformEl}from"../shared/utils.min.mjs";function EffectCreative(e){let{swiper:t,extendParams:r,on:s}=e;r({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const a=e=>"string"==typeof e?e:`${e}px`;effectInit({effect:"creative",swiper:t,on:s,setTranslate:()=>{const{slides:e,wrapperEl:r,slidesSizesGrid:s}=t,i=t.params.creativeEffect,{progressMultiplier:o}=i,l=t.params.centeredSlides;if(l){const e=s[0]/2-t.params.slidesOffsetBefore||0;r.style.transform=`translateX(calc(50% - ${e}px))`}for(let r=0;r{s>e&&(t.virtual.cache[s-1]=t.virtual.cache[s],t.virtual.cache[s-1].setAttribute("data-swiper-slide-index",s-1),delete t.virtual.cache[s])}))),t.virtual.slides.splice(e,1),e= slidesBefore) {
+ from -= slidesBefore;
+ if (!centeredSlides) offset += swiper.slidesGrid[0];
+ } else if (isLoop && activeIndex < slidesBefore) {
+ from = -slidesBefore;
+ if (centeredSlides) offset += swiper.slidesGrid[0];
+ }
+ Object.assign(swiper.virtual, {
+ from,
+ to,
+ offset,
+ slidesGrid: swiper.slidesGrid,
+ slidesBefore,
+ slidesAfter
+ });
+ function onRendered() {
+ swiper.updateSlides();
+ swiper.updateProgress();
+ swiper.updateSlidesClasses();
+ emit('virtualUpdate');
+ }
+ if (previousFrom === from && previousTo === to && !force) {
+ if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
+ swiper.slides.forEach(slideEl => {
+ slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
+ });
+ }
+ swiper.updateProgress();
+ emit('virtualUpdate');
+ return;
+ }
+ if (swiper.params.virtual.renderExternal) {
+ swiper.params.virtual.renderExternal.call(swiper, {
+ offset,
+ from,
+ to,
+ slides: function getSlides() {
+ const slidesToRender = [];
+ for (let i = from; i <= to; i += 1) {
+ slidesToRender.push(slides[i]);
+ }
+ return slidesToRender;
+ }()
+ });
+ if (swiper.params.virtual.renderExternalUpdate) {
+ onRendered();
+ } else {
+ emit('virtualUpdate');
+ }
+ return;
+ }
+ const prependIndexes = [];
+ const appendIndexes = [];
+ const getSlideIndex = index => {
+ let slideIndex = index;
+ if (index < 0) {
+ slideIndex = slides.length + index;
+ } else if (slideIndex >= slides.length) {
+ // eslint-disable-next-line
+ slideIndex = slideIndex - slides.length;
+ }
+ return slideIndex;
+ };
+ if (force) {
+ swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
+ slideEl.remove();
+ });
+ } else {
+ for (let i = previousFrom; i <= previousTo; i += 1) {
+ if (i < from || i > to) {
+ const slideIndex = getSlideIndex(i);
+ swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
+ slideEl.remove();
+ });
+ }
+ }
+ }
+ const loopFrom = isLoop ? -slides.length : 0;
+ const loopTo = isLoop ? slides.length * 2 : slides.length;
+ for (let i = loopFrom; i < loopTo; i += 1) {
+ if (i >= from && i <= to) {
+ const slideIndex = getSlideIndex(i);
+ if (typeof previousTo === 'undefined' || force) {
+ appendIndexes.push(slideIndex);
+ } else {
+ if (i > previousTo) appendIndexes.push(slideIndex);
+ if (i < previousFrom) prependIndexes.push(slideIndex);
+ }
+ }
+ }
+ appendIndexes.forEach(index => {
+ swiper.slidesEl.append(renderSlide(slides[index], index));
+ });
+ if (isLoop) {
+ for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
+ const index = prependIndexes[i];
+ swiper.slidesEl.prepend(renderSlide(slides[index], index));
+ }
+ } else {
+ prependIndexes.sort((a, b) => b - a);
+ prependIndexes.forEach(index => {
+ swiper.slidesEl.prepend(renderSlide(slides[index], index));
+ });
+ }
+ elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
+ slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
+ });
+ onRendered();
+ }
+ function appendSlide(slides) {
+ if (typeof slides === 'object' && 'length' in slides) {
+ for (let i = 0; i < slides.length; i += 1) {
+ if (slides[i]) swiper.virtual.slides.push(slides[i]);
+ }
+ } else {
+ swiper.virtual.slides.push(slides);
+ }
+ update(true);
+ }
+ function prependSlide(slides) {
+ const activeIndex = swiper.activeIndex;
+ let newActiveIndex = activeIndex + 1;
+ let numberOfNewSlides = 1;
+ if (Array.isArray(slides)) {
+ for (let i = 0; i < slides.length; i += 1) {
+ if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
+ }
+ newActiveIndex = activeIndex + slides.length;
+ numberOfNewSlides = slides.length;
+ } else {
+ swiper.virtual.slides.unshift(slides);
+ }
+ if (swiper.params.virtual.cache) {
+ const cache = swiper.virtual.cache;
+ const newCache = {};
+ Object.keys(cache).forEach(cachedIndex => {
+ const cachedEl = cache[cachedIndex];
+ const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
+ if (cachedElIndex) {
+ cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
+ }
+ newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
+ });
+ swiper.virtual.cache = newCache;
+ }
+ update(true);
+ swiper.slideTo(newActiveIndex, 0);
+ }
+ function removeSlide(slidesIndexes) {
+ if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
+ let activeIndex = swiper.activeIndex;
+ if (Array.isArray(slidesIndexes)) {
+ for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
+ if (swiper.params.virtual.cache) {
+ delete swiper.virtual.cache[slidesIndexes[i]];
+ // shift cache indexes
+ Object.keys(swiper.virtual.cache).forEach(key => {
+ if (key > slidesIndexes) {
+ swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
+ swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
+ delete swiper.virtual.cache[key];
+ }
+ });
+ }
+ swiper.virtual.slides.splice(slidesIndexes[i], 1);
+ if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
+ activeIndex = Math.max(activeIndex, 0);
+ }
+ } else {
+ if (swiper.params.virtual.cache) {
+ delete swiper.virtual.cache[slidesIndexes];
+ // shift cache indexes
+ Object.keys(swiper.virtual.cache).forEach(key => {
+ if (key > slidesIndexes) {
+ swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
+ swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
+ delete swiper.virtual.cache[key];
+ }
+ });
+ }
+ swiper.virtual.slides.splice(slidesIndexes, 1);
+ if (slidesIndexes < activeIndex) activeIndex -= 1;
+ activeIndex = Math.max(activeIndex, 0);
+ }
+ update(true);
+ swiper.slideTo(activeIndex, 0);
+ }
+ function removeAllSlides() {
+ swiper.virtual.slides = [];
+ if (swiper.params.virtual.cache) {
+ swiper.virtual.cache = {};
+ }
+ update(true);
+ swiper.slideTo(0, 0);
+ }
+ on('beforeInit', () => {
+ if (!swiper.params.virtual.enabled) return;
+ let domSlidesAssigned;
+ if (typeof swiper.passedParams.virtual.slides === 'undefined') {
+ const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
+ if (slides && slides.length) {
+ swiper.virtual.slides = [...slides];
+ domSlidesAssigned = true;
+ slides.forEach((slideEl, slideIndex) => {
+ slideEl.setAttribute('data-swiper-slide-index', slideIndex);
+ swiper.virtual.cache[slideIndex] = slideEl;
+ slideEl.remove();
+ });
+ }
+ }
+ if (!domSlidesAssigned) {
+ swiper.virtual.slides = swiper.params.virtual.slides;
+ }
+ swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
+ swiper.params.watchSlidesProgress = true;
+ swiper.originalParams.watchSlidesProgress = true;
+ update();
+ });
+ on('setTranslate', () => {
+ if (!swiper.params.virtual.enabled) return;
+ if (swiper.params.cssMode && !swiper._immediateVirtual) {
+ clearTimeout(cssModeTimeout);
+ cssModeTimeout = setTimeout(() => {
+ update();
+ }, 100);
+ } else {
+ update();
+ }
+ });
+ on('init update resize', () => {
+ if (!swiper.params.virtual.enabled) return;
+ if (swiper.params.cssMode) {
+ setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
+ }
+ });
+ Object.assign(swiper.virtual, {
+ appendSlide,
+ prependSlide,
+ removeSlide,
+ removeAllSlides,
+ update
+ });
+}
+
+export { Virtual as default };
diff --git a/node/node_modules/swiper/modules/virtual.scss b/node/node_modules/swiper/modules/virtual.scss
new file mode 100644
index 0000000000000000000000000000000000000000..824cc1e3c5d08c1357b601ba2c243e6ee71596b4
--- /dev/null
+++ b/node/node_modules/swiper/modules/virtual.scss
@@ -0,0 +1,26 @@
+.swiper-virtual .swiper-slide {
+ -webkit-backface-visibility: hidden;
+ transform: translateZ(0);
+}
+.swiper-virtual.swiper-css-mode {
+ .swiper-wrapper::after {
+ content: '';
+ position: absolute;
+ left: 0;
+ top: 0;
+ pointer-events: none;
+ }
+}
+.swiper-virtual.swiper-css-mode.swiper-horizontal {
+ .swiper-wrapper::after {
+ height: 1px;
+ width: var(--swiper-virtual-size);
+ }
+}
+
+.swiper-virtual.swiper-css-mode.swiper-vertical {
+ .swiper-wrapper::after {
+ width: 1px;
+ height: var(--swiper-virtual-size);
+ }
+}
diff --git a/node/node_modules/swiper/modules/zoom-element.css b/node/node_modules/swiper/modules/zoom-element.css
new file mode 100644
index 0000000000000000000000000000000000000000..f81a92badb10787ba142596acda1f2799dab61b2
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom-element.css
@@ -0,0 +1,5 @@
+/* Zoom container styles start *//* Zoom container styles end */
+::slotted(.swiper-slide-zoomed) {
+ cursor: move;
+ touch-action: none;
+}
diff --git a/node/node_modules/swiper/modules/zoom-element.min.css b/node/node_modules/swiper/modules/zoom-element.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..17d073f83531493c9d6187627013b670d94e8dad
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom-element.min.css
@@ -0,0 +1 @@
+::slotted(.swiper-slide-zoomed){cursor:move;touch-action:none}
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/zoom.css b/node/node_modules/swiper/modules/zoom.css
new file mode 100644
index 0000000000000000000000000000000000000000..40f5b10b9f5124e430d92ae59a81db34537a057d
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom.css
@@ -0,0 +1,21 @@
+/* Zoom container styles start */
+.swiper-zoom-container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+}
+.swiper-zoom-container > img,
+.swiper-zoom-container > svg,
+.swiper-zoom-container > canvas {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+}
+/* Zoom container styles end */
+.swiper-slide-zoomed {
+ cursor: move;
+ touch-action: none;
+}
diff --git a/node/node_modules/swiper/modules/zoom.less b/node/node_modules/swiper/modules/zoom.less
new file mode 100644
index 0000000000000000000000000000000000000000..d226ae9399baa199fe2bb6d6f439d17f31609bd8
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom.less
@@ -0,0 +1,23 @@
+/* Zoom container styles start */
+.swiper-zoom-container {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ text-align: center;
+
+ > img,
+ > svg,
+ > canvas {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ }
+}
+/* Zoom container styles end */
+
+.swiper-slide-zoomed {
+ cursor: move;
+ touch-action: none;
+}
diff --git a/node/node_modules/swiper/modules/zoom.min.css b/node/node_modules/swiper/modules/zoom.min.css
new file mode 100644
index 0000000000000000000000000000000000000000..e55cd9af02b852bd68decdc85f16359c271e314d
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom.min.css
@@ -0,0 +1 @@
+.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}
\ No newline at end of file
diff --git a/node/node_modules/swiper/modules/zoom.min.mjs b/node/node_modules/swiper/modules/zoom.min.mjs
new file mode 100644
index 0000000000000000000000000000000000000000..57b40c7817fe71697a81422cacae883a1a2c3a84
--- /dev/null
+++ b/node/node_modules/swiper/modules/zoom.min.mjs
@@ -0,0 +1,2 @@
+import{a as getWindow}from"../shared/ssr-window.esm.min.mjs";import{e as elementChildren,a as elementParents,b as elementOffset,j as getTranslate}from"../shared/utils.min.mjs";function Zoom(e){let{swiper:t,extendParams:i,on:a,emit:r}=e;const s=getWindow();i({zoom:{enabled:!1,limitToOriginalSize:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let o,n,l=1,m=!1;const c=[],d={originX:0,originY:0,slideEl:void 0,slideWidth:void 0,slideHeight:void 0,imageEl:void 0,imageWrapEl:void 0,maxRatio:3},u={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},p={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let g=1;function h(){if(c.length<2)return 1;const e=c[0].pageX,t=c[0].pageY,i=c[1].pageX,a=c[1].pageY;return Math.sqrt((i-e)**2+(a-t)**2)}function E(){const e=t.params.zoom,i=d.imageWrapEl.getAttribute("data-swiper-zoom")||e.maxRatio;if(e.limitToOriginalSize&&d.imageEl&&d.imageEl.naturalWidth){const e=d.imageEl.naturalWidth/d.imageEl.offsetWidth;return Math.min(e,i)}return i}function v(e){const i=t.isElement?"swiper-slide":`.${t.params.slideClass}`;return!!e.target.matches(i)||t.slides.filter((t=>t.contains(e.target))).length>0}function f(e){if("mouse"===e.pointerType&&c.splice(0,c.length),!v(e))return;const i=t.params.zoom;if(o=!1,n=!1,c.push(e),!(c.length<2)){if(o=!0,d.scaleStart=h(),!d.slideEl){d.slideEl=e.target.closest(`.${t.params.slideClass}, swiper-slide`),d.slideEl||(d.slideEl=t.slides[t.activeIndex]);let a=d.slideEl.querySelector(`.${i.containerClass}`);if(a&&(a=a.querySelectorAll("picture, img, svg, canvas, .swiper-zoom-target")[0]),d.imageEl=a,d.imageWrapEl=a?elementParents(d.imageEl,`.${i.containerClass}`)[0]:void 0,!d.imageWrapEl)return void(d.imageEl=void 0);d.maxRatio=E()}if(d.imageEl){const[e,t]=function(){if(c.length<2)return{x:null,y:null};const e=d.imageEl.getBoundingClientRect();return[(c[0].pageX+(c[1].pageX-c[0].pageX)/2-e.x-s.scrollX)/l,(c[0].pageY+(c[1].pageY-c[0].pageY)/2-e.y-s.scrollY)/l]}();d.originX=e,d.originY=t,d.imageEl.style.transitionDuration="0ms"}m=!0}}function x(e){if(!v(e))return;const i=t.params.zoom,a=t.zoom,r=c.findIndex((t=>t.pointerId===e.pointerId));r>=0&&(c[r]=e),c.length<2||(n=!0,d.scaleMove=h(),d.imageEl&&(a.scale=d.scaleMove/d.scaleStart*l,a.scale>d.maxRatio&&(a.scale=d.maxRatio-1+(a.scale-d.maxRatio+1)**.5),a.scale=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((i,r)=>{(i===t||i.__emitterProxy&&i.__emitterProxy===t)&&s.eventsListeners[e].splice(r,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,i;for(var r=arguments.length,n=new Array(r),a=0;a1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const i=extend({},t,{el:s});e.push(new Swiper(i))})),e}const a=this;a.__swiper__=!0,a.support=getSupport(),a.device=getDevice({userAgent:t.userAgent}),a.browser=getBrowser(),a.eventsListeners={},a.eventsAnyListeners=[],a.modules=[...a.__modules__],t.modules&&Array.isArray(t.modules)&&a.modules.push(...t.modules);const l={};a.modules.forEach((e=>{e({params:t,swiper:a,extendParams:moduleExtendParams(t,l),on:a.on.bind(a),once:a.once.bind(a),off:a.off.bind(a),emit:a.emit.bind(a)})}));const o=extend({},defaults,l);return a.params=extend({},o,extendedDefaults,t),a.originalParams=extend({},a.params),a.passedParams=extend({},t),a.params&&a.params.on&&Object.keys(a.params.on).forEach((e=>{a.on(e,a.params.on[e])})),a.params&&a.params.onAny&&a.onAny(a.params.onAny),Object.assign(a,{enabled:a.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===a.params.direction,isVertical:()=>"vertical"===a.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:a.params.allowSlideNext,allowSlidePrev:a.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:a.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:a.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),a.emit("_swiper"),a.params.init&&a.init(),a}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,i=elementChildren(t,`.${s.slideClass}, swiper-slide`),r=elementIndex(i[0]);return elementIndex(e)-r}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=elementChildren(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const i=s.minTranslate(),r=(s.maxTranslate()-i)*e+i;s.translateTo(r,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const i=e.getSlideClasses(s);t.push({slideEl:s,classNames:i}),e.emit("_slideClass",s,i)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:i,slidesGrid:r,slidesSizesGrid:n,size:a,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=i[l]?Math.ceil(i[l].swiperSlideSize):0;for(let s=l+1;s=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};const $=(e,t)=>{if(!e||e.destroyed||!e.params)return;const s=t.closest(e.isElement?"swiper-slide":`.${e.params.slideClass}`);if(s){let t=s.querySelector(`.${e.params.lazyPreloaderClass}`);!t&&e.isElement&&(s.shadowRoot?t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`):requestAnimationFrame((()=>{s.shadowRoot&&(t=s.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`),t&&t.remove())}))),t&&t.remove()}},k=(e,t)=>{if(!e.slides[t])return;const s=e.slides[t].querySelector('[loading="lazy"]');s&&s.removeAttribute("loading")},O=e=>{if(!e||e.destroyed||!e.params)return;let t=e.params.lazyPreloadPrevNext;const s=e.slides.length;if(!s||!t||t<0)return;t=Math.min(t,s);const a="auto"===e.params.slidesPerView?e.slidesPerViewDynamic():Math.ceil(e.params.slidesPerView),i=e.activeIndex;if(e.params.grid&&e.params.grid.rows>1){const s=i,r=[s-t];return r.push(...Array.from({length:t}).map(((e,t)=>s+a+t))),void e.slides.forEach(((t,s)=>{r.includes(t.column)&&k(e,s)}))}const r=i+a-1;if(e.params.rewind||e.params.loop)for(let a=i-t;a<=r+t;a+=1){const t=(a%s+s)%s;(tr)&&k(e,t)}else for(let a=Math.max(i-t,0);a<=Math.min(r+t,s-1);a+=1)a!==i&&(a>r||a=0?x=parseFloat(x.replace("%",""))/100*r:"string"==typeof x&&(x=parseFloat(x)),e.virtualSize=-x,c.forEach((e=>{n?e.style.marginLeft="":e.style.marginRight="",e.style.marginBottom="",e.style.marginTop=""})),s.centeredSlides&&s.cssMode&&(u(a,"--swiper-centered-offset-before",""),u(a,"--swiper-centered-offset-after",""));const P=s.grid&&s.grid.rows>1&&e.grid;let L;P?e.grid.initSlides(c):e.grid&&e.grid.unsetSlides();const I="auto"===s.slidesPerView&&s.breakpoints&&Object.keys(s.breakpoints).filter((e=>void 0!==s.breakpoints[e].slidesPerView)).length>0;for(let a=0;a1){const e=[];return n.querySelectorAll(t.el).forEach((s=>{const a=p({},t,{el:s});e.push(new te(a))})),e}const l=this;l.__swiper__=!0,l.support=L(),l.device=I({userAgent:t.userAgent}),l.browser=z(),l.eventsListeners={},l.eventsAnyListeners=[],l.modules=[...l.__modules__],t.modules&&Array.isArray(t.modules)&&l.modules.push(...t.modules);const o={};l.modules.forEach((e=>{e({params:t,swiper:l,extendParams:Q(t,o),on:l.on.bind(l),once:l.once.bind(l),off:l.off.bind(l),emit:l.emit.bind(l)})}));const d=p({},Z,o);return l.params=p({},d,ee,t),l.originalParams=p({},l.params),l.passedParams=p({},t),l.params&&l.params.on&&Object.keys(l.params.on).forEach((e=>{l.on(e,l.params.on[e])})),l.params&&l.params.onAny&&l.onAny(l.params.onAny),Object.assign(l,{enabled:l.params.enabled,el:e,classNames:[],slides:[],slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===l.params.direction,isVertical:()=>"vertical"===l.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,cssOverflowAdjustment(){return Math.trunc(this.translate/2**23)*2**23},allowSlideNext:l.params.allowSlideNext,allowSlidePrev:l.params.allowSlidePrev,touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:l.params.focusableElements,lastClickTime:0,clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,startMoving:void 0,pointerId:null,touchId:null},allowClick:!0,allowTouchMove:l.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),l.emit("_swiper"),l.params.init&&l.init(),l}getDirectionLabel(e){return this.isHorizontal()?e:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[e]}getSlideIndex(e){const{slidesEl:t,params:s}=this,a=y(f(t,`.${s.slideClass}, swiper-slide`)[0]);return y(e)-a}getSlideIndexByData(e){return this.getSlideIndex(this.slides.filter((t=>1*t.getAttribute("data-swiper-slide-index")===e))[0])}recalcSlides(){const{slidesEl:e,params:t}=this;this.slides=f(e,`.${t.slideClass}, swiper-slide`)}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.forEach((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if("number"==typeof s.slidesPerView)return s.slidesPerView;if(s.centeredSlides){let e,t=a[l]?Math.ceil(a[l].swiperSlideSize):0;for(let s=l+1;s0?u:0),t&&(t.style.opacity=-u>0?-u:0)}}},setTransition:e=>{t.slides.map((e=>h(e))).forEach((t=>{t.style.transitionDuration=`${e}ms`,t.querySelectorAll(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").forEach((t=>{t.style.transitionDuration=`${e}ms`}))}))},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;de({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.style.transform=`translateX(calc(50% - ${e}px))`}for(let s=0;s