vendor: 4,433 bytes, line 1
1(function(){"use strict";try{if(typeof document<"u"){var i=document.createElement("style");i.appendChild(document.createTextNode(':root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-slides-offset-before);scroll-margin-inline-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-horizontal>.swiper-wrapper>.swiper-slide:last-child{margin-inline-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-slides-offset-before);scroll-margin-block-start:var(--swiper-slides-offset-before)}.swiper-css-mode.swiper-vertical>.swiper-wrapper>.swiper-slide:last-child{margin-block-end:var(--swiper-slides-offset-after)}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}
1.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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)}:root{--swiper-navigation-size: 44px}.swiper-button-prev,.swiper-button-next{position:absolute;width:var(--swiper-navigation-size);height:var(--swiper-navigation-size);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color, var(--swiper-theme-color))}.swiper-button-prev.swiper-button-disabled,.swiper-button-next.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev.swiper-button-hidden,.swiper-button-next.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-prev,.swiper-navigation-disabled .swiper-button-next{display:none!important}.swiper-button-prev ::slotted(svg),.swiper-button-prev svg,.swiper-button-next ::slotted(svg),.swiper-button-next svg{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;transform-origin:center;fill:currentColor;pointer-events:none}.swiper-button-lock{display:none}.swiper-button-prev,.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2))}.swiper-button-prev{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-button-prev .swiper-navigation-icon{transform:rotate(180deg)}.swiper-button-next{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev,.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal~.swiper-button-next{top:var(--swiper-navigation-top-offset, 50%);margin-top:calc(0px - (var(--swiper-navigation-size) / 2));margin-left:0}.swiper-horizontal .swiper-button-prev,.swiper-horizontal~.swiper-button-prev,.swiper-horizontal.swiper-rtl .swiper-button-next,.swiper-horizontal.swiper-rtl~.swiper-button-next{left:var(--swiper-navigation-sides-offset, 4px);right:auto}.swiper-horizontal .swiper-button-next,.swiper-horizontal~.swiper-button-next,.swiper-horizontal.swiper-rtl .swiper-button-prev,.swiper-horizontal.swiper-rtl~.swiper-button-prev{right:var(--swiper-navigation-sides-offset, 4px);left:auto}.swiper-horizontal .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal~.swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal~.swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl .swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl .swiper-button-next .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl~.swiper-button-next .swiper-navigation-icon{transform:rotate(180deg)}.swiper-horizontal.swiper-rtl .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl .swiper-button-prev .swiper-navigation-icon,.swiper-horizontal.swiper-rtl~.swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-horizontal.swiper-rtl~.swiper-button-prev .swiper-navigation-icon{transform:rotate(0)}.swiper-vertical .swiper-button-prev,.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-prev,.swiper-vertical~.swiper-button-next{left:var(--swiper-navigation-top-offset, 50%);right:auto;margin-left:calc(0px - (var(--swiper-navigation-size) / 2));margin-top:0}.swiper-vertical .swiper-button-prev,.swiper-vertical~.swiper-button-prev{top:var(--swiper-navigation-sides-offset, 4px);bottom:auto}.swiper-vertical .swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-vertical .swiper-button-prev .swiper-navigation-icon,.swiper-vertical~.swiper-button-prev ::slotted(.swiper-navigation-icon),.swiper-vertical~.swiper-button-prev .swiper-navigation-icon{transform:rotate(-90deg)}.swiper-vertical .swiper-button-next,.swiper-vertical~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset, 4px);top:auto}.swiper-vertical .swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-vertical .swiper-button-next .swiper-navigation-icon,.swiper-vertical~.swiper-button-next ::slotted(.swiper-navigation-icon),.swiper-vertical~.swiper-button-next .swiper-navigation-icon{transform:rotate(90deg)}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}
1.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius, 10px);position:relative;touch-action:none;
1background:var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset, 1%);bottom:var(--swiper-scrollbar-bottom, 4px);top:var(--swiper-scrollbar-top, auto);z-index:50;height:var(--swiper-scrollbar-size, 4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-vertical>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-vertical{position:absolute;left:var(--swiper-scrollbar-left, auto);right:var(--swiper-scrollbar-right, 4px);top:var(--swiper-scrollbar-sides-offset, 1%);z-index:50;width:var(--swiper-scrollbar-size, 4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));border-radius:var(--swiper-scrollbar-border-radius, 10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.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%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:"";background:#000;position:absolute;inset:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right{z-index:0;backface-visibility:hidden}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;backface-visibility:hidden;overflow:hidden}')),document.head.appendChild(i)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); 2import { ref as G, onUpdated as we, provide as Se, watch as Ge, nextTick as Ve, onMounted as be, onBeforeUnmount as ye, h as V, onBeforeUpdate as ke, computed as De } from "vue"; 3import { aJ as k, aK as Y, aL as N, aM as ue, aN as ae, aO as $, aP as Ne, aQ as H, aR as K, aS as Te, aT as xe, aU as Re, aV as Fe, aW as $e, aX as q, aY as fe, aZ as He, a_ as Z, a$ as je, b0 as ce } from "./package-entrypoint-D3U0TeG0.js"; 4let J; 5function We() { 6 const e = H(), s = Y(); 7 return { 8 smoothScroll: s.documentElement && s.documentElement.style && "scrollBehavior" in s.documentElement.style, 9 touch: !!("ontouchstart" in e || e.DocumentTouch && s instanceof e.DocumentTouch) 10 }; 11} 12function Ee() { 13 return J || (J = We()), J; 14} 15let Q; 16function Ye({ 17 userAgent: e 18} = {}) { 19 const s = Ee(), t = H(), i = t.navigator.platform, r = e || t.navigator.userAgent, n = { 20 ios: !1, 21 android: !1 22 }, l = t.screen.width, d = t.screen.height, a = r.match(/(Android);?[\s\/]+([\d.]+)?/); 23 let o = r.match(/(iPad)(?!\1).*OS\s([\d_]+)/); 24 const u = r.match(/(iPod)(.*OS\s([\d_]+))?/), f = !o && r.match(/(iPhone\sOS|iOS)\s([\d_]+)/), h = i === "Win32"; 25 let c = i === "MacIntel"; 26 const m = ["1024x1366", "1366x1024", "834x1194", "1194x834", "834x1112", "1112x834", "768x1024", "1024x768", "820x1180", "1180x820", "810x1080", "1080x810"]; 27 return !o && c && s.touch && m.indexOf(`${l}x${d}`) >= 0 && (o = r.match(/(Version)\/([\d.]+)/), o || (o = [0, 1, "13_0_0"]), c = !1), a && !h && (n.os = "android", n.android = !0), (o || f || u) && (n.os = "ios", n.ios = !0), n; 28} 29function Ce(e = {}) { 30 return Q || (Q = Ye(e)), Q; 31} 32let ee; 33function qe() { 34 const e = H(), s = Ce(); 35 let t = !1; 36 function i() { 37 const d = e.navigator.userAgent.toLowerCase(); 38 return d.indexOf("safari") >= 0 && d.indexOf("chrome") < 0 && d.indexOf("android") < 0; 39 } 40 if (i()) { 41 const d = String(e.navigator.userAgent); 42 if (d.includes("Version/")) { 43 const [a, o] = d.split("Version/")[1].split(" ")[0].split(".").map((u) => Number(u)); 44 t = a < 16 || a === 16 && o < 2; 45 } 46 }
vendor: 49,992 bytes, lines 47-1242
47 const r = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), n = i(), l = n || r && s.ios; 48 return { 49 isSafari: t || n, 50 needPerspectiveFix: t, 51 need3dFix: l, 52 isWebView: r 53 }; 54} 55function Pe() { 56 return ee || (ee = qe()), ee; 57} 58function Xe({ 59 swiper: e, 60 on: s, 61 emit: t 62}) { 63 const i = H(); 64 let r = null, n = null; 65 const l = () => { 66 !e || e.destroyed || !e.initialized || (t("beforeResize"), t("resize")); 67 }, d = () => { 68 !e || e.destroyed || !e.initialized || (r = new ResizeObserver((u) => { 69 n = i.requestAnimationFrame(() => { 70 const { 71 width: f, 72 height: h 73 } = e; 74 let c = f, m = h; 75 u.forEach(({ 76 contentBoxSize: g, 77 contentRect: C, 78 target: y 79 }) => { 80 y && y !== e.el || (c = C ? C.width : (g[0] || g).inlineSize, m = C ? C.height : (g[0] || g).blockSize); 81 }), (c !== f || m !== h) && l(); 82 }); 83 }), r.observe(e.el)); 84 }, a = () => { 85 n && i.cancelAnimationFrame(n), r && r.unobserve && e.el && (r.unobserve(e.el), r = null); 86 }, o = () => { 87 !e || e.destroyed || !e.initialized || t("orientationchange"); 88 }; 89 s("init", () => { 90 if (e.params.resizeObserver && typeof i.ResizeObserver < "u") { 91 d(); 92 return; 93 } 94 i.addEventListener("resize", l), i.addEventListener("orientationchange", o); 95 }), s("destroy", () => { 96 a(), i.removeEventListener("resize", l), i.removeEventListener("orientationchange", o); 97 }); 98} 99function Ue({ 100 swiper: e, 101 extendParams: s, 102 on: t, 103 emit: i 104}) { 105 const r = [], n = H(), l = (o, u = {}) => { 106 const f = n.MutationObserver || n.WebkitMutationObserver, h = new f((c) => { 107 if (e.__preventObserver__) return; 108 if (c.length === 1) { 109 i("observerUpdate", c[0]); 110 return; 111 } 112 const m = function() { 113 i("observerUpdate", c[0]); 114 }; 115 n.requestAnimationFrame ? n.requestAnimationFrame(m) : n.setTimeout(m, 0); 116 }); 117 h.observe(o, { 118 attributes: typeof u.attributes > "u" ? !0 : u.attributes, 119 childList: e.isElement || (typeof u.childList > "u" ? !0 : u).childList, 120 characterData: typeof u.characterData > "u" ? !0 : u.characterData 121 }), r.push(h); 122 }, d = () => { 123 if (e.params.observer) { 124 if (e.params.observeParents) { 125 const o = je(e.hostEl); 126 for (let u = 0; u < o.length; u += 1) 127 l(o[u]); 128 } 129 l(e.hostEl, { 130 childList: e.params.observeSlideChildren 131 }), l(e.wrapperEl, { 132 attributes: !1 133 }); 134 } 135 }, a = () => { 136 r.forEach((o) => { 137 o.disconnect(); 138 }), r.splice(0, r.length); 139 }; 140 s({ 141 observer: !1, 142 observeParents: !1, 143 observeSlideChildren: !1 144 }), t("init", d), t("destroy", a); 145} 146var Ke = { 147 on(e, s, t) { 148 const i = this; 149 if (!i.eventsListeners || i.destroyed || typeof s != "function") return i; 150 const r = t ? "unshift" : "push"; 151 return e.split(" ").forEach((n) => { 152 i.eventsListeners[n] || (i.eventsListeners[n] = []), i.eventsListeners[n][r](s); 153 }), i; 154 }, 155 once(e, s, t) { 156 const i = this; 157 if (!i.eventsListeners || i.destroyed || typeof s != "function") return i; 158 function r(...n) { 159 i.off(e, r), r.__emitterProxy && delete r.__emitterProxy, s.apply(i, n); 160 } 161 return r.__emitterProxy = s, i.on(e, r, t); 162 }, 163 onAny(e, s) { 164 const t = this; 165 if (!t.eventsListeners || t.destroyed || typeof e != "function") return t; 166 const i = s ? "unshift" : "push"; 167 return t.eventsAnyListeners.indexOf(e) < 0 && t.eventsAnyListeners[i](e), t; 168 }, 169 offAny(e) { 170 const s = this; 171 if (!s.eventsListeners || s.destroyed || !s.eventsAnyListeners) return s; 172 const t = s.eventsAnyListeners.indexOf(e); 173 return t >= 0 && s.eventsAnyListeners.splice(t, 1), s; 174 }, 175 off(e, s) { 176 const t = this; 177 return !t.eventsListeners || t.destroyed || !t.eventsListeners || e.split(" ").forEach((i) => { 178 typeof s > "u" ? t.eventsListeners[i] = [] : t.eventsListeners[i] && t.eventsListeners[i].forEach((r, n) => { 179 (r === s || r.__emitterProxy && r.__emitterProxy === s) && t.eventsListeners[i].splice(n, 1); 180 }); 181 }), t; 182 }, 183 emit(...e) { 184 const s = this; 185 if (!s.eventsListeners || s.destroyed || !s.eventsListeners) return s; 186 let t, i, r; 187 return typeof e[0] == "string" || Array.isArray(e[0]) ? (t = e[0], i = e.slice(1, e.length), r = s) : (t = e[0].events, i = e[0].data, r = e[0].context || s), i.unshift(r), (Array.isArray(t) ? t : t.split(" ")).forEach((l) => { 188 s.eventsAnyListeners && s.eventsAnyListeners.length && s.eventsAnyListeners.forEach((d) => { 189 d.apply(r, [l, ...i]); 190 }), s.eventsListeners && s.eventsListeners[l] && s.eventsListeners[l].forEach((d) => { 191 d.apply(r, i); 192 }); 193 }), s; 194 } 195}; 196function Ze() { 197 const e = this; 198 let s, t; 199 const i = e.el; 200 typeof e.params.width < "u" && e.params.width !== null ? s = e.params.width : s = i.clientWidth, typeof e.params.height < "u" && e.params.height !== null ? t = e.params.height : t = i.clientHeight, !(s === 0 && e.isHorizontal() || t === 0 && e.isVertical()) && (s = s - parseInt($(i, "padding-left") || 0, 10) - parseInt($(i, "padding-right") || 0, 10), t = t - parseInt($(i, "padding-top") || 0, 10) - parseInt($(i, "padding-bottom") || 0, 10), Number.isNaN(s) && (s = 0), Number.isNaN(t) && (t = 0), Object.assign(e, { 201 width: s, 202 height: t, 203 size: e.isHorizontal() ? s : t 204 })); 205} 206function Je() { 207 const e = this; 208 function s(x, b) { 209 return parseFloat(x.getPropertyValue(e.getDirectionLabel(b)) || 0); 210 } 211 const t = e.params, { 212 wrapperEl: i, 213 slidesEl: r, 214 rtlTranslate: n, 215 wrongRTL: l 216 } = e, d = e.virtual && t.virtual.enabled, a = d ? e.virtual.slides.length : e.slides.length, o = N(r, `.${e.params.slideClass}, swiper-slide`), u = d ? e.virtual.slides.length : o.length; 217 let f = []; 218 const h = [], c = []; 219 let m = t.slidesOffsetBefore; 220 typeof m == "function" && (m = t.slidesOffsetBefore.call(e)); 221 let g = t.slidesOffsetAfter; 222 typeof g == "function" && (g = t.slidesOffsetAfter.call(e)); 223 const C = e.snapGrid.length, y = e.slidesGrid.length, v = e.size - m - g; 224 let w = t.spaceBetween, E = -m, S = 0, M = 0; 225 if (typeof v > "u") 226 return; 227 typeof w == "string" && w.indexOf("%") >= 0 ? w = parseFloat(w.replace("%", "")) / 100 * v : typeof w == "string" && (w = parseFloat(w)), e.virtualSize = -w - m - g, o.forEach((x) => { 228 n ? x.style.marginLeft = "" : x.style.marginRight = "", x.style.marginBottom = "", x.style.marginTop = ""; 229 }), t.centeredSlides && t.cssMode && (q(i, "--swiper-centered-offset-before", ""), q(i, "--swiper-centered-offset-after", "")), t.cssMode && (q(i, "--swiper-slides-offset-before", `${m}px`), q(i, "--swiper-slides-offset-after", `${g}px`)); 230 const T = t.grid && t.grid.rows > 1 && e.grid; 231 T ? e.grid.initSlides(o) : e.grid && e.grid.unsetSlides(); 232 let p; 233 const O = t.slidesPerView === "auto" && t.breakpoints && Object.keys(t.breakpoints).filter((x) => typeof t.breakpoints[x].slidesPerView < "u").length > 0; 234 for (let x = 0; x < u; x += 1) { 235 p = 0; 236 const b = o[x]; 237 if (!(b && (T && e.grid.updateSlide(x, b, o), $(b, "display") === "none"))) { 238 if (d && t.slidesPerView === "auto") 239 t.virtual.slidesPerViewAutoSlideSize && (p = t.virtual.slidesPerViewAutoSlideSize), p && b && (t.roundLengths && (p = Math.floor(p)), b.style[e.getDirectionLabel("width")] = `${p}px`); 240 else if (t.slidesPerView === "auto") { 241 O && (b.style[e.getDirectionLabel("width")] = ""); 242 const I = getComputedStyle(b), z = b.style.transform, L = b.style.webkitTransform; 243 if (z && (b.style.transform = "none"), L && (b.style.webkitTransform = "none"), t.roundLengths) 244 p = e.isHorizontal() ? fe(b, "width") : fe(b, "height"); 245 else { 246 const B = s(I, "width"), R = s(I, "padding-left"), j = s(I, "padding-right"), P = s(I, "margin-left"), A = s(I, "margin-right"), _ = I.getPropertyValue("box-sizing"); 247 if (_ && _ === "border-box") 248 p = B + P + A; 249 else { 250 const { 251 clientWidth: F, 252 offsetWidth: _e 253 } = b; 254 p = B + R + j + P + A + (_e - F); 255 } 256 } 257 z && (b.style.transform = z), L && (b.style.webkitTransform = L), t.roundLengths && (p = Math.floor(p)); 258 } else 259 p = (v - (t.slidesPerView - 1) * w) / t.slidesPerView, t.roundLengths && (p = Math.floor(p)), b && (b.style[e.getDirectionLabel("width")] = `${p}px`); 260 b && (b.swiperSlideSize = p), c.push(p), t.centeredSlides ? (E = E + p / 2 + S / 2 + w, S === 0 && x !== 0 && (E = E - v / 2 - w), x === 0 && (E = E - v / 2 - w), Math.abs(E) < 1 / 1e3 && (E = 0), t.roundLengths && (E = Math.floor(E)), M % t.slidesPerGroup === 0 && f.push(E), h.push(E)) : (t.roundLengths && (E = Math.floor(E)), (M - Math.min(e.params.slidesPerGroupSkip, M)) % e.params.slidesPerGroup === 0 && f.push(E), h.push(E), E = E + p + w), e.virtualSize += p + w, S = p, M += 1; 261 } 262 } 263 if (e.virtualSize = Math.max(e.virtualSize, v) + g, n && l && (t.effect === "slide" || t.effect === "coverflow") && (i.style.width = `${e.virtualSize + w}px`), t.setWrapperSize && (i.style[e.getDirectionLabel("width")] = `${e.virtualSize + w}px`), T && e.grid.updateWrapperSize(p, f), !t.centeredSlides) { 264 const x = t.slidesPerView !== "auto" && t.slidesPerView % 1 !== 0, b = t.snapToSlideEdge && !t.loop && (t.slidesPerView === "auto" || x); 265 let I = f.length; 266 if (b) { 267 let L; 268 if (t.slidesPerView === "auto") { 269 L = 1; 270 let B = 0; 271 for (let R = c.length - 1; R >= 0 && (B += c[R] + (R < c.length - 1 ? w : 0), B <= v); R -= 1) 272 L = c.length - R; 273 } else 274 L = Math.floor(t.slidesPerView); 275 I = Math.max(u - L, 0); 276 } 277 const z = []; 278 for (let L = 0; L < f.length; L += 1) { 279 let B = f[L]; 280 t.roundLengths && (B = Math.floor(B)), b ? L <= I && z.push(B) : f[L] <= e.virtualSize - v && z.push(B); 281 } 282 f = z, Math.floor(e.virtualSize - v) - Math.floor(f[f.length - 1]) > 1 && (b || f.push(e.virtualSize - v)); 283 } 284 if (d && t.loop) { 285 const x = c[0] + w; 286 if (t.slidesPerGroup > 1) { 287 const b = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / t.slidesPerGroup), I = x * t.slidesPerGroup; 288 for (let z = 0; z < b; z += 1) 289 f.push(f[f.length - 1] + I); 290 } 291 for (let b = 0; b < e.virtual.slidesBefore + e.virtual.slidesAfter; b += 1) 292 t.slidesPerGroup === 1 && f.push(f[f.length - 1] + x), h.push(h[h.length - 1] + x), e.virtualSize += x; 293 } 294 if (f.length === 0 && (f = [0]), w !== 0) { 295 const x = e.isHorizontal() && n ? "marginLeft" : e.getDirectionLabel("marginRight"); 296 o.filter((b, I) => !t.cssMode || t.loop ? !0 : I !== o.length - 1).forEach((b) => { 297 b.style[x] = `${w}px`; 298 }); 299 } 300 if (t.centeredSlides && t.centeredSlidesBounds) { 301 let x = 0; 302 c.forEach((I) => { 303 x += I + (w || 0); 304 }), x -= w; 305 const b = x > v ? x - v : 0; 306 f = f.map((I) => I <= 0 ? -m : I > b ? b + g : I); 307 } 308 if (t.centerInsufficientSlides) { 309 let x = 0; 310 if (c.forEach((b) => { 311 x += b + (w || 0); 312 }), x -= w, x < v) { 313 const b = (v - x) / 2; 314 f.forEach((I, z) => { 315 f[z] = I - b; 316 }), h.forEach((I, z) => { 317 h[z] = I + b; 318 }); 319 } 320 } 321 if (Object.assign(e, { 322 slides: o, 323 snapGrid: f, 324 slidesGrid: h, 325 slidesSizesGrid: c 326 }), t.centeredSlides && t.cssMode && !t.centeredSlidesBounds) { 327 q(i, "--swiper-centered-offset-before", `${-f[0]}px`), q(i, "--swiper-centered-offset-after", `${e.size / 2 - c[c.length - 1] / 2}px`); 328 const x = -e.snapGrid[0], b = -e.slidesGrid[0]; 329 e.snapGrid = e.snapGrid.map((I) => I + x), e.slidesGrid = e.slidesGrid.map((I) => I + b); 330 } 331 if (u !== a && e.emit("slidesLengthChange"), f.length !== C && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), h.length !== y && e.emit("slidesGridLengthChange"), t.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !d && !t.cssMode && (t.effect === "slide" || t.effect === "fade")) { 332 const x = `${t.containerModifierClass}backface-hidden`, b = e.el.classList.contains(x); 333 u <= t.maxBackfaceHiddenSlides ? b || e.el.classList.add(x) : b && e.el.classList.remove(x); 334 } 335} 336function Qe(e) { 337 const s = this, t = [], i = s.virtual && s.params.virtual.enabled; 338 let r = 0, n; 339 typeof e == "number" ? s.setTransition(e) : e === !0 && s.setTransition(s.params.speed); 340 const l = (d) => i ? s.slides[s.getSlideIndexByData(d)] : s.slides[d]; 341 if (s.params.slidesPerView !== "auto" && s.params.slidesPerView > 1) 342 if (s.params.centeredSlides) 343 (s.visibleSlides || []).forEach((d) => { 344 t.push(d); 345 }); 346 else 347 for (n = 0; n < Math.ceil(s.params.slidesPerView); n += 1) { 348 const d = s.activeIndex + n; 349 if (d > s.slides.length && !i) break; 350 t.push(l(d)); 351 } 352 else 353 t.push(l(s.activeIndex)); 354 for (n = 0; n < t.length; n += 1) 355 if (typeof t[n] < "u") { 356 const d = t[n].offsetHeight; 357 r = d > r ? d : r; 358 } 359 (r || r === 0) && (s.wrapperEl.style.height = `${r}px`); 360} 361function et() { 362 const e = this, s = e.slides, t = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0; 363 for (let i = 0; i < s.length; i += 1) 364 s[i].swiperSlideOffset = (e.isHorizontal() ? s[i].offsetLeft : s[i].offsetTop) - t - e.cssOverflowAdjustment(); 365} 366const pe = (e, s, t) => { 367 s && !e.classList.contains(t) ? e.classList.add(t) : !s && e.classList.contains(t) && e.classList.remove(t); 368}; 369function tt(e = this && this.translate || 0) { 370 const s = this, t = s.params, { 371 slides: i, 372 rtlTranslate: r, 373 snapGrid: n 374 } = s; 375 if (i.length === 0) return; 376 typeof i[0].swiperSlideOffset > "u" && s.updateSlidesOffset(); 377 let l = -e; 378 r && (l = e), s.visibleSlidesIndexes = [], s.visibleSlides = []; 379 let d = t.spaceBetween; 380 typeof d == "string" && d.indexOf("%") >= 0 ? d = parseFloat(d.replace("%", "")) / 100 * s.size : typeof d == "string" && (d = parseFloat(d)); 381 for (let a = 0; a < i.length; a += 1) { 382 const o = i[a]; 383 let u = o.swiperSlideOffset; 384 t.cssMode && t.centeredSlides && (u -= i[0].swiperSlideOffset); 385 const f = (l + (t.centeredSlides ? s.minTranslate() : 0) - u) / (o.swiperSlideSize + d), h = (l - n[0] + (t.centeredSlides ? s.minTranslate() : 0) - u) / (o.swiperSlideSize + d), c = -(l - u), m = c + s.slidesSizesGrid[a], g = c >= 0 && c <= s.size - s.slidesSizesGrid[a], C = c >= 0 && c < s.size - 1 || m > 1 && m <= s.size || c <= 0 && m >= s.size; 386 C && (s.visibleSlides.push(o), s.visibleSlidesIndexes.push(a)), pe(o, C, t.slideVisibleClass), pe(o, g, t.slideFullyVisibleClass), o.progress = r ? -f : f, o.originalProgress = r ? -h : h; 387 } 388} 389function it(e) { 390 const s = this; 391 if (typeof e > "u") { 392 const u = s.rtlTranslate ? -1 : 1; 393 e = s && s.translate && s.translate * u || 0; 394 } 395 const t = s.params, i = s.maxTranslate() - s.minTranslate(); 396 let { 397 progress: r, 398 isBeginning: n, 399 isEnd: l, 400 progressLoop: d 401 } = s; 402 const a = n, o = l; 403 if (i === 0) 404 r = 0, n = !0, l = !0; 405 else { 406 r = (e - s.minTranslate()) / i; 407 const u = Math.abs(e - s.minTranslate()) < 1, f = Math.abs(e - s.maxTranslate()) < 1; 408 n = u || r <= 0, l = f || r >= 1, u && (r = 0), f && (r = 1); 409 } 410 if (t.loop) { 411 const u = s.getSlideIndexByData(0), f = s.getSlideIndexByData(s.slides.length - 1), h = s.slidesGrid[u], c = s.slidesGrid[f], m = s.slidesGrid[s.slidesGrid.length - 1], g = Math.abs(e); 412 g >= h ? d = (g - h) / m : d = (g + m - c) / m, d > 1 && (d -= 1); 413 } 414 Object.assign(s, { 415 progress: r, 416 progressLoop: d, 417 isBeginning: n, 418 isEnd: l 419 }), (t.watchSlidesProgress || t.centeredSlides && t.autoHeight) && s.updateSlidesProgress(e), n && !a && s.emit("reachBeginning toEdge"), l && !o && s.emit("reachEnd toEdge"), (a && !n || o && !l) && s.emit("fromEdge"), s.emit("progress", r); 420} 421const te = (e, s, t) => { 422 s && !e.classList.contains(t) ? e.classList.add(t) : !s && e.classList.contains(t) && e.classList.remove(t); 423}; 424function st() { 425 const e = this, { 426 slides: s, 427 params: t, 428 slidesEl: i, 429 activeIndex: r 430 } = e, n = e.virtual && t.virtual.enabled, l = e.grid && t.grid && t.grid.rows > 1, d = (f) => N(i, `.${t.slideClass}${f}, swiper-slide${f}`)[0]; 431 let a, o, u; 432 if (n) 433 if (t.loop) { 434 let f = r - e.virtual.slidesBefore; 435 f < 0 && (f = e.virtual.slides.length + f), f >= e.virtual.slides.length && (f -= e.virtual.slides.length), a = d(`[data-swiper-slide-index="${f}"]`); 436 } else 437 a = d(`[data-swiper-slide-index="${r}"]`); 438 else 439 l ? (a = s.find((f) => f.column === r), u = s.find((f) => f.column === r + 1), o = s.find((f) => f.column === r - 1)) : a = s[r]; 440 a && (l || (u = Fe(a, `.${t.slideClass}, swiper-slide`)[0], t.loop && !u && (u = s[0]), o = $e(a, `.${t.slideClass}, swiper-slide`)[0], t.loop && !o === 0 && (o = s[s.length - 1]))), s.forEach((f) => { 441 te(f, f === a, t.slideActiveClass), te(f, f === u, t.slideNextClass), te(f, f === o, t.slidePrevClass); 442 }), e.emitSlidesClasses(); 443} 444const U = (e, s) => { 445 if (!e || e.destroyed || !e.params) return; 446 const t = () => e.isElement ? "swiper-slide" : `.${e.params.slideClass}`, i = s.closest(t()); 447 if (i) { 448 let r = i.querySelector(`.${e.params.lazyPreloaderClass}`); 449 !r && e.isElement && (i.shadowRoot ? r = i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`) : requestAnimationFrame(() => { 450 i.shadowRoot && (r = i.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`), r && !r.lazyPreloaderManaged && r.remove()); 451 })), r && !r.lazyPreloaderManaged && r.remove(); 452 } 453}, ie = (e, s) => { 454 if (!e.slides[s]) return; 455 const t = e.slides[s].querySelector('[loading="lazy"]'); 456 t && t.removeAttribute("loading"); 457}, le = (e) => { 458 if (!e || e.destroyed || !e.params) return; 459 let s = e.params.lazyPreloadPrevNext; 460 const t = e.slides.length; 461 if (!t || !s || s < 0) return; 462 s = Math.min(s, t); 463 const i = e.params.slidesPerView === "auto" ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), r = e.activeIndex; 464 if (e.params.grid && e.params.grid.rows > 1) { 465 const l = r, d = [l - s]; 466 d.push(...Array.from({ 467 length: s 468 }).map((a, o) => l + i + o)), e.slides.forEach((a, o) => { 469 d.includes(a.column) && ie(e, o); 470 }); 471 return; 472 } 473 const n = r + i - 1; 474 if (e.params.rewind || e.params.loop) 475 for (let l = r - s; l <= n + s; l += 1) { 476 const d = (l % t + t) % t; 477 (d < r || d > n) && ie(e, d); 478 } 479 else 480 for (let l = Math.max(r - s, 0); l <= Math.min(n + s, t - 1); l += 1) 481 l !== r && (l > n || l < r) && ie(e, l); 482}; 483function nt(e) { 484 const { 485 slidesGrid: s, 486 params: t 487 } = e, i = e.rtlTranslate ? e.translate : -e.translate; 488 let r; 489 for (let n = 0; n < s.length; n += 1) 490 typeof s[n + 1] < "u" ? i >= s[n] && i < s[n + 1] - (s[n + 1] - s[n]) / 2 ? r = n : i >= s[n] && i < s[n + 1] && (r = n + 1) : i >= s[n] && (r = n); 491 return t.normalizeSlideIndex && (r < 0 || typeof r > "u") && (r = 0), r; 492} 493function rt(e) { 494 const s = this, t = s.rtlTranslate ? s.translate : -s.translate, { 495 snapGrid: i, 496 params: r, 497 activeIndex: n, 498 realIndex: l, 499 snapIndex: d 500 } = s; 501 let a = e, o; 502 const u = (c) => { 503 let m = c - s.virtual.slidesBefore; 504 return m < 0 && (m = s.virtual.slides.length + m), m >= s.virtual.slides.length && (m -= s.virtual.slides.length), m; 505 }; 506 if (typeof a > "u" && (a = nt(s)), i.indexOf(t) >= 0) 507 o = i.indexOf(t); 508 else { 509 const c = Math.min(r.slidesPerGroupSkip, a); 510 o = c + Math.floor((a - c) / r.slidesPerGroup); 511 } 512 if (o >= i.length && (o = i.length - 1), a === n && !s.params.loop) { 513 o !== d && (s.snapIndex = o, s.emit("snapIndexChange")); 514 return; 515 } 516 if (a === n && s.params.loop && s.virtual && s.params.virtual.enabled) { 517 s.realIndex = u(a); 518 return; 519 } 520 const f = s.grid && r.grid && r.grid.rows > 1; 521 let h; 522 if (s.virtual && r.virtual.enabled) 523 r.loop ? h = u(a) : h = a; 524 else if (f) { 525 const c = s.slides.find((g) => g.column === a); 526 let m = parseInt(c.getAttribute("data-swiper-slide-index"), 10); 527 Number.isNaN(m) && (m = Math.max(s.slides.indexOf(c), 0)), h = Math.floor(m / r.grid.rows); 528 } else if (s.slides[a]) { 529 const c = s.slides[a].getAttribute("data-swiper-slide-index"); 530 c ? h = parseInt(c, 10) : h = a; 531 } else 532 h = a; 533 Object.assign(s, { 534 previousSnapIndex: d, 535 snapIndex: o, 536 previousRealIndex: l, 537 realIndex: h, 538 previousIndex: n, 539 activeIndex: a 540 }), s.initialized && le(s), s.emit("activeIndexChange"), s.emit("snapIndexChange"), (s.initialized || s.params.runCallbacksOnInit) && (l !== h && s.emit("realIndexChange"), s.emit("slideChange")); 541} 542function at(e, s) { 543 const t = this, i = t.params; 544 let r = e.closest(`.${i.slideClass}, swiper-slide`); 545 !r && t.isElement && s && s.length > 1 && s.includes(e) && [...s.slice(s.indexOf(e) + 1, s.length)].forEach((d) => { 546 !r && d.matches && d.matches(`.${i.slideClass}, swiper-slide`) && (r = d); 547 }); 548 let n = !1, l; 549 if (r) { 550 for (let d = 0; d < t.slides.length; d += 1) 551 if (t.slides[d] === r) { 552 n = !0, l = d; 553 break; 554 } 555 } 556 if (r && n) 557 t.clickedSlide = r, t.virtual && t.params.virtual.enabled ? t.clickedIndex = parseInt(r.getAttribute("data-swiper-slide-index"), 10) : t.clickedIndex = l; 558 else { 559 t.clickedSlide = void 0, t.clickedIndex = void 0; 560 return; 561 } 562 i.slideToClickedSlide && t.clickedIndex !== void 0 && t.clickedIndex !== t.activeIndex && t.slideToClickedSlide(); 563} 564var lt = { 565 updateSize: Ze, 566 updateSlides: Je, 567 updateAutoHeight: Qe, 568 updateSlidesOffset: et, 569 updateSlidesProgress: tt, 570 updateProgress: it, 571 updateSlidesClasses: st, 572 updateActiveIndex: rt, 573 updateClickedSlide: at 574}; 575function ot(e = this.isHorizontal() ? "x" : "y") { 576 const s = this, { 577 params: t, 578 rtlTranslate: i, 579 translate: r, 580 wrapperEl: n 581 } = s; 582 if (t.virtualTranslate) 583 return i ? -r : r; 584 if (t.cssMode) 585 return r; 586 let l = Re(n, e); 587 return l += s.cssOverflowAdjustment(), i && (l = -l), l || 0; 588} 589function dt(e, s) { 590 const t = this, { 591 rtlTranslate: i, 592 params: r, 593 wrapperEl: n, 594 progress: l 595 } = t; 596 let d = 0, a = 0; 597 const o = 0; 598 t.isHorizontal() ? d = i ? -e : e : a = e, r.roundLengths && (d = Math.floor(d), a = Math.floor(a)), t.previousTranslate = t.translate, t.translate = t.isHorizontal() ? d : a, r.cssMode ? n[t.isHorizontal() ? "scrollLeft" : "scrollTop"] = t.isHorizontal() ? -d : -a : r.virtualTranslate || (t.isHorizontal() ? d -= t.cssOverflowAdjustment() : a -= t.cssOverflowAdjustment(), n.style.transform = `translate3d(${d}px, ${a}px, ${o}px)`); 599 let u; 600 const f = t.maxTranslate() - t.minTranslate(); 601 f === 0 ? u = 0 : u = (e - t.minTranslate()) / f, u !== l && t.updateProgress(e), t.emit("setTranslate", t.translate, s); 602} 603function ut() { 604 return -this.snapGrid[0]; 605} 606function ft() { 607 return -this.snapGrid[this.snapGrid.length - 1]; 608} 609function ct(e = 0, s = this.params.speed, t = !0, i = !0, r) { 610 const n = this, { 611 params: l, 612 wrapperEl: d 613 } = n; 614 if (n.animating && l.preventInteractionOnTransition) 615 return !1; 616 const a = n.minTranslate(), o = n.maxTranslate(); 617 let u; 618 if (i && e > a ? u = a : i && e < o ? u = o : u = e, n.updateProgress(u), l.cssMode) { 619 const f = n.isHorizontal(); 620 if (s === 0) 621 d[f ? "scrollLeft" : "scrollTop"] = -u; 622 else { 623 if (!n.support.smoothScroll) 624 return xe({ 625 swiper: n, 626 targetPosition: -u, 627 side: f ? "left" : "top" 628 }), !0; 629 d.scrollTo({ 630 [f ? "left" : "top"]: -u, 631 behavior: "smooth" 632 }); 633 } 634 return !0; 635 } 636 return s === 0 ? (n.setTransition(0), n.setTranslate(u), t && (n.emit("beforeTransitionStart", s, r), n.emit("transitionEnd"))) : (n.setTransition(s), n.setTranslate(u), t && (n.emit("beforeTransitionStart", s, r), n.emit("transitionStart")), n.animating || (n.animating = !0, n.onTranslateToWrapperTransitionEnd || (n.onTranslateToWrapperTransitionEnd = function(h) { 637 !n || n.destroyed || h.target === this && (n.wrapperEl.removeEventListener("transitionend", n.onTranslateToWrapperTransitionEnd), n.onTranslateToWrapperTransitionEnd = null, delete n.onTranslateToWrapperTransitionEnd, n.animating = !1, t && n.emit("transitionEnd")); 638 }), n.wrapperEl.addEventListener("transitionend", n.onTranslateToWrapperTransitionEnd))), !0; 639} 640var pt = { 641 getTranslate: ot, 642 setTranslate: dt, 643 minTranslate: ut, 644 maxTranslate: ft, 645 translateTo: ct 646}; 647function ht(e, s) { 648 const t = this; 649 t.params.cssMode || (t.wrapperEl.style.transitionDuration = `${e}ms`, t.wrapperEl.style.transitionDelay = e === 0 ? "0ms" : ""), t.emit("setTransition", e, s); 650} 651function Me({ 652 swiper: e, 653 runCallbacks: s, 654 direction: t, 655 step: i 656}) { 657 const { 658 activeIndex: r, 659 previousIndex: n 660 } = e; 661 let l = t; 662 l || (r > n ? l = "next" : r < n ? l = "prev" : l = "reset"), e.emit(`transition${i}`), s && l === "reset" ? e.emit(`slideResetTransition${i}`) : s && r !== n && (e.emit(`slideChangeTransition${i}`), l === "next" ? e.emit(`slideNextTransition${i}`) : e.emit(`slidePrevTransition${i}`)); 663} 664function mt(e = !0, s) { 665 const t = this, { 666 params: i 667 } = t; 668 i.cssMode || (i.autoHeight && t.updateAutoHeight(), Me({ 669 swiper: t, 670 runCallbacks: e, 671 direction: s, 672 step: "Start" 673 })); 674} 675function gt(e = !0, s) { 676 const t = this, { 677 params: i 678 } = t; 679 t.animating = !1, !i.cssMode && (t.setTransition(0), Me({ 680 swiper: t, 681 runCallbacks: e, 682 direction: s, 683 step: "End" 684 })); 685} 686var vt = { 687 setTransition: ht, 688 transitionStart: mt, 689 transitionEnd: gt 690}; 691function wt(e = 0, s, t = !0, i, r) { 692 typeof e == "string" && (e = parseInt(e, 10)); 693 const n = this; 694 let l = e; 695 l < 0 && (l = 0); 696 const { 697 params: d, 698 snapGrid: a, 699 slidesGrid: o, 700 previousIndex: u, 701 activeIndex: f, 702 rtlTranslate: h, 703 wrapperEl: c, 704 enabled: m 705 } = n; 706 if (!m && !i && !r || n.destroyed || n.animating && d.preventInteractionOnTransition) 707 return !1; 708 typeof s > "u" && (s = n.params.speed); 709 const g = Math.min(n.params.slidesPerGroupSkip, l); 710 let C = g + Math.floor((l - g) / n.params.slidesPerGroup); 711 C >= a.length && (C = a.length - 1); 712 const y = -a[C]; 713 if (d.normalizeSlideIndex) 714 for (let T = 0; T < o.length; T += 1) { 715 const p = -Math.floor(y * 100), O = Math.floor(o[T] * 100), x = Math.floor(o[T + 1] * 100); 716 typeof o[T + 1] < "u" ? p >= O && p < x - (x - O) / 2 ? l = T : p >= O && p < x && (l = T + 1) : p >= O && (l = T); 717 } 718 if (n.initialized && l !== f && (!n.allowSlideNext && (h ? y > n.translate && y > n.minTranslate() : y < n.translate && y < n.minTranslate()) || !n.allowSlidePrev && y > n.translate && y > n.maxTranslate() && (f || 0) !== l)) 719 return !1; 720 l !== (u || 0) && t && n.emit("beforeSlideChangeStart"), n.updateProgress(y); 721 let v; 722 l > f ? v = "next" : l < f ? v = "prev" : v = "reset"; 723 const w = n.virtual && n.params.virtual.enabled; 724 if (!(w && r) && (h && -y === n.translate || !h && y === n.translate)) 725 return n.updateActiveIndex(l), d.autoHeight && n.updateAutoHeight(), n.updateSlidesClasses(), d.effect !== "slide" && n.setTranslate(y), v !== "reset" && (n.transitionStart(t, v), n.transitionEnd(t, v)), !1; 726 if (d.cssMode) { 727 const T = n.isHorizontal(), p = h ? y : -y; 728 if (s === 0) 729 w && (n.wrapperEl.style.scrollSnapType = "none", n._immediateVirtual = !0), w && !n._cssModeVirtualInitialSet && n.params.initialSlide > 0 ? (n._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => { 730 c[T ? "scrollLeft" : "scrollTop"] = p; 731 })) : c[T ? "scrollLeft" : "scrollTop"] = p, w && requestAnimationFrame(() => { 732 n.wrapperEl.style.scrollSnapType = "", n._immediateVirtual = !1; 733 }); 734 else { 735 if (!n.support.smoothScroll) 736 return xe({ 737 swiper: n, 738 targetPosition: p, 739 side: T ? "left" : "top" 740 }), !0; 741 c.scrollTo({ 742 [T ? "left" : "top"]: p, 743 behavior: "smooth" 744 }); 745 } 746 return !0; 747 } 748 const M = Pe().isSafari; 749 return w && !r && M && n.isElement && n.virtual.update(!1, !1, l), n.setTransition(s), n.setTranslate(y), n.updateActiveIndex(l), n.updateSlidesClasses(), n.emit("beforeTransitionStart", s, i), n.transitionStart(t, v), s === 0 ? n.transitionEnd(t, v) : n.animating || (n.animating = !0, n.onSlideToWrapperTransitionEnd || (n.onSlideToWrapperTransitionEnd = function(p) { 750 !n || n.destroyed || p.target === this && (n.wrapperEl.removeEventListener("transitionend", n.onSlideToWrapperTransitionEnd), n.onSlideToWrapperTransitionEnd = null, delete n.onSlideToWrapperTransitionEnd, n.transitionEnd(t, v)); 751 }), n.wrapperEl.addEventListener("transitionend", n.onSlideToWrapperTransitionEnd)), !0; 752} 753function St(e = 0, s, t = !0, i) { 754 typeof e == "string" && (e = parseInt(e, 10)); 755 const r = this; 756 if (r.destroyed) return; 757 typeof s > "u" && (s = r.params.speed); 758 const n = r.grid && r.params.grid && r.params.grid.rows > 1; 759 let l = e; 760 if (r.params.loop) 761 if (r.virtual && r.params.virtual.enabled) 762 l = l + r.virtual.slidesBefore; 763 else { 764 let d; 765 if (n) { 766 const g = l * r.params.grid.rows; 767 d = r.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === g).column; 768 } else 769 d = r.getSlideIndexByData(l); 770 const a = n ? Math.ceil(r.slides.length / r.params.grid.rows) : r.slides.length, { 771 centeredSlides: o, 772 slidesOffsetBefore: u, 773 slidesOffsetAfter: f 774 } = r.params, h = o || !!u || !!f; 775 let c = r.params.slidesPerView; 776 c === "auto" ? c = r.slidesPerViewDynamic() : (c = Math.ceil(parseFloat(r.params.slidesPerView, 10)), h && c % 2 === 0 && (c = c + 1)); 777 let m = a - d < c; 778 if (h && (m = m || d < Math.ceil(c / 2)), i && h && r.params.slidesPerView !== "auto" && !n && (m = !1), m) { 779 const g = h ? d < r.activeIndex ? "prev" : "next" : d - r.activeIndex - 1 < r.params.slidesPerView ? "next" : "prev"; 780 r.loopFix({ 781 direction: g, 782 slideTo: !0, 783 activeSlideIndex: g === "next" ? d + 1 : d - a + 1, 784 slideRealIndex: g === "next" ? r.realIndex : void 0 785 }); 786 } 787 if (n) { 788 const g = l * r.params.grid.rows; 789 l = r.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === g).column; 790 } else 791 l = r.getSlideIndexByData(l); 792 } 793 return requestAnimationFrame(() => { 794 r.slideTo(l, s, t, i); 795 }), r; 796} 797function bt(e, s = !0, t) { 798 const i = this, { 799 enabled: r, 800 params: n, 801 animating: l 802 } = i; 803 if (!r || i.destroyed) return i; 804 typeof e > "u" && (e = i.params.speed); 805 let d = n.slidesPerGroup; 806 n.slidesPerView === "auto" && n.slidesPerGroup === 1 && n.slidesPerGroupAuto && (d = Math.max(i.slidesPerViewDynamic("current", !0), 1)); 807 const a = i.activeIndex < n.slidesPerGroupSkip ? 1 : d, o = i.virtual && n.virtual.enabled; 808 if (n.loop) { 809 if (l && !o && n.loopPreventsSliding) return !1; 810 if (i.loopFix({ 811 direction: "next" 812 }), i._clientLeft = i.wrapperEl.clientLeft, i.activeIndex === i.slides.length - 1 && n.cssMode) 813 return requestAnimationFrame(() => { 814 i.slideTo(i.activeIndex + a, e, s, t); 815 }), !0; 816 } 817 return n.rewind && i.isEnd ? i.slideTo(0, e, s, t) : i.slideTo(i.activeIndex + a, e, s, t); 818} 819function yt(e, s = !0, t) { 820 const i = this, { 821 params: r, 822 snapGrid: n, 823 slidesGrid: l, 824 rtlTranslate: d, 825 enabled: a, 826 animating: o 827 } = i; 828 if (!a || i.destroyed) return i; 829 typeof e > "u" && (e = i.params.speed); 830 const u = i.virtual && r.virtual.enabled; 831 if (r.loop) { 832 if (o && !u && r.loopPreventsSliding) return !1; 833 i.loopFix({ 834 direction: "prev" 835 }), i._clientLeft = i.wrapperEl.clientLeft; 836 } 837 const f = d ? i.translate : -i.translate; 838 function h(v) { 839 return v < 0 ? -Math.floor(Math.abs(v)) : Math.floor(v); 840 } 841 const c = h(f), m = n.map((v) => h(v)), g = r.freeMode && r.freeMode.enabled; 842 let C = n[m.indexOf(c) - 1]; 843 if (typeof C > "u" && (r.cssMode || g)) { 844 let v; 845 n.forEach((w, E) => { 846 c >= w && (v = E); 847 }), typeof v < "u" && (C = g ? n[v] : n[v > 0 ? v - 1 : v]); 848 } 849 let y = 0; 850 if (typeof C < "u" && (y = l.indexOf(C), y < 0 && (y = i.activeIndex - 1), r.slidesPerView === "auto" && r.slidesPerGroup === 1 && r.slidesPerGroupAuto && (y = y - i.slidesPerViewDynamic("previous", !0) + 1, y = Math.max(y, 0))), r.rewind && i.isBeginning) { 851 const v = i.params.virtual && i.params.virtual.enabled && i.virtual ? i.virtual.slides.length - 1 : i.slides.length - 1; 852 return i.slideTo(v, e, s, t); 853 } else if (r.loop && i.activeIndex === 0 && r.cssMode) 854 return requestAnimationFrame(() => { 855 i.slideTo(y, e, s, t); 856 }), !0; 857 return i.slideTo(y, e, s, t); 858} 859function Tt(e, s = !0, t) { 860 const i = this; 861 if (!i.destroyed) 862 return typeof e > "u" && (e = i.params.speed), i.slideTo(i.activeIndex, e, s, t); 863} 864function xt(e, s = !0, t, i = 0.5) { 865 const r = this; 866 if (r.destroyed) return; 867 typeof e > "u" && (e = r.params.speed); 868 let n = r.activeIndex; 869 const l = Math.min(r.params.slidesPerGroupSkip, n), d = l + Math.floor((n - l) / r.params.slidesPerGroup), a = r.rtlTranslate ? r.translate : -r.translate; 870 if (a >= r.snapGrid[d]) { 871 const o = r.snapGrid[d], u = r.snapGrid[d + 1]; 872 a - o > (u - o) * i && (n += r.params.slidesPerGroup); 873 } else { 874 const o = r.snapGrid[d - 1], u = r.snapGrid[d]; 875 a - o <= (u - o) * i && (n -= r.params.slidesPerGroup); 876 } 877 return n = Math.max(n, 0), n = Math.min(n, r.slidesGrid.length - 1), r.slideTo(n, e, s, t); 878} 879function Et() { 880 const e = this; 881 if (e.destroyed) return; 882 const { 883 params: s, 884 slidesEl: t 885 } = e, i = s.slidesPerView === "auto" ? e.slidesPerViewDynamic() : s.slidesPerView; 886 let r = e.getSlideIndexWhenGrid(e.clickedIndex), n; 887 const l = e.isElement ? "swiper-slide" : `.${s.slideClass}`, d = e.grid && e.params.grid && e.params.grid.rows > 1; 888 if (s.loop) { 889 if (e.animating) return; 890 n = parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10), s.centeredSlides ? e.slideToLoop(n) : r > (d ? (e.slides.length - i) / 2 - (e.params.grid.rows - 1) : e.slides.length - i) ? (e.loopFix(), r = e.getSlideIndex(N(t, `${l}[data-swiper-slide-index="${n}"]`)[0]), Te(() => { 891 e.slideTo(r); 892 })) : e.slideTo(r); 893 } else 894 e.slideTo(r); 895} 896var Ct = { 897 slideTo: wt, 898 slideToLoop: St, 899 slideNext: bt, 900 slidePrev: yt, 901 slideReset: Tt, 902 slideToClosest: xt, 903 slideToClickedSlide: Et 904}; 905function Pt(e, s) { 906 const t = this, { 907 params: i, 908 slidesEl: r 909 } = t; 910 if (!i.loop || t.virtual && t.params.virtual.enabled) return; 911 const n = () => { 912 N(r, `.${i.slideClass}, swiper-slide`).forEach((m, g) => { 913 m.setAttribute("data-swiper-slide-index", g); 914 }); 915 }, l = () => { 916 const c = N(r, `.${i.slideBlankClass}`); 917 c.forEach((m) => { 918 m.remove(); 919 }), c.length > 0 && (t.recalcSlides(), t.updateSlides()); 920 }, d = t.grid && i.grid && i.grid.rows > 1; 921 i.loopAddBlankSlides && (i.slidesPerGroup > 1 || d) && l(); 922 const a = i.slidesPerGroup * (d ? i.grid.rows : 1), o = t.slides.length % a !== 0, u = d && t.slides.length % i.grid.rows !== 0, f = (c) => { 923 for (let m = 0; m < c; m += 1) { 924 const g = t.isElement ? ae("swiper-slide", [i.slideBlankClass]) : ae("div", [i.slideClass, i.slideBlankClass]); 925 t.slidesEl.append(g); 926 } 927 }; 928 if (o) { 929 if (i.loopAddBlankSlides) { 930 const c = a - t.slides.length % a; 931 f(c), t.recalcSlides(), t.updateSlides(); 932 } else 933 K("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)"); 934 n(); 935 } else if (u) { 936 if (i.loopAddBlankSlides) { 937 const c = i.grid.rows - t.slides.length % i.grid.rows; 938 f(c), t.recalcSlides(), t.updateSlides(); 939 } else 940 K("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)"); 941 n(); 942 } else 943 n(); 944 const h = i.centeredSlides || !!i.slidesOffsetBefore || !!i.slidesOffsetAfter; 945 t.loopFix({ 946 slideRealIndex: e, 947 direction: h ? void 0 : "next", 948 initial: s 949 }); 950} 951function Mt({ 952 slideRealIndex: e, 953 slideTo: s = !0, 954 direction: t, 955 setTranslate: i, 956 activeSlideIndex: r, 957 initial: n, 958 byController: l, 959 byMousewheel: d 960} = {}) { 961 const a = this; 962 if (!a.params.loop) return; 963 a.emit("beforeLoopFix"); 964 const { 965 slides: o, 966 allowSlidePrev: u, 967 allowSlideNext: f, 968 slidesEl: h, 969 params: c 970 } = a, { 971 centeredSlides: m, 972 slidesOffsetBefore: g, 973 slidesOffsetAfter: C, 974 initialSlide: y 975 } = c, v = m || !!g || !!C; 976 if (a.allowSlidePrev = !0, a.allowSlideNext = !0, a.virtual && c.virtual.enabled) { 977 s && (!v && a.snapIndex === 0 ? a.slideTo(a.virtual.slides.length, 0, !1, !0) : v && a.snapIndex < c.slidesPerView ? a.slideTo(a.virtual.slides.length + a.snapIndex, 0, !1, !0) : a.snapIndex === a.snapGrid.length - 1 && a.slideTo(a.virtual.slidesBefore, 0, !1, !0)), a.allowSlidePrev = u, a.allowSlideNext = f, a.emit("loopFix"); 978 return; 979 } 980 let w = c.slidesPerView; 981 w === "auto" ? w = a.slidesPerViewDynamic() : (w = Math.ceil(parseFloat(c.slidesPerView, 10)), v && w % 2 === 0 && (w = w + 1)); 982 const E = c.slidesPerGroupAuto ? w : c.slidesPerGroup; 983 let S = v ? Math.max(E, Math.ceil(w / 2)) : E; 984 S % E !== 0 && (S += E - S % E), S += c.loopAdditionalSlides, a.loopedSlides = S; 985 const M = a.grid && c.grid && c.grid.rows > 1; 986 o.length < w + S || a.params.effect === "cards" && o.length < w + S * 2 ? K("Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters") : M && c.grid.fill === "row" && K("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); 987 const T = [], p = [], O = M ? Math.ceil(o.length / c.grid.rows) : o.length, x = n && O - y < w && !v; 988 let b = x ? y : a.activeIndex; 989 typeof r > "u" ? r = a.getSlideIndex(o.find((P) => P.classList.contains(c.slideActiveClass))) : b = r; 990 const I = t === "next" || !t, z = t === "prev" || !t; 991 let L = 0, B = 0; 992 const j = (M ? o[r].column : r) + (v && typeof i > "u" ? -w / 2 + 0.5 : 0); 993 if (j < S) { 994 L = Math.max(S - j, E); 995 for (let P = 0; P < S - j; P += 1) { 996 const A = P - Math.floor(P / O) * O; 997 if (M) { 998 const _ = O - A - 1; 999 for (let F = o.length - 1; F >= 0; F -= 1) 1000 o[F].column === _ && T.push(F); 1001 } else 1002 T.push(O - A - 1); 1003 } 1004 } else if (j + w > O - S) { 1005 B = Math.max(j - (O - S * 2), E), x && (B = Math.max(B, w - O + y + 1)); 1006 for (let P = 0; P < B; P += 1) { 1007 const A = P - Math.floor(P / O) * O; 1008 M ? o.forEach((_, F) => { 1009 _.column === A && p.push(F); 1010 }) : p.push(A); 1011 } 1012 } 1013 if (a.__preventObserver__ = !0, requestAnimationFrame(() => { 1014 a.__preventObserver__ = !1; 1015 }), a.params.effect === "cards" && o.length < w + S * 2 && (p.includes(r) && p.splice(p.indexOf(r), 1), T.includes(r) && T.splice(T.indexOf(r), 1)), z && T.forEach((P) => { 1016 o[P].swiperLoopMoveDOM = !0, h.prepend(o[P]), o[P].swiperLoopMoveDOM = !1; 1017 }), I && p.forEach((P) => { 1018 o[P].swiperLoopMoveDOM = !0, h.append(o[P]), o[P].swiperLoopMoveDOM = !1; 1019 }), a.recalcSlides(), c.slidesPerView === "auto" ? a.updateSlides() : M && (T.length > 0 && z || p.length > 0 && I) && a.slides.forEach((P, A) => { 1020 a.grid.updateSlide(A, P, a.slides); 1021 }), c.watchSlidesProgress && a.updateSlidesOffset(), s) { 1022 if (T.length > 0 && z) { 1023 if (typeof e > "u") { 1024 const P = a.slidesGrid[b], _ = a.slidesGrid[b + L] - P; 1025 d ? a.setTranslate(a.translate - _) : (a.slideTo(b + Math.ceil(L), 0, !1, !0), i && (a.touchEventsData.startTranslate = a.touchEventsData.startTranslate - _, a.touchEventsData.currentTranslate = a.touchEventsData.currentTranslate - _)); 1026 } else if (i) { 1027 const P = M ? T.length / c.grid.rows : T.length; 1028 a.slideTo(a.activeIndex + P, 0, !1, !0), a.touchEventsData.currentTranslate = a.translate; 1029 } 1030 } else if (p.length > 0 && I) 1031 if (typeof e > "u") { 1032 const P = a.slidesGrid[b], _ = a.slidesGrid[b - B] - P; 1033 d ? a.setTranslate(a.translate - _) : (a.slideTo(b - B, 0, !1, !0), i && (a.touchEventsData.startTranslate = a.touchEventsData.startTranslate - _, a.touchEventsData.currentTranslate = a.touchEventsData.currentTranslate - _)); 1034 } else { 1035 const P = M ? p.length / c.grid.rows : p.length; 1036 a.slideTo(a.activeIndex - P, 0, !1, !0); 1037 } 1038 } 1039 if (a.allowSlidePrev = u, a.allowSlideNext = f, a.controller && a.controller.control && !l) { 1040 const P = { 1041 slideRealIndex: e, 1042 direction: t, 1043 setTranslate: i, 1044 activeSlideIndex: r, 1045 byController: !0 1046 }; 1047 Array.isArray(a.controller.control) ? a.controller.control.forEach((A) => { 1048 !A.destroyed && A.params.loop && A.loopFix({ 1049 ...P, 1050 slideTo: A.params.slidesPerView === c.slidesPerView ? s : !1 1051 }); 1052 }) : a.controller.control instanceof a.constructor && a.controller.control.params.loop && a.controller.control.loopFix({ 1053 ...P, 1054 slideTo: a.controller.control.params.slidesPerView === c.slidesPerView ? s : !1 1055 }); 1056 } 1057 a.emit("loopFix"); 1058} 1059function It() { 1060 const e = this, { 1061 params: s, 1062 slidesEl: t 1063 } = e; 1064 if (!s.loop || !t || e.virtual && e.params.virtual.enabled) return; 1065 e.recalcSlides(); 1066 const i = []; 1067 e.slides.forEach((r) => { 1068 const n = typeof r.swiperSlideIndex > "u" ? r.getAttribute("data-swiper-slide-index") * 1 : r.swiperSlideIndex; 1069 i[n] = r; 1070 }), e.slides.forEach((r) => { 1071 r.removeAttribute("data-swiper-slide-index"); 1072 }), i.forEach((r) => { 1073 t.append(r); 1074 }), e.recalcSlides(), e.slideTo(e.realIndex, 0); 1075} 1076var Ot = { 1077 loopCreate: Pt, 1078 loopFix: Mt, 1079 loopDestroy: It 1080}; 1081function zt(e) { 1082 const s = this; 1083 if (!s.params.simulateTouch || s.params.watchOverflow && s.isLocked || s.params.cssMode) return; 1084 const t = s.params.touchEventsTarget === "container" ? s.el : s.wrapperEl; 1085 s.isElement && (s.__preventObserver__ = !0), t.style.cursor = "move", t.style.cursor = e ? "grabbing" : "grab", s.isElement && requestAnimationFrame(() => { 1086 s.__preventObserver__ = !1; 1087 }); 1088} 1089function Lt() { 1090 const e = this; 1091 e.params.watchOverflow && e.isLocked || e.params.cssMode || (e.isElement && (e.__preventObserver__ = !0), e[e.params.touchEventsTarget === "container" ? "el" : "wrapperEl"].style.cursor = "", e.isElement && requestAnimationFrame(() => { 1092 e.__preventObserver__ = !1; 1093 })); 1094} 1095var Bt = { 1096 setGrabCursor: zt, 1097 unsetGrabCursor: Lt 1098}; 1099function At(e, s = this) { 1100 function t(i) { 1101 if (!i || i === Y() || i === H()) return null; 1102 i.assignedSlot && (i = i.assignedSlot); 1103 const r = i.closest(e); 1104 return !r && !i.getRootNode ? null : r || t(i.getRootNode().host); 1105 } 1106 return t(s); 1107} 1108function he(e, s, t) { 1109 const i = H(), { 1110 params: r 1111 } = e, n = r.edgeSwipeDetection, l = r.edgeSwipeThreshold; 1112 return n && (t <= l || t >= i.innerWidth - l) ? n === "prevent" ? (s.preventDefault(), !0) : !1 : !0; 1113} 1114function _t(e) { 1115 const s = this, t = Y(); 1116 let i = e; 1117 i.originalEvent && (i = i.originalEvent); 1118 const r = s.touchEventsData; 1119 if (i.type === "pointerdown") { 1120 if (r.pointerId !== null && r.pointerId !== i.pointerId) 1121 return; 1122 r.pointerId = i.pointerId; 1123 } else i.type === "touchstart" && i.targetTouches.length === 1 && (r.touchId = i.targetTouches[0].identifier); 1124 if (i.type === "touchstart") { 1125 he(s, i, i.targetTouches[0].pageX); 1126 return; 1127 } 1128 const { 1129 params: n, 1130 touches: l, 1131 enabled: d 1132 } = s; 1133 if (!d || !n.simulateTouch && i.pointerType === "mouse" || s.animating && n.preventInteractionOnTransition) 1134 return; 1135 !s.animating && n.cssMode && n.loop && s.loopFix(); 1136 let a = i.target; 1137 if (n.touchEventsTarget === "wrapper" && !He(a, s.wrapperEl) || "which" in i && i.which === 3 || "button" in i && i.button > 0 || r.isTouched && r.isMoved) return; 1138 const o = !!n.noSwipingClass && n.noSwipingClass !== "", u = i.composedPath ? i.composedPath() : i.path; 1139 o && i.target && i.target.shadowRoot && u && (a = u[0]); 1140 const f = n.noSwipingSelector ? n.noSwipingSelector : `.${n.noSwipingClass}`, h = !!(i.target && i.target.shadowRoot); 1141 if (n.noSwiping && (h ? At(f, a) : a.closest(f))) { 1142 s.allowClick = !0; 1143 return; 1144 } 1145 if (n.swipeHandler && !a.closest(n.swipeHandler)) 1146 return; 1147 l.currentX = i.pageX, l.currentY = i.pageY; 1148 const c = l.currentX, m = l.currentY; 1149 if (!he(s, i, c)) 1150 return; 1151 Object.assign(r, { 1152 isTouched: !0, 1153 isMoved: !1, 1154 allowTouchCallbacks: !0, 1155 isScrolling: void 0, 1156 startMoving: void 0 1157 }), l.startX = c, l.startY = m, r.touchStartTime = Z(), s.allowClick = !0, s.updateSize(), s.swipeDirection = void 0, n.threshold > 0 && (r.allowThresholdMove = !1); 1158 let g = !0; 1159 a.matches(r.focusableElements) && (g = !1, a.nodeName === "SELECT" && (r.isTouched = !1)), t.activeElement && t.activeElement.matches(r.focusableElements) && t.activeElement !== a && (i.pointerType === "mouse" || i.pointerType !== "mouse" && !a.matches(r.focusableElements)) && t.activeElement.blur(); 1160 const C = g && s.allowTouchMove && n.touchStartPreventDefault; 1161 (n.touchStartForcePreventDefault || C) && !a.isContentEditable && i.preventDefault(), n.freeMode && n.freeMode.enabled && s.freeMode && s.animating && !n.cssMode && s.freeMode.onTouchStart(), s.emit("touchStart", i); 1162} 1163function Gt(e) { 1164 const s = Y(), t = this, i = t.touchEventsData, { 1165 params: r, 1166 touches: n, 1167 rtlTranslate: l, 1168 enabled: d 1169 } = t; 1170 if (!d || !r.simulateTouch && e.pointerType === "mouse") return; 1171 let a = e; 1172 if (a.originalEvent && (a = a.originalEvent), a.type === "pointermove" && (i.touchId !== null || a.pointerId !== i.pointerId)) 1173 return; 1174 let o; 1175 if (a.type === "touchmove") { 1176 if (o = [...a.changedTouches].find((S) => S.identifier === i.touchId), !o || o.identifier !== i.touchId) return; 1177 } else 1178 o = a; 1179 if (!i.isTouched) { 1180 i.startMoving && i.isScrolling && t.emit("touchMoveOpposite", a); 1181 return; 1182 } 1183 const u = o.pageX, f = o.pageY; 1184 if (a.preventedByNestedSwiper) { 1185 n.startX = u, n.startY = f; 1186 return; 1187 } 1188 if (!t.allowTouchMove) { 1189 a.target.matches(i.focusableElements) || (t.allowClick = !1), i.isTouched && (Object.assign(n, { 1190 startX: u, 1191 startY: f, 1192 currentX: u, 1193 currentY: f 1194 }), i.touchStartTime = Z()); 1195 return; 1196 } 1197 if (r.touchReleaseOnEdges && !r.loop) 1198 if (t.isVertical()) { 1199 if (f < n.startY && t.translate <= t.maxTranslate() || f > n.startY && t.translate >= t.minTranslate()) { 1200 i.isTouched = !1, i.isMoved = !1; 1201 return; 1202 } 1203 } else { 1204 if (l && (u > n.startX && -t.translate <= t.maxTranslate() || u < n.startX && -t.translate >= t.minTranslate())) 1205 return; 1206 if (!l && (u < n.startX && t.translate <= t.maxTranslate() || u > n.startX && t.translate >= t.minTranslate())) 1207 return; 1208 } 1209 if (s.activeElement && s.activeElement.matches(i.focusableElements) && s.activeElement !== a.target && a.pointerType !== "mouse" && s.activeElement.blur(), s.activeElement && a.target === s.activeElement && a.target.matches(i.focusableElements)) { 1210 i.isMoved = !0, t.allowClick = !1; 1211 return; 1212 } 1213 i.allowTouchCallbacks && t.emit("touchMove", a), n.previousX = n.currentX, n.previousY = n.currentY, n.currentX = u, n.currentY = f; 1214 const h = n.currentX - n.startX, c = n.currentY - n.startY; 1215 if (t.params.threshold && Math.sqrt(h ** 2 + c ** 2) < t.params.threshold) return; 1216 if (typeof i.isScrolling > "u") { 1217 let S; 1218 t.isHorizontal() && n.currentY === n.startY || t.isVertical() && n.currentX === n.startX ? i.isScrolling = !1 : h * h + c * c >= 25 && (S = Math.atan2(Math.abs(c), Math.abs(h)) * 180 / Math.PI, i.isScrolling = t.isHorizontal() ? S > r.touchAngle : 90 - S > r.touchAngle); 1219 } 1220 if (i.isScrolling && t.emit("touchMoveOpposite", a), typeof i.startMoving > "u" && (n.currentX !== n.startX || n.currentY !== n.startY) && (i.startMoving = !0), i.isScrolling || a.type === "touchmove" && i.preventTouchMoveFromPointerMove) { 1221 i.isTouched = !1; 1222 return; 1223 } 1224 if (!i.startMoving) 1225 return; 1226 t.allowClick = !1, !r.cssMode && a.cancelable && a.preventDefault(), r.touchMoveStopPropagation && !r.nested && a.stopPropagation(); 1227 let m = t.isHorizontal() ? h : c, g = t.isHorizontal() ? n.currentX - n.previousX : n.currentY - n.previousY; 1228 r.oneWayMovement && (m = Math.abs(m) * (l ? 1 : -1), g = Math.abs(g) * (l ? 1 : -1)), n.diff = m, m *= r.touchRatio, l && (m = -m, g = -g); 1229 const C = t.touchesDirection; 1230 t.swipeDirection = m > 0 ? "prev" : "next", t.touchesDirection = g > 0 ? "prev" : "next"; 1231 const y = t.params.loop && !r.cssMode, v = t.touchesDirection === "next" && t.allowSlideNext || t.touchesDirection === "prev" && t.allowSlidePrev; 1232 if (!i.isMoved) { 1233 if (y && v && t.loopFix({ 1234 direction: t.swipeDirection 1235 }), i.startTranslate = t.getTranslate(), t.setTransition(0), t.animating) { 1236 const S = new window.CustomEvent("transitionend", { 1237 bubbles: !0, 1238 cancelable: !0, 1239 detail: { 1240 bySwiperTouchMove: !0 1241 } 1242 });
vendor: 4,518 bytes, lines 1243-1309
1243 t.wrapperEl.dispatchEvent(S); 1244 } 1245 i.allowMomentumBounce = !1, r.grabCursor && (t.allowSlideNext === !0 || t.allowSlidePrev === !0) && t.setGrabCursor(!0), t.emit("sliderFirstMove", a); 1246 } 1247 if ((/* @__PURE__ */ new Date()).getTime(), r._loopSwapReset !== !1 && i.isMoved && i.allowThresholdMove && C !== t.touchesDirection && y && v && Math.abs(m) >= 1) { 1248 Object.assign(n, { 1249 startX: u, 1250 startY: f, 1251 currentX: u, 1252 currentY: f, 1253 startTranslate: i.currentTranslate 1254 }), i.loopSwapReset = !0, i.startTranslate = i.currentTranslate; 1255 return; 1256 } 1257 t.emit("sliderMove", a), i.isMoved = !0, i.currentTranslate = m + i.startTranslate; 1258 let w = !0, E = r.resistanceRatio; 1259 if (r.touchReleaseOnEdges && (E = 0), m > 0 ? (y && v && i.allowThresholdMove && i.currentTranslate > (r.centeredSlides ? t.minTranslate() - t.slidesSizesGrid[t.activeIndex + 1] - (r.slidesPerView !== "auto" && t.slides.length - r.slidesPerView >= 2 ? t.slidesSizesGrid[t.activeIndex + 1] + t.params.spaceBetween : 0) - t.params.spaceBetween : t.minTranslate()) && t.loopFix({ 1260 direction: "prev", 1261 setTranslate: !0, 1262 activeSlideIndex: 0 1263 }), i.currentTranslate > t.minTranslate() && (w = !1, r.resistance && (i.currentTranslate = t.minTranslate() - 1 + (-t.minTranslate() + i.startTranslate + m) ** E))) : m < 0 && (y && v && i.allowThresholdMove && i.currentTranslate < (r.centeredSlides ? t.maxTranslate() + t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween + (r.slidesPerView !== "auto" && t.slides.length - r.slidesPerView >= 2 ? t.slidesSizesGrid[t.slidesSizesGrid.length - 1] + t.params.spaceBetween : 0) : t.maxTranslate()) && t.loopFix({ 1264 direction: "next", 1265 setTranslate: !0, 1266 activeSlideIndex: t.slides.length - (r.slidesPerView === "auto" ? t.slidesPerViewDynamic() : Math.ceil(parseFloat(r.slidesPerView, 10))) 1267 }), i.currentTranslate < t.maxTranslate() && (w = !1, r.resistance && (i.currentTranslate = t.maxTranslate() + 1 - (t.maxTranslate() - i.startTranslate - m) ** E))), w && (a.preventedByNestedSwiper = !0), !t.allowSlideNext && t.swipeDirection === "next" && i.currentTranslate < i.startTranslate && (i.currentTranslate = i.startTranslate), !t.allowSlidePrev && t.swipeDirection === "prev" && i.currentTranslate > i.startTranslate && (i.currentTranslate = i.startTranslate), !t.allowSlidePrev && !t.allowSlideNext && (i.currentTranslate = i.startTranslate), r.threshold > 0) 1268 if (Math.abs(m) > r.threshold || i.allowThresholdMove) { 1269 if (!i.allowThresholdMove) { 1270 i.allowThresholdMove = !0, n.startX = n.currentX, n.startY = n.currentY, i.currentTranslate = i.startTranslate, n.diff = t.isHorizontal() ? n.currentX - n.startX : n.currentY - n.startY; 1271 return; 1272 } 1273 } else { 1274 i.currentTranslate = i.startTranslate; 1275 return; 1276 } 1277 !r.followFinger || r.cssMode || ((r.freeMode && r.freeMode.enabled && t.freeMode || r.watchSlidesProgress) && (t.updateActiveIndex(), t.updateSlidesClasses()), r.freeMode && r.freeMode.enabled && t.freeMode && t.freeMode.onTouchMove(), t.updateProgress(i.currentTranslate), t.setTranslate(i.currentTranslate)); 1278} 1279function Vt(e) { 1280 const s = this, t = s.touchEventsData; 1281 let i = e; 1282 i.originalEvent && (i = i.originalEvent); 1283 let r; 1284 if (i.type === "touchend" || i.type === "touchcancel") { 1285 if (r = [...i.changedTouches].find((S) => S.identifier === t.touchId), !r || r.identifier !== t.touchId) return; 1286 } else { 1287 if (t.touchId !== null || i.pointerId !== t.pointerId) return; 1288 r = i; 1289 } 1290 if (["pointercancel", "pointerout", "pointerleave", "contextmenu"].includes(i.type) && !(["pointercancel", "contextmenu"].includes(i.type) && (s.browser.isSafari || s.browser.isWebView))) 1291 return; 1292 t.pointerId = null, t.touchId = null; 1293 const { 1294 params: l, 1295 touches: d, 1296 rtlTranslate: a, 1297 slidesGrid: o, 1298 enabled: u 1299 } = s; 1300 if (!u || !l.simulateTouch && i.pointerType === "mouse") return; 1301 if (t.allowTouchCallbacks && s.emit("touchEnd", i), t.allowTouchCallbacks = !1, !t.isTouched) { 1302 t.isMoved && l.grabCursor && s.setGrabCursor(!1), t.isMoved = !1, t.startMoving = !1; 1303 return; 1304 } 1305 l.grabCursor && t.isMoved && t.isTouched && (s.allowSlideNext === !0 || s.allowSlidePrev === !0) && s.setGrabCursor(!1); 1306 const f = Z(), h = f - t.touchStartTime; 1307 if (s.allowClick) { 1308 const S = i.path || i.composedPath && i.composedPath(); 1309 s.updateClickedSlide(S && S[0] || i.target, S), s.emit("tap click", i), h < 300 && f - t.last
vendor: 31,185 bytes, lines 1309-2201
1309ClickTime < 300 && s.emit("doubleTap doubleClick", i); 1310 } 1311 if (t.lastClickTime = Z(), Te(() => { 1312 s.destroyed || (s.allowClick = !0); 1313 }), !t.isTouched || !t.isMoved || !s.swipeDirection || d.diff === 0 && !t.loopSwapReset || t.currentTranslate === t.startTranslate && !t.loopSwapReset) { 1314 t.isTouched = !1, t.isMoved = !1, t.startMoving = !1; 1315 return; 1316 } 1317 t.isTouched = !1, t.isMoved = !1, t.startMoving = !1; 1318 let c; 1319 if (l.followFinger ? c = a ? s.translate : -s.translate : c = -t.currentTranslate, l.cssMode) 1320 return; 1321 if (l.freeMode && l.freeMode.enabled) { 1322 s.freeMode.onTouchEnd({ 1323 currentPos: c 1324 }); 1325 return; 1326 } 1327 const m = c >= -s.maxTranslate() && !s.params.loop; 1328 let g = 0, C = s.slidesSizesGrid[0]; 1329 for (let S = 0; S < o.length; S += S < l.slidesPerGroupSkip ? 1 : l.slidesPerGroup) { 1330 const M = S < l.slidesPerGroupSkip - 1 ? 1 : l.slidesPerGroup; 1331 typeof o[S + M] < "u" ? (m || c >= o[S] && c < o[S + M]) && (g = S, C = o[S + M] - o[S]) : (m || c >= o[S]) && (g = S, C = o[o.length - 1] - o[o.length - 2]); 1332 } 1333 let y = null, v = null; 1334 l.rewind && (s.isBeginning ? v = l.virtual && l.virtual.enabled && s.virtual ? s.virtual.slides.length - 1 : s.slides.length - 1 : s.isEnd && (y = 0)); 1335 const w = (c - o[g]) / C, E = g < l.slidesPerGroupSkip - 1 ? 1 : l.slidesPerGroup; 1336 if (h > l.longSwipesMs) { 1337 if (!l.longSwipes) { 1338 s.slideTo(s.activeIndex); 1339 return; 1340 } 1341 s.swipeDirection === "next" && (w >= l.longSwipesRatio ? s.slideTo(l.rewind && s.isEnd ? y : g + E) : s.slideTo(g)), s.swipeDirection === "prev" && (w > 1 - l.longSwipesRatio ? s.slideTo(g + E) : v !== null && w < 0 && Math.abs(w) > l.longSwipesRatio ? s.slideTo(v) : s.slideTo(g)); 1342 } else { 1343 if (!l.shortSwipes) { 1344 s.slideTo(s.activeIndex); 1345 return; 1346 } 1347 s.navigation && (i.target === s.navigation.nextEl || i.target === s.navigation.prevEl) ? i.target === s.navigation.nextEl ? s.slideTo(g + E) : s.slideTo(g) : (s.swipeDirection === "next" && s.slideTo(y !== null ? y : g + E), s.swipeDirection === "prev" && s.slideTo(v !== null ? v : g)); 1348 } 1349} 1350function me() { 1351 const e = this, { 1352 params: s, 1353 el: t 1354 } = e; 1355 if (t && t.offsetWidth === 0) return; 1356 s.breakpoints && e.setBreakpoint(); 1357 const { 1358 allowSlideNext: i, 1359 allowSlidePrev: r, 1360 snapGrid: n 1361 } = e, l = e.virtual && e.params.virtual.enabled; 1362 e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(); 1363 const d = l && s.loop; 1364 if ((s.slidesPerView === "auto" || s.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides && !d) { 1365 const a = l ? e.virtual.slides : e.slides; 1366 e.slideTo(a.length - 1, 0, !1, !0); 1367 } else 1368 e.params.loop && !l ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0); 1369 e.autoplay && e.autoplay.running && e.autoplay.paused && (clearTimeout(e.autoplay.resizeTimeout), e.autoplay.resizeTimeout = setTimeout(() => { 1370 e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume(); 1371 }, 500)), e.allowSlidePrev = r, e.allowSlideNext = i, e.params.watchOverflow && n !== e.snapGrid && e.checkOverflow(); 1372} 1373function kt(e) { 1374 const s = this; 1375 s.enabled && (s.allowClick || (s.params.preventClicks && e.preventDefault(), s.params.preventClicksPropagation && s.animating && (e.stopPropagation(), e.stopImmediatePropagation()))); 1376} 1377function Dt() { 1378 const e = this, { 1379 wrapperEl: s, 1380 rtlTranslate: t, 1381 enabled: i 1382 } = e; 1383 if (!i) return; 1384 e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -s.scrollLeft : e.translate = -s.scrollTop, e.translate === 0 && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); 1385 let r; 1386 const n = e.maxTranslate() - e.minTranslate(); 1387 n === 0 ? r = 0 : r = (e.translate - e.minTranslate()) / n, r !== e.progress && e.updateProgress(t ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1); 1388} 1389function Nt(e) { 1390 const s = this; 1391 U(s, e.target), !(s.params.cssMode || s.params.slidesPerView !== "auto" && !s.params.autoHeight) && s.update(); 1392} 1393function Rt() { 1394 const e = this; 1395 e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")); 1396} 1397const Ie = (e, s) => { 1398 const t = Y(), { 1399 params: i, 1400 el: r, 1401 wrapperEl: n, 1402 device: l 1403 } = e, d = !!i.nested, a = s === "on" ? "addEventListener" : "removeEventListener", o = s; 1404 !r || typeof r == "string" || (t[a]("touchstart", e.onDocumentTouchStart, { 1405 passive: !1, 1406 capture: d 1407 }), r[a]("touchstart", e.onTouchStart, { 1408 passive: !1 1409 }), r[a]("pointerdown", e.onTouchStart, { 1410 passive: !1 1411 }), t[a]("touchmove", e.onTouchMove, { 1412 passive: !1, 1413 capture: d 1414 }), t[a]("pointermove", e.onTouchMove, { 1415 passive: !1, 1416 capture: d 1417 }), t[a]("touchend", e.onTouchEnd, { 1418 passive: !0 1419 }), t[a]("pointerup", e.onTouchEnd, { 1420 passive: !0 1421 }), t[a]("pointercancel", e.onTouchEnd, { 1422 passive: !0 1423 }), t[a]("touchcancel", e.onTouchEnd, { 1424 passive: !0 1425 }), t[a]("pointerout", e.onTouchEnd, { 1426 passive: !0 1427 }), t[a]("pointerleave", e.onTouchEnd, { 1428 passive: !0 1429 }), t[a]("contextmenu", e.onTouchEnd, { 1430 passive: !0 1431 }), (i.preventClicks || i.preventClicksPropagation) && r[a]("click", e.onClick, !0), i.cssMode && n[a]("scroll", e.onScroll), i.updateOnWindowResize ? e[o](l.ios || l.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", me, !0) : e[o]("observerUpdate", me, !0), r[a]("load", e.onLoad, { 1432 capture: !0 1433 })); 1434}; 1435function Ft() { 1436 const e = this, { 1437 params: s 1438 } = e; 1439 e.onTouchStart = _t.bind(e), e.onTouchMove = Gt.bind(e), e.onTouchEnd = Vt.bind(e), e.onDocumentTouchStart = Rt.bind(e), s.cssMode && (e.onScroll = Dt.bind(e)), e.onClick = kt.bind(e), e.onLoad = Nt.bind(e), Ie(e, "on"); 1440} 1441function $t() { 1442 Ie(this, "off"); 1443} 1444var Ht = { 1445 attachEvents: Ft, 1446 detachEvents: $t 1447}; 1448const ge = (e, s) => e.grid && s.grid && s.grid.rows > 1; 1449function jt() { 1450 const e = this, { 1451 realIndex: s, 1452 initialized: t, 1453 params: i, 1454 el: r 1455 } = e, n = i.breakpoints; 1456 if (!n || n && Object.keys(n).length === 0) return; 1457 const l = Y(), d = i.breakpointsBase === "window" || !i.breakpointsBase ? i.breakpointsBase : "container", a = ["window", "container"].includes(i.breakpointsBase) || !i.breakpointsBase ? e.el : l.querySelector(i.breakpointsBase), o = e.getBreakpoint(n, d, a); 1458 if (!o || e.currentBreakpoint === o) return; 1459 const f = (o in n ? n[o] : void 0) || e.originalParams, h = ge(e, i), c = ge(e, f), m = e.params.grabCursor, g = f.grabCursor, C = i.enabled; 1460 h && !c ? (r.classList.remove(`${i.containerModifierClass}grid`, `${i.containerModifierClass}grid-column`), e.emitContainerClasses()) : !h && c && (r.classList.add(`${i.containerModifierClass}grid`), (f.grid.fill && f.grid.fill === "column" || !f.grid.fill && i.grid.fill === "column") && r.classList.add(`${i.containerModifierClass}grid-column`), e.emitContainerClasses()), m && !g ? e.unsetGrabCursor() : !m && g && e.setGrabCursor(), ["navigation", "pagination", "scrollbar"].forEach((M) => { 1461 if (typeof f[M] > "u") return; 1462 const T = i[M] && i[M].enabled, p = f[M] && f[M].enabled; 1463 T && !p && e[M].disable(), !T && p && e[M].enable(); 1464 }); 1465 const y = f.direction && f.direction !== i.direction, v = i.loop && (f.slidesPerView !== i.slidesPerView || y), w = i.loop; 1466 y && t && e.changeDirection(), k(e.params, f); 1467 const E = e.params.enabled, S = e.params.loop; 1468 Object.assign(e, { 1469 allowTouchMove: e.params.allowTouchMove, 1470 allowSlideNext: e.params.allowSlideNext, 1471 allowSlidePrev: e.params.allowSlidePrev 1472 }), C && !E ? e.disable() : !C && E && e.enable(), e.currentBreakpoint = o, e.emit("_beforeBreakpoint", f), t && (v ? (e.loopDestroy(), e.loopCreate(s), e.updateSlides()) : !w && S ? (e.loopCreate(s), e.updateSlides()) : w && !S && e.loopDestroy()), e.emit("breakpoint", f); 1473} 1474function Wt(e, s = "window", t) { 1475 if (!e || s === "container" && !t) return; 1476 let i = !1; 1477 const r = H(), n = s === "window" ? r.innerHeight : t.clientHeight, l = Object.keys(e).map((d) => { 1478 if (typeof d == "string" && d.indexOf("@") === 0) { 1479 const a = parseFloat(d.substr(1)); 1480 return { 1481 value: n * a, 1482 point: d 1483 }; 1484 } 1485 return { 1486 value: d, 1487 point: d 1488 }; 1489 }); 1490 l.sort((d, a) => parseInt(d.value, 10) - parseInt(a.value, 10)); 1491 for (let d = 0; d < l.length; d += 1) { 1492 const { 1493 point: a, 1494 value: o 1495 } = l[d]; 1496 s === "window" ? r.matchMedia(`(min-width: ${o}px)`).matches && (i = a) : o <= t.clientWidth && (i = a); 1497 } 1498 return i || "max"; 1499} 1500var Yt = { 1501 setBreakpoint: jt, 1502 getBreakpoint: Wt 1503}; 1504function qt(e, s) { 1505 const t = []; 1506 return e.forEach((i) => { 1507 typeof i == "object" ? Object.keys(i).forEach((r) => { 1508 i[r] && t.push(s + r); 1509 }) : typeof i == "string" && t.push(s + i); 1510 }), t; 1511} 1512function Xt() { 1513 const e = this, { 1514 classNames: s, 1515 params: t, 1516 rtl: i, 1517 el: r, 1518 device: n 1519 } = e, l = qt(["initialized", t.direction, { 1520 "free-mode": e.params.freeMode && t.freeMode.enabled 1521 }, { 1522 autoheight: t.autoHeight 1523 }, { 1524 rtl: i 1525 }, { 1526 grid: t.grid && t.grid.rows > 1 1527 }, { 1528 "grid-column": t.grid && t.grid.rows > 1 && t.grid.fill === "column" 1529 }, { 1530 android: n.android 1531 }, { 1532 ios: n.ios 1533 }, { 1534 "css-mode": t.cssMode 1535 }, { 1536 centered: t.cssMode && t.centeredSlides 1537 }, { 1538 "watch-progress": t.watchSlidesProgress 1539 }], t.containerModifierClass); 1540 s.push(...l), r.classList.add(...s), e.emitContainerClasses(); 1541} 1542function Ut() { 1543 const e = this, { 1544 el: s, 1545 classNames: t 1546 } = e; 1547 !s || typeof s == "string" || (s.classList.remove(...t), e.emitContainerClasses()); 1548} 1549var Kt = { 1550 addClasses: Xt, 1551 removeClasses: Ut 1552}; 1553function Zt() { 1554 const e = this, { 1555 isLocked: s, 1556 params: t 1557 } = e, { 1558 slidesOffsetBefore: i 1559 } = t; 1560 if (i) { 1561 const r = e.slides.length - 1, n = e.slidesGrid[r] + e.slidesSizesGrid[r] + i * 2; 1562 e.isLocked = e.size > n; 1563 } else 1564 e.isLocked = e.snapGrid.length === 1; 1565 t.allowSlideNext === !0 && (e.allowSlideNext = !e.isLocked), t.allowSlidePrev === !0 && (e.allowSlidePrev = !e.isLocked), s && s !== e.isLocked && (e.isEnd = !1), s !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 1566} 1567var Jt = { 1568 checkOverflow: Zt 1569}, oe = { 1570 init: !0, 1571 direction: "horizontal", 1572 oneWayMovement: !1, 1573 swiperElementNodeName: "SWIPER-CONTAINER", 1574 touchEventsTarget: "wrapper", 1575 initialSlide: 0, 1576 speed: 300, 1577 cssMode: !1, 1578 updateOnWindowResize: !0, 1579 resizeObserver: !0, 1580 nested: !1, 1581 createElements: !1, 1582 eventsPrefix: "swiper", 1583 enabled: !0, 1584 focusableElements: "input, select, option, textarea, button, video, label", 1585 // Overrides 1586 width: null, 1587 height: null, 1588 // 1589 preventInteractionOnTransition: !1, 1590 // ssr 1591 userAgent: null, 1592 url: null, 1593 // To support iOS's swipe-to-go-back gesture (when being used in-app). 1594 edgeSwipeDetection: !1, 1595 edgeSwipeThreshold: 20, 1596 // Autoheight 1597 autoHeight: !1, 1598 // Set wrapper width 1599 setWrapperSize: !1, 1600 // Virtual Translate 1601 virtualTranslate: !1, 1602 // Effects 1603 effect: "slide", 1604 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 1605 // Breakpoints 1606 breakpoints: void 0, 1607 breakpointsBase: "window", 1608 // Slides grid 1609 spaceBetween: 0, 1610 slidesPerView: 1, 1611 slidesPerGroup: 1, 1612 slidesPerGroupSkip: 0, 1613 slidesPerGroupAuto: !1, 1614 centeredSlides: !1, 1615 centeredSlidesBounds: !1, 1616 slidesOffsetBefore: 0, 1617 // in px 1618 slidesOffsetAfter: 0, 1619 // in px 1620 normalizeSlideIndex: !0, 1621 centerInsufficientSlides: !1, 1622 snapToSlideEdge: !1, 1623 // Disable swiper and hide navigation when container not overflow 1624 watchOverflow: !0, 1625 // Round length 1626 roundLengths: !1, 1627 // Touches 1628 touchRatio: 1, 1629 touchAngle: 45, 1630 simulateTouch: !0, 1631 shortSwipes: !0, 1632 longSwipes: !0, 1633 longSwipesRatio: 0.5, 1634 longSwipesMs: 300, 1635 followFinger: !0, 1636 allowTouchMove: !0, 1637 threshold: 5, 1638 touchMoveStopPropagation: !1, 1639 touchStartPreventDefault: !0, 1640 touchStartForcePreventDefault: !1, 1641 touchReleaseOnEdges: !1, 1642 // Unique Navigation Elements 1643 uniqueNavElements: !0, 1644 // Resistance 1645 resistance: !0, 1646 resistanceRatio: 0.85, 1647 // Progress 1648 watchSlidesProgress: !1, 1649 // Cursor 1650 grabCursor: !1, 1651 // Clicks 1652 preventClicks: !0, 1653 preventClicksPropagation: !0, 1654 slideToClickedSlide: !1, 1655 // loop 1656 loop: !1, 1657 loopAddBlankSlides: !0, 1658 loopAdditionalSlides: 0, 1659 loopPreventsSliding: !0, 1660 // rewind 1661 rewind: !1, 1662 // Swiping/no swiping 1663 allowSlidePrev: !0, 1664 allowSlideNext: !0, 1665 swipeHandler: null, 1666 // '.swipe-handler', 1667 noSwiping: !0, 1668 noSwipingClass: "swiper-no-swiping", 1669 noSwipingSelector: null, 1670 // Passive Listeners 1671 passiveListeners: !0, 1672 maxBackfaceHiddenSlides: 10, 1673 // NS 1674 containerModifierClass: "swiper-", 1675 // NEW 1676 slideClass: "swiper-slide", 1677 slideBlankClass: "swiper-slide-blank", 1678 slideActiveClass: "swiper-slide-active", 1679 slideVisibleClass: "swiper-slide-visible", 1680 slideFullyVisibleClass: "swiper-slide-fully-visible", 1681 slideNextClass: "swiper-slide-next", 1682 slidePrevClass: "swiper-slide-prev", 1683 wrapperClass: "swiper-wrapper", 1684 lazyPreloaderClass: "swiper-lazy-preloader", 1685 lazyPreloadPrevNext: 0, 1686 // Callbacks 1687 runCallbacksOnInit: !0, 1688 // Internals 1689 _emitClasses: !1 1690}; 1691function Qt(e, s) { 1692 return function(i = {}) { 1693 const r = Object.keys(i)[0], n = i[r]; 1694 if (typeof n != "object" || n === null) { 1695 k(s, i); 1696 return; 1697 } 1698 if (e[r] === !0 && (e[r] = { 1699 enabled: !0 1700 }), r === "navigation" && e[r] && e[r].enabled && !e[r].prevEl && !e[r].nextEl && (e[r].auto = !0), ["pagination", "scrollbar"].indexOf(r) >= 0 && e[r] && e[r].enabled && !e[r].el && (e[r].auto = !0), !(r in e && "enabled" in n)) { 1701 k(s, i); 1702 return; 1703 } 1704 typeof e[r] == "object" && !("enabled" in e[r]) && (e[r].enabled = !0), e[r] || (e[r] = { 1705 enabled: !1 1706 }), k(s, i); 1707 }; 1708} 1709const se = { 1710 eventsEmitter: Ke, 1711 update: lt, 1712 translate: pt, 1713 transition: vt, 1714 slide: Ct, 1715 loop: Ot, 1716 grabCursor: Bt, 1717 events: Ht, 1718 breakpoints: Yt, 1719 checkOverflow: Jt, 1720 classes: Kt 1721}, ne = {}; 1722let de = class D { 1723 constructor(...s) { 1724 let t, i; 1725 s.length === 1 && s[0].constructor && Object.prototype.toString.call(s[0]).slice(8, -1) === "Object" ? i = s[0] : [t, i] = s, i || (i = {}), i = k({}, i), t && !i.el && (i.el = t); 1726 const r = Y(); 1727 if (i.el && typeof i.el == "string" && r.querySelectorAll(i.el).length > 1) { 1728 const a = []; 1729 return r.querySelectorAll(i.el).forEach((o) => { 1730 const u = k({}, i, { 1731 el: o 1732 }); 1733 a.push(new D(u)); 1734 }), a; 1735 } 1736 const n = this; 1737 n.__swiper__ = !0, n.support = Ee(), n.device = Ce({ 1738 userAgent: i.userAgent 1739 }), n.browser = Pe(), n.eventsListeners = {}, n.eventsAnyListeners = [], n.modules = [...n.__modules__], i.modules && Array.isArray(i.modules) && i.modules.forEach((a) => { 1740 typeof a == "function" && n.modules.indexOf(a) < 0 && n.modules.push(a); 1741 }); 1742 const l = {}; 1743 n.modules.forEach((a) => { 1744 a({ 1745 params: i, 1746 swiper: n, 1747 extendParams: Qt(i, l), 1748 on: n.on.bind(n), 1749 once: n.once.bind(n), 1750 off: n.off.bind(n), 1751 emit: n.emit.bind(n) 1752 }); 1753 }); 1754 const d = k({}, oe, l); 1755 return n.params = k({}, d, ne, i), n.originalParams = k({}, n.params), n.passedParams = k({}, i), n.params && n.params.on && Object.keys(n.params.on).forEach((a) => { 1756 n.on(a, n.params.on[a]); 1757 }), n.params && n.params.onAny && n.onAny(n.params.onAny), Object.assign(n, { 1758 enabled: n.params.enabled, 1759 el: t, 1760 // Classes 1761 classNames: [], 1762 // Slides 1763 slides: [], 1764 slidesGrid: [], 1765 snapGrid: [], 1766 slidesSizesGrid: [], 1767 // isDirection 1768 isHorizontal() { 1769 return n.params.direction === "horizontal"; 1770 }, 1771 isVertical() { 1772 return n.params.direction === "vertical"; 1773 }, 1774 // Indexes 1775 activeIndex: 0, 1776 realIndex: 0, 1777 // 1778 isBeginning: !0, 1779 isEnd: !1, 1780 // Props 1781 translate: 0, 1782 previousTranslate: 0, 1783 progress: 0, 1784 velocity: 0, 1785 animating: !1, 1786 cssOverflowAdjustment() { 1787 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 1788 }, 1789 // Locks 1790 allowSlideNext: n.params.allowSlideNext, 1791 allowSlidePrev: n.params.allowSlidePrev, 1792 // Touch Events 1793 touchEventsData: { 1794 isTouched: void 0, 1795 isMoved: void 0, 1796 allowTouchCallbacks: void 0, 1797 touchStartTime: void 0, 1798 isScrolling: void 0, 1799 currentTranslate: void 0, 1800 startTranslate: void 0, 1801 allowThresholdMove: void 0, 1802 // Form elements to match 1803 focusableElements: n.params.focusableElements, 1804 // Last click time 1805 lastClickTime: 0, 1806 clickTimeout: void 0, 1807 // Velocities 1808 velocities: [], 1809 allowMomentumBounce: void 0, 1810 startMoving: void 0, 1811 pointerId: null, 1812 touchId: null 1813 }, 1814 // Clicks 1815 allowClick: !0, 1816 // Touches 1817 allowTouchMove: n.params.allowTouchMove, 1818 touches: { 1819 startX: 0, 1820 startY: 0, 1821 currentX: 0, 1822 currentY: 0, 1823 diff: 0 1824 }, 1825 // Images 1826 imagesToLoad: [], 1827 imagesLoaded: 0 1828 }), n.emit("_swiper"), n.params.init && n.init(), n; 1829 } 1830 getDirectionLabel(s) { 1831 return this.isHorizontal() ? s : { 1832 width: "height", 1833 "margin-top": "margin-left", 1834 "margin-bottom ": "margin-right", 1835 "margin-left": "margin-top", 1836 "margin-right": "margin-bottom", 1837 "padding-left": "padding-top", 1838 "padding-right": "padding-bottom", 1839 marginRight: "marginBottom" 1840 }[s]; 1841 } 1842 getSlideIndex(s) { 1843 const { 1844 slidesEl: t, 1845 params: i 1846 } = this, r = N(t, `.${i.slideClass}, swiper-slide`), n = ue(r[0]); 1847 return ue(s) - n; 1848 } 1849 getSlideIndexByData(s) { 1850 return this.getSlideIndex(this.slides.find((t) => t.getAttribute("data-swiper-slide-index") * 1 === s)); 1851 } 1852 getSlideIndexWhenGrid(s) { 1853 return this.grid && this.params.grid && this.params.grid.rows > 1 && (this.params.grid.fill === "column" ? s = Math.floor(s / this.params.grid.rows) : this.params.grid.fill === "row" && (s = s % Math.ceil(this.slides.length / this.params.grid.rows))), s; 1854 } 1855 recalcSlides() { 1856 const s = this, { 1857 slidesEl: t, 1858 params: i 1859 } = s; 1860 s.slides = N(t, `.${i.slideClass}, swiper-slide`); 1861 } 1862 enable() { 1863 const s = this; 1864 s.enabled || (s.enabled = !0, s.params.grabCursor && s.setGrabCursor(), s.emit("enable")); 1865 } 1866 disable() { 1867 const s = this; 1868 s.enabled && (s.enabled = !1, s.params.grabCursor && s.unsetGrabCursor(), s.emit("disable")); 1869 } 1870 setProgress(s, t) { 1871 const i = this; 1872 s = Math.min(Math.max(s, 0), 1); 1873 const r = i.minTranslate(), l = (i.maxTranslate() - r) * s + r; 1874 i.translateTo(l, typeof t > "u" ? 0 : t), i.updateActiveIndex(), i.updateSlidesClasses(); 1875 } 1876 emitContainerClasses() { 1877 const s = this; 1878 if (!s.params._emitClasses || !s.el) return; 1879 const t = s.el.className.split(" ").filter((i) => i.indexOf("swiper") === 0 || i.indexOf(s.params.containerModifierClass) === 0); 1880 s.emit("_containerClasses", t.join(" ")); 1881 } 1882 getSlideClasses(s) { 1883 const t = this; 1884 return t.destroyed ? "" : s.className.split(" ").filter((i) => i.indexOf("swiper-slide") === 0 || i.indexOf(t.params.slideClass) === 0).join(" "); 1885 } 1886 emitSlidesClasses() { 1887 const s = this; 1888 if (!s.params._emitClasses || !s.el) return; 1889 const t = []; 1890 s.slides.forEach((i) => { 1891 const r = s.getSlideClasses(i); 1892 t.push({ 1893 slideEl: i, 1894 classNames: r 1895 }), s.emit("_slideClass", i, r); 1896 }), s.emit("_slideClasses", t); 1897 } 1898 slidesPerViewDynamic(s = "current", t = !1) { 1899 const i = this, { 1900 params: r, 1901 slides: n, 1902 slidesGrid: l, 1903 slidesSizesGrid: d, 1904 size: a, 1905 activeIndex: o 1906 } = i; 1907 let u = 1; 1908 if (typeof r.slidesPerView == "number") return r.slidesPerView; 1909 if (r.centeredSlides) { 1910 let f = n[o] ? Math.ceil(n[o].swiperSlideSize) : 0, h; 1911 for (let c = o + 1; c < n.length; c += 1) 1912 n[c] && !h && (f += Math.ceil(n[c].swiperSlideSize), u += 1, f > a && (h = !0)); 1913 for (let c = o - 1; c >= 0; c -= 1) 1914 n[c] && !h && (f += n[c].swiperSlideSize, u += 1, f > a && (h = !0)); 1915 } else if (s === "current") 1916 for (let f = o + 1; f < n.length; f += 1) 1917 (t ? l[f] + d[f] - l[o] < a : l[f] - l[o] < a) && (u += 1); 1918 else 1919 for (let f = o - 1; f >= 0; f -= 1) 1920 l[o] - l[f] < a && (u += 1); 1921 return u; 1922 } 1923 update() { 1924 const s = this; 1925 if (!s || s.destroyed) return; 1926 const { 1927 snapGrid: t, 1928 params: i 1929 } = s; 1930 i.breakpoints && s.setBreakpoint(), [...s.el.querySelectorAll('[loading="lazy"]')].forEach((l) => { 1931 l.complete && U(s, l); 1932 }), s.updateSize(), s.updateSlides(), s.updateProgress(), s.updateSlidesClasses(); 1933 function r() { 1934 const l = s.rtlTranslate ? s.translate * -1 : s.translate, d = Math.min(Math.max(l, s.maxTranslate()), s.minTranslate()); 1935 s.setTranslate(d), s.updateActiveIndex(), s.updateSlidesClasses(); 1936 } 1937 let n; 1938 if (i.freeMode && i.freeMode.enabled && !i.cssMode) 1939 r(), i.autoHeight && s.updateAutoHeight(); 1940 else { 1941 if ((i.slidesPerView === "auto" || i.slidesPerView > 1) && s.isEnd && !i.centeredSlides) { 1942 const l = s.virtual && i.virtual.enabled ? s.virtual.slides : s.slides; 1943 n = s.slideTo(l.length - 1, 0, !1, !0); 1944 } else 1945 n = s.slideTo(s.activeIndex, 0, !1, !0); 1946 n || r(); 1947 } 1948 i.watchOverflow && t !== s.snapGrid && s.checkOverflow(), s.emit("update"); 1949 } 1950 changeDirection(s, t = !0) { 1951 const i = this, r = i.params.direction; 1952 return s || (s = r === "horizontal" ? "vertical" : "horizontal"), s === r || s !== "horizontal" && s !== "vertical" || (i.el.classList.remove(`${i.params.containerModifierClass}${r}`), i.el.classList.add(`${i.params.containerModifierClass}${s}`), i.emitContainerClasses(), i.params.direction = s, i.slides.forEach((n) => { 1953 s === "vertical" ? n.style.width = "" : n.style.height = ""; 1954 }), i.emit("changeDirection"), t && i.update()), i; 1955 } 1956 changeLanguageDirection(s) { 1957 const t = this; 1958 t.rtl && s === "rtl" || !t.rtl && s === "ltr" || (t.rtl = s === "rtl", t.rtlTranslate = t.params.direction === "horizontal" && t.rtl, t.rtl ? (t.el.classList.add(`${t.params.containerModifierClass}rtl`), t.el.dir = "rtl") : (t.el.classList.remove(`${t.params.containerModifierClass}rtl`), t.el.dir = "ltr"), t.update()); 1959 } 1960 mount(s) { 1961 const t = this; 1962 if (t.mounted) return !0; 1963 let i = s || t.params.el; 1964 if (typeof i == "string" && (i = document.querySelector(i)), !i) 1965 return !1; 1966 i.swiper = t, i.parentNode && i.parentNode.host && i.parentNode.host.nodeName === t.params.swiperElementNodeName.toUpperCase() && (t.isElement = !0); 1967 const r = () => `.${(t.params.wrapperClass || "").trim().split(" ").join(".")}`; 1968 let l = i && i.shadowRoot && i.shadowRoot.querySelector ? i.shadowRoot.querySelector(r()) : N(i, r())[0]; 1969 return !l && t.params.createElements && (l = ae("div", t.params.wrapperClass), i.append(l), N(i, `.${t.params.slideClass}`).forEach((d) => { 1970 l.append(d); 1971 })), Object.assign(t, { 1972 el: i, 1973 wrapperEl: l, 1974 slidesEl: t.isElement && !i.parentNode.host.slideSlots ? i.parentNode.host : l, 1975 hostEl: t.isElement ? i.parentNode.host : i, 1976 mounted: !0, 1977 // RTL 1978 rtl: i.dir.toLowerCase() === "rtl" || $(i, "direction") === "rtl", 1979 rtlTranslate: t.params.direction === "horizontal" && (i.dir.toLowerCase() === "rtl" || $(i, "direction") === "rtl"), 1980 wrongRTL: $(l, "display") === "-webkit-box" 1981 }), !0; 1982 } 1983 init(s) { 1984 const t = this; 1985 if (t.initialized || t.mount(s) === !1) return t; 1986 t.emit("beforeInit"), t.params.breakpoints && t.setBreakpoint(), t.addClasses(), t.updateSize(), t.updateSlides(), t.params.watchOverflow && t.checkOverflow(), t.params.grabCursor && t.enabled && t.setGrabCursor(), t.params.loop && t.virtual && t.params.virtual.enabled ? t.slideTo(t.params.initialSlide + t.virtual.slidesBefore, 0, t.params.runCallbacksOnInit, !1, !0) : t.slideTo(t.params.initialSlide, 0, t.params.runCallbacksOnInit, !1, !0), t.params.loop && t.loopCreate(void 0, !0), t.attachEvents(); 1987 const r = [...t.el.querySelectorAll('[loading="lazy"]')]; 1988 return t.isElement && r.push(...t.hostEl.querySelectorAll('[loading="lazy"]')), r.forEach((n) => { 1989 n.complete ? U(t, n) : n.addEventListener("load", (l) => { 1990 U(t, l.target); 1991 }); 1992 }), le(t), t.initialized = !0, le(t), t.emit("init"), t.emit("afterInit"), t; 1993 } 1994 destroy(s = !0, t = !0) { 1995 const i = this, { 1996 params: r, 1997 el: n, 1998 wrapperEl: l, 1999 slides: d 2000 } = i; 2001 return typeof i.params > "u" || i.destroyed || (i.emit("beforeDestroy"), i.initialized = !1, i.detachEvents(), r.loop && i.loopDestroy(), t && (i.removeClasses(), n && typeof n != "string" && n.removeAttribute("style"), l && l.removeAttribute("style"), d && d.length && d.forEach((a) => { 2002 a.classList.remove(r.slideVisibleClass, r.slideFullyVisibleClass, r.slideActiveClass, r.slideNextClass, r.slidePrevClass), a.removeAttribute("style"), a.removeAttribute("data-swiper-slide-index"); 2003 })), i.emit("destroy"), Object.keys(i.eventsListeners).forEach((a) => { 2004 i.off(a); 2005 }), s !== !1 && (i.el && typeof i.el != "string" && (i.el.swiper = null), Ne(i)), i.destroyed = !0), null; 2006 } 2007 static extendDefaults(s) { 2008 k(ne, s); 2009 } 2010 static get extendedDefaults() { 2011 return ne; 2012 } 2013 static get defaults() { 2014 return oe; 2015 } 2016 static installModule(s) { 2017 D.prototype.__modules__ || (D.prototype.__modules__ = []); 2018 const t = D.prototype.__modules__; 2019 typeof s == "function" && t.indexOf(s) < 0 && t.push(s); 2020 } 2021 static use(s) { 2022 return Array.isArray(s) ? (s.forEach((t) => D.installModule(t)), D) : (D.installModule(s), D); 2023 } 2024}; 2025Object.keys(se).forEach((e) => { 2026 Object.keys(se[e]).forEach((s) => { 2027 de.prototype[s] = se[e][s]; 2028 }); 2029}); 2030de.use([Xe, Ue]); 2031const Oe = [ 2032 "eventsPrefix", 2033 "injectStyles", 2034 "injectStylesUrls", 2035 "modules", 2036 "init", 2037 "_direction", 2038 "oneWayMovement", 2039 "swiperElementNodeName", 2040 "touchEventsTarget", 2041 "initialSlide", 2042 "_speed", 2043 "cssMode", 2044 "updateOnWindowResize", 2045 "resizeObserver", 2046 "nested", 2047 "focusableElements", 2048 "_enabled", 2049 "_width", 2050 "_height", 2051 "preventInteractionOnTransition", 2052 "userAgent", 2053 "url", 2054 "_edgeSwipeDetection", 2055 "_edgeSwipeThreshold", 2056 "_freeMode", 2057 "_autoHeight", 2058 "setWrapperSize", 2059 "virtualTranslate", 2060 "_effect", 2061 "breakpoints", 2062 "breakpointsBase", 2063 "_spaceBetween", 2064 "_slidesPerView", 2065 "maxBackfaceHiddenSlides", 2066 "_grid", 2067 "_slidesPerGroup", 2068 "_slidesPerGroupSkip", 2069 "_slidesPerGroupAuto", 2070 "_centeredSlides", 2071 "_centeredSlidesBounds", 2072 "_slidesOffsetBefore", 2073 "_slidesOffsetAfter", 2074 "normalizeSlideIndex", 2075 "_centerInsufficientSlides", 2076 "_snapToSlideEdge", 2077 "_watchOverflow", 2078 "roundLengths", 2079 "touchRatio", 2080 "touchAngle", 2081 "simulateTouch", 2082 "_shortSwipes", 2083 "_longSwipes", 2084 "longSwipesRatio", 2085 "longSwipesMs", 2086 "_followFinger", 2087 "allowTouchMove", 2088 "_threshold", 2089 "touchMoveStopPropagation", 2090 "touchStartPreventDefault", 2091 "touchStartForcePreventDefault", 2092 "touchReleaseOnEdges", 2093 "uniqueNavElements", 2094 "_resistance", 2095 "_resistanceRatio", 2096 "_watchSlidesProgress", 2097 "_grabCursor", 2098 "preventClicks", 2099 "preventClicksPropagation", 2100 "_slideToClickedSlide", 2101 "_loop", 2102 "loopAdditionalSlides", 2103 "loopAddBlankSlides", 2104 "loopPreventsSliding", 2105 "_rewind", 2106 "_allowSlidePrev", 2107 "_allowSlideNext", 2108 "_swipeHandler", 2109 "_noSwiping", 2110 "noSwipingClass", 2111 "noSwipingSelector", 2112 "passiveListeners", 2113 "containerModifierClass", 2114 "slideClass", 2115 "slideActiveClass", 2116 "slideVisibleClass", 2117 "slideFullyVisibleClass", 2118 "slideNextClass", 2119 "slidePrevClass", 2120 "slideBlankClass", 2121 "wrapperClass", 2122 "lazyPreloaderClass", 2123 "lazyPreloadPrevNext", 2124 "runCallbacksOnInit", 2125 "observer", 2126 "observeParents", 2127 "observeSlideChildren", 2128 // modules 2129 "a11y", 2130 "_autoplay", 2131 "_controller", 2132 "coverflowEffect", 2133 "cubeEffect", 2134 "fadeEffect", 2135 "flipEffect", 2136 "creativeEffect", 2137 "cardsEffect", 2138 "hashNavigation", 2139 "history", 2140 "keyboard", 2141 "mousewheel", 2142 "_navigation", 2143 "_pagination", 2144 "parallax", 2145 "_scrollbar", 2146 "_thumbs", 2147 "virtual", 2148 "zoom", 2149 "control" 2150]; 2151function W(e) { 2152 return typeof e == "object" && e !== null && e.constructor && Object.prototype.toString.call(e).slice(8, -1) === "Object" && !e.__swiper__; 2153} 2154function X(e, s) { 2155 const t = ["__proto__", "constructor", "prototype"]; 2156 Object.keys(s).filter((i) => t.indexOf(i) < 0).forEach((i) => { 2157 typeof e[i] > "u" ? e[i] = s[i] : W(s[i]) && W(e[i]) && Object.keys(s[i]).length > 0 ? s[i].__swiper__ ? e[i] = s[i] : X(e[i], s[i]) : e[i] = s[i]; 2158 }); 2159} 2160function ze(e = {}) { 2161 return e.navigation && typeof e.navigation.nextEl > "u" && typeof e.navigation.prevEl > "u"; 2162} 2163function Le(e = {}) { 2164 return e.pagination && typeof e.pagination.el > "u"; 2165} 2166function Be(e = {}) { 2167 return e.scrollbar && typeof e.scrollbar.el > "u"; 2168} 2169function Ae(e = "") { 2170 const s = e.split(" ").map((i) => i.trim()).filter((i) => !!i), t = []; 2171 return s.forEach((i) => { 2172 t.indexOf(i) < 0 && t.push(i); 2173 }), t.join(" "); 2174} 2175function ei(e = "") { 2176 return e ? e.includes("swiper-wrapper") ? e : `swiper-wrapper ${e}` : "swiper-wrapper"; 2177} 2178function ti({ 2179 swiper: e, 2180 slides: s, 2181 passedParams: t, 2182 changedParams: i, 2183 nextEl: r, 2184 prevEl: n, 2185 scrollbarEl: l, 2186 paginationEl: d 2187}) { 2188 const a = i.filter((p) => p !== "children" && p !== "direction" && p !== "wrapperClass"), { 2189 params: o, 2190 pagination: u, 2191 navigation: f, 2192 scrollbar: h, 2193 virtual: c, 2194 thumbs: m 2195 } = e; 2196 let g, C, y, v, w, E, S, M; 2197 i.includes("thumbs") && t.thumbs && t.thumbs.swiper && !t.thumbs.swiper.destroyed && o.thumbs && (!o.thumbs.swiper || o.thumbs.swiper.destroyed) && (g = !0), i.includes("controller") && t.controller && t.controller.control && o.controller && !o.controller.control && (C = !0), i.includes("pagination") && t.pagination && (t.pagination.el || d) && (o.pagination || o.pagination === !1) && u && !u.el && (y = !0), i.includes("scrollbar") && t.scrollbar && (t.scrollbar.el || l) && (o.scrollbar || o.scrollbar === !1) && h && !h.el && (v = !0), i.includes("navigation") && t.navigation && (t.navigation.prevEl || n) && (t.navigation.nextEl || r) && (o.navigation || o.navigation === !1) && f && !f.prevEl && !f.nextEl && (w = !0); 2198 const T = (p) => { 2199 e[p] && (e[p].destroy(), p === "navigation" ? (e.isElement && (e[p].prevEl.remove(), e[p].nextEl.remove()), o[p].prevEl = void 0, o[p].nextEl = void 0, e[p].prevEl = void 0, e[p].nextEl = void 0) : (e.isElement && e[p].el.remove(), o[p].el = void 0, e[p].el = void 0)); 2200 }; 2201 i.includes("loop") && e.isElement && (o.loop && !t.loop ? E = !0 : !o.loop && t.loop ? S = !0 : M
2201= !0), a.forEach((p) => { 2202 if (W(o[p]) && W(t[p])) 2203 Object.assign(o[p], t[p]), (p === "navigation" || p === "pagination" || p === "scrollbar") && "enabled" in t[p] && !t[p].enabled && T(p); 2204 else { 2205 const O = t[p]; 2206 (O === !0 || O === !1) && (p === "navigation" || p === "pagination" || p === "scrollbar") ? O === !1 && T(p) : o[p] = t[p]; 2207 } 2208 }), a.includes("controller") && !C && e.controller && e.controller.control && o.controller && o.controller.control && (e.controller.control = o.controller.control), i.includes("children") && s && c && o.virtual.enabled ? (c.slides = s, c.update(!0)) : i.includes("virtual") && c && o.virtual.enabled && (s && (c.slides = s), c.update(!0)), i.includes("children") && s && o.loop && (M = !0), g && m.init() && m.update(!0), C && (e.controller.control = o.controller.control), y && (e.isElement && (!d || typeof d == "string") && (d = document.createElement("div"), d.classList.add("swiper-pagination"), d.part.add("pagination"), e.el.appendChild(d)), d && (o.pagination.el = d), u.init(), u.render(), u.update()), v && (e.isElement && (!l || typeof l == "string") && (l = document.createElement("div"), l.classList.add("swiper-scrollbar"), l.part.add("scrollbar"), e.el.appendChild(l)), l && (o.scrollbar.el = l), h.init(), h.updateSize(), h.setTranslate()), w && (e.isElement && ((!r || typeof r == "string") && (r = document.createElement("div"), r.classList.add("swiper-button-next"), ce(r, e.navigation.arrowSvg), r.part.add("button-next"), e.el.appendChild(r)), (!n || typeof n == "string") && (n = document.createElement("div"), n.classList.add("swiper-button-prev"), ce(n, e.navigation.arrowSvg), n.part.add("button-prev"), e.el.appendChild(n))), r && (o.navigation.nextEl = r), n && (o.navigation.prevEl = n), f.init(), f.update()), i.includes("allowSlideNext") && (e.allowSlideNext = t.allowSlideNext), i.includes("allowSlidePrev") && (e.allowSlidePrev = t.allowSlidePrev), i.includes("direction") && e.changeDirection(t.direction, !1), (E || M) && e.loopDestroy(), (S || M) && e.loopCreate(), e.update(); 2209} 2210function ve(e = {}, s = !0) { 2211 const t = { 2212 on: {} 2213 }, i = {}, r = {}; 2214 X(t, oe), t._emitClasses = !0, t.init = !1; 2215 const n = {}, l = Oe.map((a) => a.replace(/_/, "")), d = Object.assign({}, e); 2216 return Object.keys(d).forEach((a) => { 2217 typeof e[a] > "u" || (l.indexOf(a) >= 0 ? W(e[a]) ? (t[a] = {}, r[a] = {}, X(t[a], e[a]), X(r[a], e[a])) : (t[a] = e[a], r[a] = e[a]) : a.search(/on[A-Z]/) === 0 && typeof e[a] == "function" ? s ? i[`${a[2].toLowerCase()}${a.substr(3)}`] = e[a] : t.on[`${a[2].toLowerCase()}${a.substr(3)}`] = e[a] : n[a] = e[a]); 2218 }), ["navigation", "pagination", "scrollbar"].forEach((a) => { 2219 t[a] === !0 && (t[a] = {}), t[a] === !1 && delete t[a]; 2220 }), { 2221 params: t, 2222 passedParams: r, 2223 rest: n, 2224 events: i 2225 }; 2226} 2227function ii({ 2228 el: e, 2229 nextEl: s, 2230 prevEl: t, 2231 paginationEl: i, 2232 scrollbarEl: r, 2233 swiper: n 2234}, l) { 2235 ze(l) && s && t && (n.params.navigation.nextEl = s, n.originalParams.navigation.nextEl = s, n.params.navigation.prevEl = t, n.originalParams.navigation.prevEl = t), Le(l) && i && (n.params.pagination.el = i, n.originalParams.pagination.el = i), Be(l) && r && (n.params.scrollbar.el = r, n.originalParams.scrollbar.el = r), n.init(e); 2236} 2237function si(e, s, t, i, r) { 2238 const n = []; 2239 if (!s) return n; 2240 const l = (a) => { 2241 n.indexOf(a) < 0 && n.push(a); 2242 }; 2243 if (t && i) { 2244 const a = i.map(r), o = t.map(r); 2245 a.join("") !== o.join("") && l("children"), i.length !== t.length && l("children"); 2246 } 2247 return Oe.filter((a) => a[0] === "_").map((a) => a.replace(/_/, "")).forEach((a) => { 2248 if (a in e && a in s) 2249 if (W(e[a]) && W(s[a])) { 2250 const o = Object.keys(e[a]), u = Object.keys(s[a]); 2251 o.length !== u.length ? l(a) : (o.forEach((f) => { 2252 e[a][f] !== s[a][f] && l(a); 2253 }), u.forEach((f) => { 2254 e[a][f] !== s[a][f] && l(a); 2255 })); 2256 } else e[a] !== s[a] && l(a); 2257 }), n; 2258} 2259const ni = (e) => { 2260 !e || e.destroyed || !e.params.virtual || e.params.virtual && !e.params.virtual.enabled || (e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(), e.emit("_virtualUpdated"), e.parallax && e.params.parallax && e.params.parallax.enabled && e.parallax.setTranslate()); 2261}; 2262function re(e = {}, s, t) { 2263 const i = [], r = { 2264 "container-start": [], 2265 "container-end": [], 2266 "wrapper-start": [], 2267 "wrapper-end": [] 2268 }, n = (l, d) => { 2269 Array.isArray(l) && l.forEach((a) => { 2270 const o = typeof a.type == "symbol"; 2271 d === "default" && (d = "container-end"), o && a.children ? n(a.children, d) : a.type && (a.type.name === "SwiperSlide" || a.type.name === "AsyncComponentWrapper") || a.componentOptions && a.componentOptions.tag === "SwiperSlide" ? i.push(a) : r[d] && r[d].push(a); 2272 }); 2273 }; 2274 return Object.keys(e).forEach((l) => { 2275 if (typeof e[l] != "function") return; 2276 const d = e[l](); 2277 n(d, l); 2278 }), t.value = s.value, s.value = i, { 2279 slides: i, 2280 slots: r 2281 }; 2282} 2283function ri(e, s, t) { 2284 if (!t) return null; 2285 const i = (u) => { 2286 let f = u; 2287 return u < 0 ? f = s.length + u : f >= s.length && (f = f - s.length), f; 2288 }, r = e.value.isHorizontal() ? { 2289 [e.value.rtlTranslate ? "right" : "left"]: `${t.offset}px` 2290 } : { 2291 top: `${t.offset}px` 2292 }, { 2293 from: n, 2294 to: l 2295 } = t, d = e.value.params.loop ? -s.length : 0, a = e.value.params.loop ? s.length * 2 : s.length, o = []; 2296 for (let u = d; u < a; u += 1) 2297 u >= n && u <= l && o.length < s.length && o.push(s[i(u)]); 2298 return o.map((u) => { 2299 if (u.props || (u.props = {}), u.props.style || (u.props.style = {}), u.props.swiperRef = e, u.props.style = r, u.type) 2300 return V(u.type, { 2301 ...u.props 2302 }, u.children); 2303 if (u.componentOptions) 2304 return V(u.componentOptions.Ctor, { 2305 ...u.props 2306 }, u.componentOptions.children); 2307 }); 2308} 2309const oi = { 2310 name: "Swiper", 2311 props: { 2312 tag: { 2313 type: String, 2314 default: "div" 2315 }, 2316 wrapperTag: { 2317 type: String, 2318 default: "div" 2319 }, 2320 modules: { 2321 type: Array, 2322 default: void 0 2323 }, 2324 init: { 2325 type: Boolean, 2326 default: void 0 2327 }, 2328 direction: { 2329 type: String, 2330 default: void 0 2331 }, 2332 oneWayMovement: { 2333 type: Boolean, 2334 default: void 0 2335 }, 2336 swiperElementNodeName: { 2337 type: String, 2338 default: "SWIPER-CONTAINER" 2339 }, 2340 touchEventsTarget: { 2341 type: String, 2342 default: void 0 2343 }, 2344 initialSlide: { 2345 type: Number, 2346 default: void 0 2347 }, 2348 speed: { 2349 type: Number, 2350 default: void 0 2351 }, 2352 cssMode: { 2353 type: Boolean, 2354 default: void 0 2355 }, 2356 updateOnWindowResize: { 2357 type: Boolean, 2358 default: void 0 2359 }, 2360 resizeObserver: { 2361 type: Boolean, 2362 default: void 0 2363 }, 2364 nested: { 2365 type: Boolean, 2366 default: void 0 2367 }, 2368 focusableElements: { 2369 type: String, 2370 default: void 0 2371 }, 2372 width: { 2373 type: Number, 2374 default: void 0 2375 }, 2376 height: { 2377 type: Number, 2378 default: void 0 2379 }, 2380 preventInteractionOnTransition: { 2381 type: Boolean, 2382 default: void 0 2383 }, 2384 userAgent: { 2385 type: String, 2386 default: void 0 2387 }, 2388 url: { 2389 type: String, 2390 default: void 0 2391 }, 2392 edgeSwipeDetection: { 2393 type: [Boolean, String], 2394 default: void 0 2395 }, 2396 edgeSwipeThreshold: { 2397 type: Number, 2398 default: void 0 2399 }, 2400 autoHeight: { 2401 type: Boolean, 2402 default: void 0 2403 }, 2404 setWrapperSize: { 2405 type: Boolean, 2406 default: void 0 2407 }, 2408 virtualTranslate: { 2409 type: Boolean, 2410 default: void 0 2411 }, 2412 effect: { 2413 type: String, 2414 default: void 0 2415 }, 2416 breakpoints: { 2417 type: Object, 2418 default: void 0 2419 }, 2420 breakpointsBase: { 2421 type: String, 2422 default: void 0 2423 }, 2424 spaceBetween: { 2425 type: [Number, String], 2426 default: void 0 2427 }, 2428 slidesPerView: { 2429 type: [Number, String], 2430 default: void 0 2431 }, 2432 maxBackfaceHiddenSlides: { 2433 type: Number, 2434 default: void 0 2435 }, 2436 slidesPerGroup: { 2437 type: Number, 2438 default: void 0 2439 }, 2440 slidesPerGroupSkip: { 2441 type: Number, 2442 default: void 0 2443 }, 2444 slidesPerGroupAuto: { 2445 type: Boolean, 2446 default: void 0 2447 }, 2448 centeredSlides: { 2449 type: Boolean, 2450 default: void 0 2451 },
2452 centeredSlidesBounds: { 2453 type: Boolean, 2454 default: void 0 2455 }, 2456 slidesOffsetBefore: { 2457 type: Number, 2458 default: void 0 2459 }, 2460 slidesOffsetAfter: { 2461 type: Number, 2462 default: void 0 2463 }, 2464 normalizeSlideIndex: { 2465 type: Boolean, 2466 default: void 0 2467 }, 2468 centerInsufficientSlides: { 2469 type: Boolean, 2470 default: void 0 2471 }, 2472 watchOverflow: { 2473 type: Boolean, 2474 default: void 0 2475 }, 2476 roundLengths: { 2477 type: Boolean, 2478 default: void 0 2479 }, 2480 touchRatio: { 2481 type: Number, 2482 default: void 0 2483 }, 2484 touchAngle: { 2485 type: Number, 2486 default: void 0 2487 }, 2488 simulateTouch: { 2489 type: Boolean, 2490 default: void 0 2491 }, 2492 shortSwipes: { 2493 type: Boolean, 2494 default: void 0 2495 }, 2496 longSwipes: { 2497 type: Boolean, 2498 default: void 0 2499 }, 2500 longSwipesRatio: { 2501 type: Number, 2502 default: void 0 2503 }, 2504 longSwipesMs: { 2505 type: Number, 2506 default: void 0 2507 }, 2508 followFinger: { 2509 type: Boolean, 2510 default: void 0 2511 }, 2512 allowTouchMove: { 2513 type: Boolean, 2514 default: void 0 2515 }, 2516 threshold: { 2517 type: Number, 2518 default: void 0 2519 }, 2520 touchMoveStopPropagation: { 2521 type: Boolean, 2522 default: void 0 2523 }, 2524 touchStartPreventDefault: { 2525 type: Boolean, 2526 default: void 0 2527 }, 2528 touchStartForcePreventDefault: { 2529 type: Boolean, 2530 default: void 0 2531 }, 2532 touchReleaseOnEdges: { 2533 type: Boolean, 2534 default: void 0 2535 }, 2536 uniqueNavElements: { 2537 type: Boolean, 2538 default: void 0 2539 }, 2540 resistance: { 2541 type: Boolean, 2542 default: void 0 2543 }, 2544 resistanceRatio: { 2545 type: Number, 2546 default: void 0 2547 }, 2548 watchSlidesProgress: { 2549 type: Boolean, 2550 default: void 0 2551 }, 2552 grabCursor: { 2553 type: Boolean, 2554 default: void 0 2555 }, 2556 preventClicks: { 2557 type: Boolean, 2558 default: void 0 2559 }, 2560 preventClicksPropagation: { 2561 type: Boolean, 2562 default: void 0 2563 }, 2564 slideToClickedSlide: { 2565 type: Boolean, 2566 default: void 0 2567 }, 2568 loop: { 2569 type: Boolean, 2570 default: void 0 2571 }, 2572 loopedSlides: { 2573 type: Number, 2574 default: void 0 2575 }, 2576 loopPreventsSliding: { 2577 type: Boolean, 2578 default: void 0 2579 }, 2580 loopAdditionalSlides: { 2581 type: Number, 2582 default: void 0 2583 }, 2584 loopAddBlankSlides: { 2585 type: Boolean, 2586 default: void 0 2587 }, 2588 rewind: { 2589 type: Boolean, 2590 default: void 0 2591 }, 2592 allowSlidePrev: { 2593 type: Boolean, 2594 default: void 0 2595 }, 2596 allowSlideNext: { 2597 type: Boolean, 2598 default: void 0 2599 }, 2600 swipeHandler: { 2601 type: Boolean, 2602 default: void 0 2603 }, 2604 noSwiping: { 2605 type: Boolean, 2606 default: void 0 2607 }, 2608 noSwipingClass: { 2609 type: String, 2610 default: void 0 2611 }, 2612 noSwipingSelector: { 2613 type: String, 2614 default: void 0 2615 }, 2616 passiveListeners: { 2617 type: Boolean, 2618 default: void 0 2619 }, 2620 containerModifierClass: { 2621 type: String, 2622 default: void 0 2623 }, 2624 slideClass: { 2625 type: String, 2626 default: void 0 2627 }, 2628 slideActiveClass: { 2629 type: String, 2630 default: void 0 2631 }, 2632 slideVisibleClass: { 2633 type: String, 2634 default: void 0 2635 }, 2636 slideFullyVisibleClass: { 2637 type: String, 2638 default: void 0 2639 }, 2640 slideBlankClass: { 2641 type: String, 2642 default: void 0 2643 }, 2644 slideNextClass: { 2645 type: String, 2646 default: void 0 2647 }, 2648 slidePrevClass: { 2649 type: String, 2650 default: void 0 2651 }, 2652 wrapperClass: { 2653 type: String, 2654 default: void 0 2655 }, 2656 lazyPreloaderClass: { 2657 type: String, 2658 default: void 0 2659 }, 2660 lazyPreloadPrevNext: { 2661 type: Number, 2662 default: void 0 2663 }, 2664 runCallbacksOnInit: { 2665 type: Boolean, 2666 default: void 0 2667 }, 2668 observer: { 2669 type: Boolean, 2670 default: void 0 2671 }, 2672 observeParents: { 2673 type: Boolean, 2674 default: void 0 2675 }, 2676 observeSlideChildren: { 2677 type: Boolean, 2678 default: void 0 2679 }, 2680 a11y: { 2681 type: [Boolean, Object], 2682 default: void 0 2683 }, 2684 autoplay: { 2685 type: [Boolean, Object], 2686 default: void 0 2687 }, 2688 controller: { 2689 type: Object, 2690 default: void 0 2691 }, 2692 coverflowEffect: { 2693 type: Object, 2694 default: void 0 2695 }, 2696 cubeEffect: { 2697 type: Object, 2698 default: void 0 2699 }, 2700 fadeEffect: { 2701 type: Object, 2702 default: void 0 2703 }, 2704 flipEffect: { 2705 type: Object, 2706 default: void 0 2707 }, 2708 creativeEffect: { 2709 type: Object, 2710 default: void 0 2711 }, 2712 cardsEffect: { 2713 type: Object, 2714 default: void 0 2715 }, 2716 hashNavigation: { 2717 type: [Boolean, Object], 2718 default: void 0 2719 }, 2720 history: { 2721 type: [Boolean, Object], 2722 default: void 0 2723 }, 2724 keyboard: { 2725 type: [Boolean, Object], 2726 default: void 0 2727 }, 2728 mousewheel: { 2729 type: [Boolean, Object], 2730 default: void 0 2731 }, 2732 navigation: { 2733 type: [Boolean, Object], 2734 default: void 0 2735 }, 2736 pagination: { 2737 type: [Boolean, Object], 2738 default: void 0 2739 }, 2740 parallax: { 2741 type: [Boolean, Object], 2742 default: void 0 2743 }, 2744 scrollbar: { 2745 type: [Boolean, Object], 2746 default: void 0 2747 }, 2748 thumbs: { 2749 type: Object, 2750 default: void 0 2751 }, 2752 virtual: { 2753 type: [Boolean, Object], 2754 default: void 0 2755 }, 2756 zoom: { 2757 type: [Boolean, Object], 2758 default: void 0 2759 }, 2760 grid: { 2761 type: [Object], 2762 default: void 0 2763 }, 2764 freeMode: { 2765 type: [Boolean, Object], 2766 default: void 0 2767 }, 2768 enabled: { 2769 type: Boolean, 2770 default: void 0 2771 } 2772 }, 2773 emits: ["_beforeBreakpoint", "_containerClasses", "_slideClass", "_slideClasses", "_swiper", "_freeModeNoMomentumRelease", "_virtualUpdated", "activeIndexChange", "afterInit", "autoplay", "autoplayStart", "autoplayStop", "autoplayPause", "autoplayResume", "autoplayTimeLeft", "beforeDestroy", "beforeInit", "beforeLoopFix", "beforeResize", "beforeSlideChangeStart", "beforeTransitionStart", "breakpoint", "changeDirection", "click", "disable", "doubleTap", "doubleClick", "destroy", "enable", "fromEdge", "hashChange", "hashSet", "init", "keyPress", "lock", "loopFix", "momentumBounce", "navigationHide", "navigationShow", "navigationPrev", "navigationNext", "observerUpdate", "orientationchange", "paginationHide", "paginationRender", "paginationShow", "paginationUpdate", "progress", "reachBeginning", "reachEnd", "realIndexChange", "resize", "scroll", "scrollbarDragEnd", "scrollbarDragMove", "scrollbarDragStart", "setTransition", "setTranslate", "slidesUpdated", "slideChange", "slideChangeTransitionEnd", "slideChangeTransitionStart", "slideNextTransitionEnd", "slideNextTransitionStart", "slidePrevTransitionEnd", "slidePrevTransitionStart", "slideResetTransitionStart", "slideResetTransitionEnd", "sliderMove", "sliderFirstMove", "slidesLengthChange", "slidesGridLengthChange", "snapGridLengthChange", "snapIndexChange", "swiper", "tap", "toEdge", "touchEnd", "touchMove", "touchMoveOpposite", "touchStart", "transitionEnd", "transitionStart", "unlock", "update", "virtualUpdate", "zoomChange"], 2774 setup(e, { 2775 slots: s, 2776 emit: t 2777 }) { 2778 const { 2779 tag: i, 2780 wrapperTag: r 2781 } = e, n = G("swiper"), l = G(null), d = G(!1), a = G(!1), o = G(null), u = G(null), f = G(null), h
2781= { 2782 value: [] 2783 }, c = { 2784 value: [] 2785 }, m = G(null), g = G(null), C = G(null), y = G(null), { 2786 params: v, 2787 passedParams: w 2788 } = ve(e, !1); 2789 re(s, h, c), f.value = w, c.value = h.value; 2790 const E = () => { 2791 re(s, h, c), d.value = !0; 2792 }; 2793 v.onAny = (T, ...p) => { 2794 t(T, ...p); 2795 }, Object.assign(v.on, { 2796 _beforeBreakpoint: E, 2797 _containerClasses(T, p) { 2798 n.value = p; 2799 } 2800 }); 2801 const S = { 2802 ...v 2803 }; 2804 if (delete S.wrapperClass, u.value = new de(S), u.value.virtual && u.value.params.virtual.enabled) { 2805 u.value.virtual.slides = h.value; 2806 const T = { 2807 cache: !1, 2808 slides: h.value, 2809 renderExternal: (p) => { 2810 l.value = p; 2811 }, 2812 renderExternalUpdate: !1 2813 }; 2814 X(u.value.params.virtual, T), X(u.value.originalParams.virtual, T); 2815 } 2816 we(() => { 2817 !a.value && u.value && (u.value.emitSlidesClasses(), a.value = !0); 2818 const { 2819 passedParams: T 2820 } = ve(e, !1), p = si(T, f.value, h.value, c.value, (O) => O.props && O.props.key); 2821 f.value = T, (p.length || d.value) && u.value && !u.value.destroyed && ti({ 2822 swiper: u.value, 2823 slides: h.value, 2824 passedParams: T, 2825 changedParams: p, 2826 nextEl: m.value, 2827 prevEl: g.value, 2828 scrollbarEl: y.value, 2829 paginationEl: C.value 2830 }), d.value = !1; 2831 }), Se("swiper", u), Ge(l, () => { 2832 Ve(() => { 2833 ni(u.value); 2834 }); 2835 }), be(() => { 2836 o.value && (ii({ 2837 el: o.value, 2838 nextEl: m.value, 2839 prevEl: g.value, 2840 paginationEl: C.value, 2841 scrollbarEl: y.value, 2842 swiper: u.value 2843 }, v), t("swiper", u.value)); 2844 }), ye(() => { 2845 u.value && !u.value.destroyed && u.value.destroy(!0, !1); 2846 }); 2847 function M(T) { 2848 return v.virtual ? ri(u, T, l.value) : (T.forEach((p, O) => { 2849 p.props || (p.props = {}), p.props.swiperRef = u, p.props.swiperSlideIndex = O; 2850 }), T); 2851 } 2852 return () => { 2853 const { 2854 slides: T, 2855 slots: p 2856 } = re(s, h, c); 2857 return V(i, { 2858 ref: o, 2859 class: Ae(n.value) 2860 }, [p["container-start"], V(r, { 2861 class: ei(v.wrapperClass) 2862 }, [p["wrapper-start"], M(T), p["wrapper-end"]]), ze(e) && [V("div", { 2863 ref: g, 2864 class: "swiper-button-prev" 2865 }), V("div", { 2866 ref: m, 2867 class: "swiper-button-next" 2868 })], Be(e) && V("div", { 2869 ref: y, 2870 class: "swiper-scrollbar" 2871 }), Le(e) && V("div", { 2872 ref: C, 2873 class: "swiper-pagination" 2874 }), p["container-end"]]); 2875 }; 2876 } 2877}, di = { 2878 name: "SwiperSlide", 2879 props: { 2880 tag: { 2881 type: String, 2882 default: "div" 2883 }, 2884 swiperRef: { 2885 type: Object, 2886 required: !1 2887 }, 2888 swiperSlideIndex: { 2889 type: Number, 2890 default: void 0, 2891 required: !1 2892 }, 2893 zoom: { 2894 type: Boolean, 2895 default: void 0, 2896 required: !1 2897 }, 2898 lazy: { 2899 type: Boolean, 2900 default: !1, 2901 required: !1 2902 }, 2903 virtualIndex: { 2904 type: [String, Number], 2905 default: void 0 2906 } 2907 }, 2908 setup(e, { 2909 slots: s 2910 }) { 2911 let t = !1; 2912 const { 2913 swiperRef: i 2914 } = e, r = G(null), n = G("swiper-slide"), l = G(!1); 2915 function d(u, f, h) { 2916 f === r.value && (n.value = h); 2917 } 2918 be(() => { 2919 !i || !i.value || (i.value.on("_slideClass", d), t = !0); 2920 }), ke(() => { 2921 t || !i || !i.value || (i.value.on("_slideClass", d), t = !0); 2922 }), we(() => { 2923 !r.value || !i || !i.value || (typeof e.swiperSlideIndex < "u" && (r.value.swiperSlideIndex = e.swiperSlideIndex), i.value.destroyed && n.value !== "swiper-slide" && (n.value = "swiper-slide")); 2924 }), ye(() => { 2925 !i || !i.value || i.value.off("_slideClass", d); 2926 }); 2927 const a = De(() => ({ 2928 isActive: n.value.indexOf("swiper-slide-active") >= 0, 2929 isVisible: n.value.indexOf("swiper-slide-visible") >= 0, 2930 isPrev: n.value.indexOf("swiper-slide-prev") >= 0, 2931 isNext: n.value.indexOf("swiper-slide-next") >= 0 2932 })); 2933 Se("swiperSlide", a); 2934 const o = () => { 2935 l.value = !0; 2936 }; 2937 return () => V(e.tag, { 2938 class: Ae(`${n.value}`), 2939 ref: r, 2940 "data-swiper-slide-index": typeof e.virtualIndex > "u" && i && i.value && i.value.params.loop ? e.swiperSlideIndex : e.virtualIndex, 2941 onLoadCapture: o 2942 }, e.zoom ? V("div", { 2943 class: "swiper-zoom-container", 2944 "data-swiper-zoom": typeof e.zoom == "number" ? e.zoom : void 0 2945 }, [s.default && s.default(a.value), e.lazy && !l.value && V("div", { 2946 class: "swiper-lazy-preloader", 2947 onVnodeMounted: (u) => { 2948 u.el && (u.el.lazyPreloaderManaged = !0); 2949 } 2950 })]) : [s.default && s.default(a.value), e.lazy && !l.value && V("div", { 2951 class: "swiper-lazy-preloader", 2952 onVnodeMounted: (u) => { 2953 u.el && (u.el.lazyPreloaderManaged = !0); 2954 } 2955 })]); 2956 } 2957}; 2958export { 2959 oi as Swiper, 2960 di as SwiperSlide 2961};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.