vendor: 4,830 bytes, lines 1-174
1function isObject$1(e) { 2 return typeof e == "object" && !!e && "constructor" in e && e.constructor === Object; 3} 4function extend$1(w, T) { 5 w === void 0 && (w = {}), T === void 0 && (T = {}); 6 let E = [ 7 "__proto__", 8 "constructor", 9 "prototype" 10 ]; 11 Object.keys(T).filter((e) => E.indexOf(e) < 0).forEach((E) => { 12 w[E] === void 0 ? w[E] = T[E] : isObject$1(T[E]) && isObject$1(w[E]) && Object.keys(T[E]).length > 0 && extend$1(w[E], T[E]); 13 }); 14} 15var ssrDocument = { 16 body: {}, 17 addEventListener() {}, 18 removeEventListener() {}, 19 activeElement: { 20 blur() {}, 21 nodeName: "" 22 }, 23 querySelector() { 24 return null; 25 }, 26 querySelectorAll() { 27 return []; 28 }, 29 getElementById() { 30 return null; 31 }, 32 createEvent() { 33 return { initEvent() {} }; 34 }, 35 createElement() { 36 return { 37 children: [], 38 childNodes: [], 39 style: {}, 40 setAttribute() {}, 41 getElementsByTagName() { 42 return []; 43 } 44 }; 45 }, 46 createElementNS() { 47 return {}; 48 }, 49 importNode() { 50 return null; 51 }, 52 location: { 53 hash: "", 54 host: "", 55 hostname: "", 56 href: "", 57 origin: "", 58 pathname: "", 59 protocol: "", 60 search: "" 61 } 62}; 63function getDocument() { 64 let e = typeof document < "u" ? document : {}; 65 return extend$1(e, ssrDocument), e; 66} 67var ssrWindow = { 68 document: ssrDocument, 69 navigator: { userAgent: "" }, 70 location: { 71 hash: "", 72 host: "", 73 hostname: "", 74 href: "", 75 origin: "", 76 pathname: "", 77 protocol: "", 78 search: "" 79 }, 80 history: { 81 replaceState() {}, 82 pushState() {}, 83 go() {}, 84 back() {} 85 }, 86 CustomEvent: function() { 87 return this; 88 }, 89 addEventListener() {}, 90 removeEventListener() {}, 91 getComputedStyle() { 92 return { getPropertyValue() { 93 return ""; 94 } }; 95 }, 96 Image() {}, 97 Date() {}, 98 screen: {}, 99 setTimeout() {}, 100 clearTimeout() {}, 101 matchMedia() { 102 return {}; 103 }, 104 requestAnimationFrame(e) { 105 return typeof setTimeout > "u" ? (e(), null) : setTimeout(e, 0); 106 }, 107 cancelAnimationFrame(e) { 108 typeof setTimeout > "u" || clearTimeout(e); 109 } 110}; 111function getWindow() { 112 let e = typeof window < "u" ? window : {}; 113 return extend$1(e, ssrWindow), e; 114} 115function classesToTokens(e) { 116 return e === void 0 && (e = ""), e.trim().split(" ").filter((e) => !!e.trim()); 117} 118function deleteProps(e) { 119 let C = e; 120 Object.keys(C).forEach((e) => { 121 try { 122 C[e] = null; 123 } catch {} 124 try { 125 delete C[e]; 126 } catch {} 127 }); 128} 129function nextTick(e, C) { 130 return C === void 0 && (C = 0), setTimeout(e, C); 131} 132function now() { 133 return Date.now(); 134} 135function getComputedStyle$1(e) { 136 let C = getWindow(), w; 137 return C.getComputedStyle && (w = C.getComputedStyle(e, null)), !w && e.currentStyle && (w = e.currentStyle), w ||= e.style, w; 138} 139function getTranslate(e, C) { 140 C === void 0 && (C = "x"); 141 let w = getWindow(), T, E, O, k = getComputedStyle$1(e); 142 return w.WebKitCSSMatrix ? (E = k.transform || k.webkitTransform, E.split(",").length > 6 && (E = E.split(", ").map((e) => e.replace(",", ".")).join(", ")), O = new w.WebKitCSSMatrix(E === "none" ? "" : E)) : (O = k.MozTransform || k.OTransform || k.MsTransform || k.msTransform || k.transform || k.getPropertyValue("transform").replace("translate(", "matrix(1, 0, 0, 1,"), T = O.toString().split(",")), C === "x" && (E = w.WebKitCSSMatrix ? O.m41 : T.length === 16 ? parseFloat(T[12]) : parseFloat(T[4])), C === "y" && (E = w.WebKitCSSMatrix ? O.m42 : T.length === 16 ? parseFloat(T[13]) : parseFloat(T[5])), E || 0; 143} 144function isObject(e) { 145 return typeof e == "object" && !!e && e.constructor && Object.prototype.toString.call(e).slice(8, -1) === "Object"; 146} 147function isNode(e) { 148 return typeof window < "u" && window.HTMLElement !== void 0 ? e instanceof HTMLElement : e && (e.nodeType === 1 || e.nodeType === 11); 149} 150function extend() { 151 let e = Object(arguments.length <= 0 ? void 0 : arguments[0]), C = [ 152 "__proto__", 153 "constructor", 154 "prototype" 155 ]; 156 for (let w = 1; w < arguments.length; w += 1) { 157 let T = w < 0 || arguments.length <= w ? void 0 : arguments[w]; 158 if (T != null && !isNode(T)) { 159 let w = Object.keys(Object(T)).filter((e) => C.indexOf(e) < 0); 160 for (let C = 0, E = w.length; C < E; C += 1) { 161 let E = w[C], D = Object.getOwnPropertyDescriptor(T, E); 162 D !== void 0 && D.enumerable && (isObject(e[E]) && isObject(T[E]) ? T[E].__swiper__ ? e[E] = T[E] : extend(e[E], T[E]) : !isObject(e[E]) && isObject(T[E]) ? (e[E] = {}, T[E].__swiper__ ? e[E] = T[E] : extend(e[E], T[E])) : e[E] = T[E]); 163 } 164 } 165 } 166 return e; 167} 168function setCSSProperty(e, C, w) { 169 e.style.setProperty(C, w); 170} 171function animateCSSModeScroll(e) { 172 let { swiper: C, targetPosition: w, side: T } = e, E = getWindow(), O = -C.translate, k = null, A, j = C.params.speed; 173 C.wrapperEl.style.scrollSnapType = "none", E.cancelAnimationFrame(C.cssModeFrameID); 174 let M = w > O ? "next" : "prev", N = (e, C) => M === "next" && e >= C || M === "prev" && e <= C, P = () => {
175 A = (/* @__PURE__ */ new Date()).getTime(), k === null && (k = A); 176 let e = Math.max(Math.min((A - k) / j, 1), 0), D = O + (.5 - Math.cos(e * Math.PI) / 2) * (w - O); 177 if (N(D, w) && (D = w), C.wrapperEl.scrollTo({ [T]: D }), N(D, w)) { 178 C.wrapperEl.style.overflow = "hidden", C.wrapperEl.style.scrollSnapType = "", setTimeout(() => { 179 C.wrapperEl.style.overflow = "", C.wrapperEl.scrollTo({ [T]: D }); 180 }), E.cancelAnimationFrame(C.cssModeFrameID); 181 return; 182 } 183 C.cssModeFrameID = E.requestAnimationFrame(P); 184 }; 185 P(); 186} 187function getSlideTransformEl(e) { 188 return e.querySelector(".swiper-slide-transform") || e.shadowRoot && e.shadowRoot.querySelector(".swiper-slide-transform") || e; 189} 190function elementChildren(e, C) { 191 C === void 0 && (C = ""); 192 let w = getWindow(), T = [...e.children]; 193 return w.HTMLSlotElement && e instanceof HTMLSlotElement && T.push(...e.assignedElements()), C ? T.filter((e) => e.matches(C)) : T; 194} 195function elementIsChildOfSlot(e, C) { 196 let w = [C]; 197 for (; w.length > 0;) { 198 let C = w.shift(); 199 if (e === C) return !0; 200 w.push(...C.children, ...C.shadowRoot ? C.shadowRoot.children : [], ...C.assignedElements ? C.assignedElements() : []); 201 } 202} 203function elementIsChildOf(e, C) { 204 let w = getWindow(), T = C.contains(e); 205 return !T && w.HTMLSlotElement && C instanceof HTMLSlotElement && (T = [...C.assignedElements()].includes(e), T ||= elementIsChildOfSlot(e, C)), T; 206} 207function showWarning(e) { 208 try { 209 console.warn(e); 210 return; 211 } catch {} 212} 213function createElement(e, C) { 214 C === void 0 && (C = []); 215 let w = document.createElement(e); 216 return w.classList.add(...Array.isArray(C) ? C : classesToTokens(C)), w; 217} 218function elementOffset(e) { 219 let C = getWindow(), w = getDocument(), E = e.getBoundingClientRect(), O = w.body, k = e.clientTop || O.clientTop || 0, A = e.clientLeft || O.clientLeft || 0, j = e === C ? C.scrollY : e.scrollTop, M = e === C ? C.scrollX : e.scrollLeft; 220 return { 221 top: E.top + j - k, 222 left: E.left + M - A 223 }; 224} 225function elementPrevAll(e, C) { 226 let w = []; 227 for (; e.previousElementSibling;) { 228 let T = e.previousElementSibling; 229 C ? T.matches(C) && w.push(T) : w.push(T), e = T; 230 } 231 return w; 232} 233function elementNextAll(e, C) { 234 let w = []; 235 for (; e.nextElementSibling;) { 236 let T = e.nextElementSibling; 237 C ? T.matches(C) && w.push(T) : w.push(T), e = T; 238 } 239 return w; 240} 241function elementStyle(e, C) { 242 return getWindow().getComputedStyle(e, null).getPropertyValue(C); 243} 244function elementIndex(e) { 245 let C = e, w; 246 if (C) { 247 for (w = 0; (C = C.previousSibling) !== null;) C.nodeType === 1 && (w += 1); 248 return w; 249 } 250} 251function elementParents(e, C) { 252 let w = [], T = e.parentElement; 253 for (; T;) C ? T.matches(C) && w.push(T) : w.push(T), T = T.parentElement; 254 return w; 255} 256function elementTransitionEnd(e, C) { 257 function w(T) { 258 T.target === e && (C.call(e, T), e.removeEventListener("transitionend", w)); 259 } 260 C && e.addEventListener("transitionend", w); 261} 262function elementOuterSize(e, C, w) { 263 let T = getWindow(); 264 return w ? e[C === "width" ? "offsetWidth" : "offsetHeight"] + parseFloat(T.getComputedStyle(e, null).getPropertyValue(C === "width" ? "margin-right" : "margin-top")) + parseFloat(T.getComputedStyle(e, null).getPropertyValue(C === "width" ? "margin-left" : "margin-bottom")) : e.offsetWidth; 265} 266function makeElementsArray(e) { 267 return (Array.isArray(e) ? e : [e]).filter((e) => !!e); 268} 269function getRotateFix(e) { 270 return (C) => Math.abs(C) > 0 && e.browser && e.browser.need3dFix && Math.abs(C) % 90 == 0 ? C + .001 : C; 271} 272function setInnerHTML(e, C) { 273 C === void 0 && (C = ""), typeof trustedTypes < "u" ? e.innerHTML = trustedTypes.createPolicy("html", { createHTML: (e) => e }).createHTML(C) : e.innerHTML = C; 274} 275var support; 276function calcSupport() { 277 let e = getWindow(), C = getDocument(); 278 return { 279 smoothScroll: C.documentElement && C.documentElement.style && "scrollBehavior" in C.documentElement.style, 280 touch: !!("ontouchstart" in e || e.DocumentTouch && C instanceof e.DocumentTouch) 281 }; 282} 283function getSupport() { 284 return support ||= calcSupport(), support; 285} 286var deviceCached; 287function calcDevice(e) { 288 let { userAgent: C } = e === void 0 ? {}
288 : e, w = getSupport(), T = getWindow(), E = T.navigator.platform, O = C || T.navigator.userAgent, k = { 289 ios: !1, 290 android: !1 291 }, A = T.screen.width, j = T.screen.height, M = O.match(/(Android);?[\s\/]+([\d.]+)?/), N = O.match(/(iPad).*OS\s([\d_]+)/), P = O.match(/(iPod)(.*OS\s([\d_]+))?/), F = !N && O.match(/(iPhone\sOS|iOS)\s([\d_]+)/), I = E === "Win32", L = E === "MacIntel"; 292 return !N && L && w.touch && [ 293 "1024x1366", 294 "1366x1024", 295 "834x1194", 296 "1194x834", 297 "834x1112", 298 "1112x834", 299 "768x1024", 300 "1024x768", 301 "820x1180", 302 "1180x820", 303 "810x1080", 304 "1080x810" 305 ].indexOf(`${A}x${j}`) >= 0 && (N = O.match(/(Version)\/([\d.]+)/), N ||= [ 306 0, 307 1, 308 "13_0_0" 309 ], L = !1), M && !I && (k.os = "android", k.android = !0), (N || F || P) && (k.os = "ios", k.ios = !0), k; 310} 311function getDevice(e) { 312 return e === void 0 && (e = {}), deviceCached ||= calcDevice(e), deviceCached; 313} 314var browser; 315function calcBrowser() { 316 let e = getWindow(), C = getDevice(), w = !1; 317 function T() { 318 let C = e.navigator.userAgent.toLowerCase(); 319 return C.indexOf("safari") >= 0 && C.indexOf("chrome") < 0 && C.indexOf("android") < 0; 320 } 321 if (T()) { 322 let C = String(e.navigator.userAgent); 323 if (C.includes("Version/")) { 324 let [e, T] = C.split("Version/")[1].split(" ")[0].split(".").map((e) => Number(e)); 325 w = e < 16 || e === 16 && T < 2; 326 } 327 } 328 let E = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent), O = T(), k = O || E && C.ios; 329 return { 330 isSafari: w || O, 331 needPerspectiveFix: w, 332 need3dFix: k, 333 isWebView: E 334 }; 335} 336function getBrowser() { 337 return browser ||= calcBrowser(), browser; 338} 339function Resize(e) { 340 let { swiper: C, on: w, emit: T } = e, E = getWindow(), O = null, k = null, A = () => { 341 !C || C.destroyed || !C.initialized || (T("beforeResize"), T("resize")); 342 }, j = () => { 343 !C || C.destroyed || !C.initialized || (O = new ResizeObserver((e) => { 344 k = E.requestAnimationFrame(() => { 345 let { width: w, height: T } = C, E = w, D = T; 346 e.forEach((e) => { 347 let { contentBoxSize: w, contentRect: T, target: O } = e; 348 O && O !== C.el || (E = T ? T.width : (w[0] || w).inlineSize, D = T ? T.height : (w[0] || w).blockSize); 349 }), (E !== w || D !== T) && A(); 350 }); 351 }), O.observe(C.el)); 352 }, M = () => { 353 k && E.cancelAnimationFrame(k), O && O.unobserve && C.el && (O.unobserve(C.el), O = null); 354 }, N = () => { 355 !C || C.destroyed || !C.initialized || T("orientationchange"); 356 }; 357 w("init", () => { 358 if (C.params.resizeObserver && E.ResizeObserver !== void 0) { 359 j(); 360 return; 361 } 362 E.addEventListener("resize", A), E.addEventListener("orientationchange", N); 363 }), w("destroy", () => { 364 M(), E.removeEventListener("resize", A), E.removeEventListener("orientationchange", N); 365 }); 366} 367function Observer(e) { 368 let { swiper: C, extendParams: w, on: T, emit: E } = e, O = [], k = getWindow(), A = function(e, w) { 369 w === void 0 && (w = {}); 370 let T = new (k.MutationObserver || k.WebkitMutationObserver)((e) => { 371 if (C.__preventObserver__) return; 372 if (e.length === 1) { 373 E("observerUpdate", e[0]); 374 return; 375 } 376 let w = function() { 377 E("observerUpdate", e[0]); 378 }; 379 k.requestAnimationFrame ? k.requestAnimationFrame(w) : k.setTimeout(w, 0); 380 }); 381 T.observe(e, { 382 attributes: w.attributes === void 0 ? !0 : w.attributes, 383 childList: C.isElement || (w.childList === void 0 ? !0 : w).childList, 384 characterData: w.characterData === void 0 ? !0 : w.characterData 385 }), O.push(T); 386 }; 387 w({ 388 observer: !1, 389 observeParents: !1, 390 observeSlideChildren: !1 391 }), T("init", () => { 392 if (C.params.observer) { 393 if (C.params.observeParents) { 394 let e = elementParents(C.hostEl); 395 for (let C = 0; C < e.length; C += 1) A(e[C]); 396 } 397 A(C.hostEl, { childList: C.params.observeSlideChildren }), A(C.wrapperEl, { attributes: !1 }); 398 } 399 }), T("destroy", () => { 400 O.forEach((e) => { 401 e.disconnect(); 402 }), O.splice(0, O.length); 403 }); 404} 405var eventsEmitter = { 406 on(e, C, w) { 407 let T = this; 408 if (!T.eventsListeners || T.destroyed || typeof C != "function") return T; 409 let E = w ? "unshift" : "push"; 410 return e.split(" ").forEach((e) => { 411 T.eventsListeners[e] || (T.eventsListeners[e] = []), T.eventsListeners[e][E](C); 412 }), T; 413 }, 414 once(e, C, w) { 415 let T = this; 416 if (!T.eventsListeners || T.destroyed || typeof C != "function") return T; 417 function E() { 418 T.off(e, E), E.__emitterProxy && delete E.__emitterProxy; 419 var w = [...arguments]; 420 C.apply(T, w); 421 } 422 return E.__emitterProxy = C, T.on(e, E, w); 423 }, 424 onAny(e, C) { 425 let w = this; 426 if (!w.eventsListeners || w.destroyed || typeof e != "function") return w; 427 let T = C ? "unshift" : "push"; 428 return w.eventsAnyListeners.indexOf(e) < 0 && w.eventsAnyListeners[T](e), w; 429 }, 430 offAny(e) { 431 let C = this; 432 if (!C.eventsListeners || C.destroyed || !C.eventsAnyListeners) return C; 433 let w = C.eventsAnyListeners.indexOf(e); 434 return w >= 0 && C.eventsAnyListeners.splice(w, 1), C; 435 }, 436 off(e, C) { 437 let w = this; 438 return !w.eventsListeners || w.destroyed || !w.eventsListeners || e.split(" ").forEach((e) => { 439 C === void 0 ? w.eventsListeners[e] = [] : w.eventsListeners[e] && w.eventsListeners[e].forEach((T, E) => { 440 (T === C || T.__emitterProxy && T.__emitterProxy === C) && w.eventsListeners[e].splice(E, 1); 441 }); 442 }), w; 443 }, 444 emit() { 445 let e = this; 446 if (!e.eventsListeners || e.destroyed || !e.eventsListeners) return e; 447 let C, w, T; 448 var E = [...arguments]; 449 return typeof E[0] == "string" || Array.isArray(E[0]) ? (C = E[0], w = E.slice(1, E.length), T = e) : (C = E[0].events, w = E[0].data, T = E[0].c
449ontext || e), w.unshift(T), (Array.isArray(C) ? C : C.split(" ")).forEach((C) => { 450 e.eventsAnyListeners && e.eventsAnyListeners.length && e.eventsAnyListeners.forEach((e) => { 451 e.apply(T, [C, ...w]); 452 }), e.eventsListeners && e.eventsListeners[C] && e.eventsListeners[C].forEach((e) => { 453 e.apply(T, w); 454 }); 455 }), e; 456 } 457}; 458function updateSize() { 459 let e = this, C, w, T = e.el; 460 C = e.params.width !== void 0 && e.params.width !== null ? e.params.width : T.clientWidth, w = e.params.height !== void 0 && e.params.height !== null ? e.params.height : T.clientHeight, !(C === 0 && e.isHorizontal() || w === 0 && e.isVertical()) && (C = C - parseInt(elementStyle(T, "padding-left") || 0, 10) - parseInt(elementStyle(T, "padding-right") || 0, 10), w = w - parseInt(elementStyle(T, "padding-top") || 0, 10) - parseInt(elementStyle(T, "padding-bottom") || 0, 10), Number.isNaN(C) && (C = 0), Number.isNaN(w) && (w = 0), Object.assign(e, { 461 width: C, 462 height: w, 463 size: e.isHorizontal() ? C : w 464 })); 465} 466function updateSlides() { 467 let e = this; 468 function C(C, w) { 469 return parseFloat(C.getPropertyValue(e.getDirectionLabel(w)) || 0); 470 } 471 let w = e.params, { wrapperEl: T, slidesEl: E, size: D, rtlTranslate: O, wrongRTL: k } = e, A = e.virtual && w.virtual.enabled, j = A ? e.virtual.slides.length : e.slides.length, M = elementChildren(E, `.${e.params.slideClass}, swiper-slide`), N = A ? e.virtual.slides.length : M.length, P = [], F = [], I = [], R = w.slidesOffsetBefore; 472 typeof R == "function" && (R = w.slidesOffsetBefore.call(e)); 473 let z = w.slidesOffsetAfter; 474 typeof z == "function" && (z = w.slidesOffsetAfter.call(e)); 475 let V = e.snapGrid.length, H = e.slidesGrid.length, U = w.spaceBetween, W = -R, G = 0, K = 0; 476 if (D === void 0) return; 477 typeof U == "string" && U.indexOf("%") >= 0 ? U = parseFloat(U.replace("%", "")) / 100 * D : typeof U == "string" && (U = parseFloat(U)), e.virtualSize = -U, M.forEach((e) => { 478 O ? e.style.marginLeft = "" : e.style.marginRight = "", e.style.marginBottom = "", e.style.marginTop = ""; 479 }), w.centeredSlides && w.cssMode && (setCSSProperty(T, "--swiper-centered-offset-before", ""), setCSSProperty(T, "--swiper-centered-offset-after", "")); 480 let q = w.grid && w.grid.rows > 1 && e.grid; 481 q ? e.grid.initSlides(M) : e.grid && e.grid.unsetSlides(); 482 let Y, X = w.slidesPerView === "auto" && w.breakpoints && Object.keys(w.breakpoints).filter((e) => w.breakpoints[e].slidesPerView !== void 0).length > 0; 483 for (let T = 0; T < N; T += 1) { 484 Y = 0; 485 let E; 486 if (M[T] && (E = M[T]), q && e.grid.updateSlide(T, E, M), !(M[T] && elementStyle(E, "display") === "none")) { 487 if (w.slidesPerView === "auto") { 488 X && (M[T].style[e.getDirectionLabel("width")] = ""); 489 let D = getComputedStyle(E), O = E.style.transform, k = E.style.webkitTransform; 490 if (O && (E.style.transform = "none"), k && (E.style.webkitTransform = "none"), w.roundLengths) Y = e.isHorizontal() ? elementOuterSize(E, "width", !0) : elementOuterSize(E, "height", !0); 491 else { 492 let e = C(D, "width"), w = C(D, "padding-left"), T = C(D, "padding-right"), O = C(D, "margin-left"), k = C(D, "margin-right"), A = D.getPropertyValue("box-sizing"); 493 if (A && A === "border-box") Y = e + O + k; 494 else { 495 let { clientWidth: C, offsetWidth: D } = E; 496 Y = e + w + T + O + k + (D - C); 497 } 498 } 499 O && (E.style.transform = O), k && (E.style.webkitTransform = k), w.roundLengths && (Y = Math.floor(Y)); 500 } else Y = (D - (w.slidesPerView - 1) * U) / w.slidesPerView, w.roundLengths && (Y = Math.floor(Y)), M[T] && (M[T].style[e.getDirectionLabel("width")] = `${Y}px`); 501 M[T] && (M[T].swiperSlideSize = Y), I.push(Y), w.centeredSlides ? (W = W + Y / 2 + G / 2 + U, G === 0 && T !== 0 && (W = W - D / 2 - U), T === 0 && (W = W - D / 2 - U), Math.abs(W) < 1 / 1e3 && (W = 0), w.roundLengths && (W = Math.floor(W)), K % w.slidesPerGroup === 0 && P.push(W), F.push(W)) : (w.roundLengths && (W = Math.floor(W)), (K - Math.min(e.params.slidesPerGroupSkip, K)) % e.params.slidesPerGroup === 0 && P.push(W), F.push(W), W = W + Y + U), e.virtualSize += Y + U, G = Y, K += 1; 502 } 503 } 504 if (e.virtualSize = Math.max(e.virtualSize, D) + z, O && k && (w.effect === "slide" || w.effect === "coverflow") && (T.style.width = `${e.virtualSize + U}px`), w.setWrapperSize && (T.style[e.getDirectionLabel("width")] = `${e.virtualSize + U}px`), q && e.grid.updateWrapperSize(Y, P), !w.centeredSlides) { 505 let C = []; 506 for (let T = 0; T < P.length; T += 1) { 507 let E = P[T]; 508 w.roundLengths && (E = Math.floor(E)), P[T] <= e.virtualSize - D && C.push(E); 509 } 510 P = C, Math.floor(e.virtualSize - D) - Math.floor(P[P.length - 1]) > 1 && P.push(e.virtualSize - D); 511 } 512 if (A && w.loop) { 513 let C = I[0] + U; 514 if (w.slidesPerGroup > 1) {
vendor: 4,468 bytes, lines 515-603
515 let T = Math.ceil((e.virtual.slidesBefore + e.virtual.slidesAfter) / w.slidesPerGroup), E = C * w.slidesPerGroup; 516 for (let e = 0; e < T; e += 1) P.push(P[P.length - 1] + E); 517 } 518 for (let T = 0; T < e.virtual.slidesBefore + e.virtual.slidesAfter; T += 1) w.slidesPerGroup === 1 && P.push(P[P.length - 1] + C), F.push(F[F.length - 1] + C), e.virtualSize += C; 519 } 520 if (P.length === 0 && (P = [0]), U !== 0) { 521 let C = e.isHorizontal() && O ? "marginLeft" : e.getDirectionLabel("marginRight"); 522 M.filter((e, C) => !w.cssMode || w.loop ? !0 : C !== M.length - 1).forEach((e) => { 523 e.style[C] = `${U}px`; 524 }); 525 } 526 if (w.centeredSlides && w.centeredSlidesBounds) { 527 let e = 0; 528 I.forEach((C) => { 529 e += C + (U || 0); 530 }), e -= U; 531 let C = e > D ? e - D : 0; 532 P = P.map((e) => e <= 0 ? -R : e > C ? C + z : e); 533 } 534 if (w.centerInsufficientSlides) { 535 let e = 0; 536 I.forEach((C) => { 537 e += C + (U || 0); 538 }), e -= U; 539 let C = (w.slidesOffsetBefore || 0) + (w.slidesOffsetAfter || 0); 540 if (e + C < D) { 541 let w = (D - e - C) / 2; 542 P.forEach((e, C) => { 543 P[C] = e - w; 544 }), F.forEach((e, C) => { 545 F[C] = e + w; 546 }); 547 } 548 } 549 if (Object.assign(e, { 550 slides: M, 551 snapGrid: P, 552 slidesGrid: F, 553 slidesSizesGrid: I 554 }), w.centeredSlides && w.cssMode && !w.centeredSlidesBounds) { 555 setCSSProperty(T, "--swiper-centered-offset-before", `${-P[0]}px`), setCSSProperty(T, "--swiper-centered-offset-after", `${e.size / 2 - I[I.length - 1] / 2}px`); 556 let C = -e.snapGrid[0], w = -e.slidesGrid[0]; 557 e.snapGrid = e.snapGrid.map((e) => e + C), e.slidesGrid = e.slidesGrid.map((e) => e + w); 558 } 559 if (N !== j && e.emit("slidesLengthChange"), P.length !== V && (e.params.watchOverflow && e.checkOverflow(), e.emit("snapGridLengthChange")), F.length !== H && e.emit("slidesGridLengthChange"), w.watchSlidesProgress && e.updateSlidesOffset(), e.emit("slidesUpdated"), !A && !w.cssMode && (w.effect === "slide" || w.effect === "fade")) { 560 let C = `${w.containerModifierClass}backface-hidden`, T = e.el.classList.contains(C); 561 N <= w.maxBackfaceHiddenSlides ? T || e.el.classList.add(C) : T && e.el.classList.remove(C); 562 } 563} 564function updateAutoHeight(e) { 565 let C = this, w = [], T = C.virtual && C.params.virtual.enabled, E = 0, D; 566 typeof e == "number" ? C.setTransition(e) : e === !0 && C.setTransition(C.params.speed); 567 let O = (e) => T ? C.slides[C.getSlideIndexByData(e)] : C.slides[e]; 568 if (C.params.slidesPerView !== "auto" && C.params.slidesPerView > 1) if (C.params.centeredSlides) (C.visibleSlides || []).forEach((e) => { 569 w.push(e); 570 }); 571 else for (D = 0; D < Math.ceil(C.params.slidesPerView); D += 1) { 572 let e = C.activeIndex + D; 573 if (e > C.slides.length && !T) break; 574 w.push(O(e)); 575 } 576 else w.push(O(C.activeIndex)); 577 for (D = 0; D < w.length; D += 1) if (w[D] !== void 0) { 578 let e = w[D].offsetHeight; 579 E = e > E ? e : E; 580 } 581 (E || E === 0) && (C.wrapperEl.style.height = `${E}px`); 582} 583function updateSlidesOffset() { 584 let e = this, C = e.slides, w = e.isElement ? e.isHorizontal() ? e.wrapperEl.offsetLeft : e.wrapperEl.offsetTop : 0; 585 for (let T = 0; T < C.length; T += 1) C[T].swiperSlideOffset = (e.isHorizontal() ? C[T].offsetLeft : C[T].offsetTop) - w - e.cssOverflowAdjustment(); 586} 587var toggleSlideClasses$1 = (e, C, w) => { 588 C && !e.classList.contains(w) ? e.classList.add(w) : !C && e.classList.contains(w) && e.classList.remove(w); 589}; 590function updateSlidesProgress(e) { 591 e === void 0 && (e = this && this.translate || 0); 592 let C = this, w = C.params, { slides: T, rtlTranslate: E, snapGrid: D } = C; 593 if (T.length === 0) return; 594 T[0].swiperSlideOffset === void 0 && C.updateSlidesOffset(); 595 let O = -e; 596 E && (O = e), C.visibleSlidesIndexes = [], C.visibleSlides = []; 597 let k = w.spaceBetween; 598 typeof k == "string" && k.indexOf("%") >= 0 ? k = parseFloat(k.replace("%", "")) / 100 * C.size : typeof k == "string" && (k = parseFloat(k)); 599 for (let e = 0; e < T.length; e += 1) { 600 let A = T[e], j = A.swiperSlideOffset; 601 w.cssMode && w.centeredSlides && (j -= T[0].swiperSlideOffset); 602 let M = (O + (w.centeredSlides ? C.minTranslate() : 0) - j) / (A.swiperSlideSize + k), N = (O - D[0] + (w.centeredSlides ? C.minTranslate() : 0) - j) / (A.swiperSlideSize + k), P = -(O - j), F = P + C.slidesSizesGrid[e], I = P >= 0 && P <= C.size - C.slidesSizesGrid[e], L = P >= 0 && P < C.size - 1 || F > 1 && F <= C.size || P <= 0 && F >= C.size; 603 L && (C.visibleSlides.push(A), C.visibleSlidesIndexes.push(e)), toggleSlideClasses$
6031(A, L, w.slideVisibleClass), toggleSlideClasses$1(A, I, w.slideFullyVisibleClass), A.progress = E ? -M : M, A.originalProgress = E ? -N : N; 604 } 605} 606function updateProgress(e) { 607 let C = this; 608 if (e === void 0) { 609 let w = C.rtlTranslate ? -1 : 1; 610 e = C && C.translate && C.translate * w || 0; 611 } 612 let w = C.params, T = C.maxTranslate() - C.minTranslate(), { progress: E, isBeginning: D, isEnd: O, progressLoop: k } = C, A = D, j = O; 613 if (T === 0) E = 0, D = !0, O = !0; 614 else { 615 E = (e - C.minTranslate()) / T; 616 let w = Math.abs(e - C.minTranslate()) < 1, k = Math.abs(e - C.maxTranslate()) < 1; 617 D = w || E <= 0, O = k || E >= 1, w && (E = 0), k && (E = 1); 618 } 619 if (w.loop) { 620 let w = C.getSlideIndexByData(0), T = C.getSlideIndexByData(C.slides.length - 1), E = C.slidesGrid[w], D = C.slidesGrid[T], O = C.slidesGrid[C.slidesGrid.length - 1], A = Math.abs(e); 621 k = A >= E ? (A - E) / O : (A + O - D) / O, k > 1 && --k; 622 } 623 Object.assign(C, { 624 progress: E, 625 progressLoop: k, 626 isBeginning: D, 627 isEnd: O 628 }), (w.watchSlidesProgress || w.centeredSlides && w.autoHeight) && C.updateSlidesProgress(e), D && !A && C.emit("reachBeginning toEdge"), O && !j && C.emit("reachEnd toEdge"), (A && !D || j && !O) && C.emit("fromEdge"), C.emit("progress", E); 629} 630var toggleSlideClasses = (e, C, w) => { 631 C && !e.classList.contains(w) ? e.classList.add(w) : !C && e.classList.contains(w) && e.classList.remove(w); 632}; 633function updateSlidesClasses() { 634 let e = this, { slides: C, params: w, slidesEl: T, activeIndex: E } = e, D = e.virtual && w.virtual.enabled, O = e.grid && w.grid && w.grid.rows > 1, k = (e) => elementChildren(T, `.${w.slideClass}${e}, swiper-slide${e}`)[0], A, j, M; 635 if (D) if (w.loop) { 636 let C = E - e.virtual.slidesBefore; 637 C < 0 && (C = e.virtual.slides.length + C), C >= e.virtual.slides.length && (C -= e.virtual.slides.length), A = k(`[data-swiper-slide-index="${C}"]`); 638 } else A = k(`[data-swiper-slide-index="${E}"]`); 639 else O ? (A = C.find((e) => e.column === E), M = C.find((e) => e.column === E + 1), j = C.find((e) => e.column === E - 1)) : A = C[E]; 640 A && (O || (M = elementNextAll(A, `.${w.slideClass}, swiper-slide`)[0], w.loop && !M && (M = C[0]), j = elementPrevAll(A, `.${w.slideClass}, swiper-slide`)[0], w.loop)), C.forEach((e) => { 641 toggleSlideClasses(e, e === A, w.slideActiveClass), toggleSlideClasses(e, e === M, w.slideNextClass), toggleSlideClasses(e, e === j, w.slidePrevClass); 642 }), e.emitSlidesClasses(); 643} 644var processLazyPreloader = (e, C) => { 645 if (!e || e.destroyed || !e.params) return; 646 let w = C.closest((() => e.isElement ? "swiper-slide" : `.${e.params.slideClass}`)()); 647 if (w) { 648 let C = w.querySelector(`.${e.params.lazyPreloaderClass}`); 649 !C && e.isElement && (w.shadowRoot ? C = w.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`) : requestAnimationFrame(() => { 650 w.shadowRoot && (C = w.shadowRoot.querySelector(`.${e.params.lazyPreloaderClass}`), C && C.remove()); 651 })), C && C.remove(); 652 } 653}, unlazy = (e, C) => { 654 if (!e.slides[C]) return; 655 let w = e.slides[C].querySelector("[loading=\"lazy\"]"); 656 w && w.removeAttribute("loading"); 657}, preload = (e) => { 658 if (!e || e.destroyed || !e.params) return; 659 let C = e.params.lazyPreloadPrevNext, w = e.slides.length; 660 if (!w || !C || C < 0) return; 661 C = Math.min(C, w); 662 let T = e.params.slidesPerView === "auto" ? e.slidesPerViewDynamic() : Math.ceil(e.params.slidesPerView), E = e.activeIndex; 663 if (e.params.grid && e.params.grid.rows > 1) { 664 let w = E, D = [w - C]; 665 D.push(...Array.from({ length: C }).map((e, C) => w + T + C)), e.slides.forEach((C, w) => { 666 D.includes(C.column) && unlazy(e, w); 667 }); 668 return; 669 } 670 let D = E + T - 1; 671 if (e.params.rewind || e.params.loop) for (let T = E - C; T <= D + C; T += 1) { 672 let C = (T % w + w) % w; 673 (C < E || C > D) && unlazy(e, C); 674 } 675 else for (let T = Math.max(E - C, 0); T <= Math.min(D + C, w - 1); T += 1) T !== E && (T > D || T < E) && unlazy(e, T); 676}; 677function getActiveIndexByTranslate(e) { 678 let { slidesGrid: C, params: w } = e, T = e.rtlTranslate ? e.translate : -e.translate, E; 679 for (let e = 0; e < C.length; e += 1) C[e + 1] === void 0 ? T >= C[e] && (E = e) : T >= C[e] && T < C[e + 1] - (C[e + 1] - C[e]) / 2 ? E = e : T >= C[e] && T < C[e + 1] && (E = e + 1); 680 return w.normalizeSlideIndex && (E < 0 || E === void 0) && (E = 0), E; 681} 682function updateActiveIndex(e) { 683 let C = this, w = C.rtlTranslate ? C.translate : -C.translate, { snapGrid: T, params: E, activeIndex: D, realIndex: O, snapIndex: k } = C, A = e, j, M = (e) => { 684 let w = e - C.virtual.slidesBefore; 685 return w < 0 && (w = C.virtual.slides.length + w), w >= C.virtual.slides.length && (w -= C.virtual.slides.length), w; 686 }; 687 if (A === void 0 && (A = getActiveIndexByTranslate(C)), T.indexOf(w) >= 0) j = T.indexOf(w); 688 else { 689 let e = Math.min(E.slidesPerGroupSkip, A); 690 j = e + Math.floor((A - e) / E.slidesPerGroup); 691 } 692 if (j >= T.length && (j = T.length - 1), A === D && !C.params.loop) { 693 j !== k && (C.snapIndex = j, C.emit("snapIndexChange")); 694 return; 695 } 696 if (A === D && C.params.loop && C.virtual && C.params.virtual.enabled) { 697 C.realIndex = M(A); 698 return; 699 } 700 let N = C.grid && E.grid && E.grid.rows > 1, P; 701 if (C.virtual && E.virtual.enabled && E.loop) P = M(A); 702 else if (N) { 703 let e = C.slides.find((e) => e.column === A), w = parseInt(e.getAttribute("data-swiper-slide-index"), 10); 704 Number.isNaN(w) && (w = Math.max(C.slides.indexOf(e), 0)), P = Math.floor(w / E.grid.rows); 705 } else if (C.slides[A]) { 706 let e = C.slides[A].getAttribute("data-swiper-slide-index"); 707 P = e ? parseInt(e, 10) : A; 708 } else P = A; 709 Object.assign(C, { 710 previousSnapIndex: k, 711 snapIndex: j, 712 previousRealIndex: O, 713 realIndex: P, 714 previousIndex: D, 715 activeIndex: A 716 }), C.initialized && preload(C), C.emit("activeIndexChange"), C.emit("snapIndexChange"), (C.initialized || C.params.runCallbacksOnInit) && (O !== P && C.emit("realIndexChange"), C.emit("slideChange")); 717} 718function updateClickedSlide(e, C) { 719 let w = this, T = w.params, E = e.closest(`.${T.slideClass}, swiper-slide`); 720 !E && w.isElement && C && C.length > 1 && C.includes(e) && [...C.slice(C.indexOf(e) + 1, C.length)].forEac
vendor: 9,697 bytes, lines 720-921
720h((e) => { 721 !E && e.matches && e.matches(`.${T.slideClass}, swiper-slide`) && (E = e); 722 }); 723 let D = !1, O; 724 if (E) { 725 for (let e = 0; e < w.slides.length; e += 1) if (w.slides[e] === E) { 726 D = !0, O = e; 727 break; 728 } 729 } 730 if (E && D) w.clickedSlide = E, w.virtual && w.params.virtual.enabled ? w.clickedIndex = parseInt(E.getAttribute("data-swiper-slide-index"), 10) : w.clickedIndex = O; 731 else { 732 w.clickedSlide = void 0, w.clickedIndex = void 0; 733 return; 734 } 735 T.slideToClickedSlide && w.clickedIndex !== void 0 && w.clickedIndex !== w.activeIndex && w.slideToClickedSlide(); 736} 737var update = { 738 updateSize, 739 updateSlides, 740 updateAutoHeight, 741 updateSlidesOffset, 742 updateSlidesProgress, 743 updateProgress, 744 updateSlidesClasses, 745 updateActiveIndex, 746 updateClickedSlide 747}; 748function getSwiperTranslate(e) { 749 e === void 0 && (e = this.isHorizontal() ? "x" : "y"); 750 let C = this, { params: w, rtlTranslate: T, translate: E, wrapperEl: D } = C; 751 if (w.virtualTranslate) return T ? -E : E; 752 if (w.cssMode) return E; 753 let O = getTranslate(D, e); 754 return O += C.cssOverflowAdjustment(), T && (O = -O), O || 0; 755} 756function setTranslate(e, C) { 757 let w = this, { rtlTranslate: T, params: E, wrapperEl: D, progress: O } = w, k = 0, A = 0; 758 w.isHorizontal() ? k = T ? -e : e : A = e, E.roundLengths && (k = Math.floor(k), A = Math.floor(A)), w.previousTranslate = w.translate, w.translate = w.isHorizontal() ? k : A, E.cssMode ? D[w.isHorizontal() ? "scrollLeft" : "scrollTop"] = w.isHorizontal() ? -k : -A : E.virtualTranslate || (w.isHorizontal() ? k -= w.cssOverflowAdjustment() : A -= w.cssOverflowAdjustment(), D.style.transform = `translate3d(${k}px, ${A}px, 0px)`); 759 let j, M = w.maxTranslate() - w.minTranslate(); 760 j = M === 0 ? 0 : (e - w.minTranslate()) / M, j !== O && w.updateProgress(e), w.emit("setTranslate", w.translate, C); 761} 762function minTranslate() { 763 return -this.snapGrid[0]; 764} 765function maxTranslate() { 766 return -this.snapGrid[this.snapGrid.length - 1]; 767} 768function translateTo(e, C, w, T, E) { 769 e === void 0 && (e = 0), C === void 0 && (C = this.params.speed), w === void 0 && (w = !0), T === void 0 && (T = !0); 770 let D = this, { params: O, wrapperEl: k } = D; 771 if (D.animating && O.preventInteractionOnTransition) return !1; 772 let A = D.minTranslate(), j = D.maxTranslate(), M; 773 if (M = T && e > A ? A : T && e < j ? j : e, D.updateProgress(M), O.cssMode) { 774 let e = D.isHorizontal(); 775 if (C === 0) k[e ? "scrollLeft" : "scrollTop"] = -M; 776 else { 777 if (!D.support.smoothScroll) return animateCSSModeScroll({ 778 swiper: D, 779 targetPosition: -M, 780 side: e ? "left" : "top" 781 }), !0; 782 k.scrollTo({ 783 [e ? "left" : "top"]: -M, 784 behavior: "smooth" 785 }); 786 } 787 return !0; 788 } 789 return C === 0 ? (D.setTransition(0), D.setTranslate(M), w && (D.emit("beforeTransitionStart", C, E), D.emit("transitionEnd"))) : (D.setTransition(C), D.setTranslate(M), w && (D.emit("beforeTransitionStart", C, E), D.emit("transitionStart")), D.animating || (D.animating = !0, D.onTranslateToWrapperTransitionEnd ||= function(e) { 790 !D || D.destroyed || e.target === this && (D.wrapperEl.removeEventListener("transitionend", D.onTranslateToWrapperTransitionEnd), D.onTranslateToWrapperTransitionEnd = null, delete D.onTranslateToWrapperTransitionEnd, D.animating = !1, w && D.emit("transitionEnd")); 791 }, D.wrapperEl.addEventListener("transitionend", D.onTranslateToWrapperTransitionEnd))), !0; 792} 793var translate = { 794 getTranslate: getSwiperTranslate, 795 setTranslate, 796 minTranslate, 797 maxTranslate, 798 translateTo 799}; 800function setTransition(e, C) { 801 let w = this; 802 w.params.cssMode || (w.wrapperEl.style.transitionDuration = `${e}ms`, w.wrapperEl.style.transitionDelay = e === 0 ? "0ms" : ""), w.emit("setTransition", e, C); 803} 804function transitionEmit(e) { 805 let { swiper: C, runCallbacks: w, direction: T, step: E } = e, { activeIndex: D, previousIndex: O } = C, k = T; 806 k ||= D > O ? "next" : D < O ? "prev" : "reset", C.emit(`transition${E}`), w && k === "reset" ? C.emit(`slideResetTransition${E}`) : w && D !== O && (C.emit(`slideChangeTransition${E}`), k === "next" ? C.emit(`slideNextTransition${E}`) : C.emit(`slidePrevTransition${E}`)); 807} 808function transitionStart(e, C) { 809 e === void 0 && (e = !0); 810 let w = this, { params: T } = w; 811 T.cssMode || (T.autoHeight && w.updateAutoHeight(), transitionEmit({ 812 swiper: w, 813 runCallbacks: e, 814 direction: C, 815 step: "Start" 816 })); 817} 818function transitionEnd(e, C) { 819 e === void 0 && (e = !0); 820 let w = this, { params: T } = w; 821 w.animating = !1, !T.cssMode && (w.setTransition(0), transitionEmit({ 822 swiper: w, 823 runCallbacks: e, 824 direction: C, 825 step: "End" 826 })); 827} 828var transition = { 829 setTransition, 830 transitionStart, 831 transitionEnd 832}; 833function slideTo(e, C, w, T, E) { 834 e === void 0 && (e = 0), w === void 0 && (w = !0), typeof e == "string" && (e = parseInt(e, 10)); 835 let D = this, O = e; 836 O < 0 && (O = 0); 837 let { params: k, snapGrid: A, slidesGrid: j, previousIndex: M, activeIndex: N, rtlTranslate: P, wrapperEl: F, enabled: I } = D; 838 if (!I && !T && !E || D.destroyed || D.animating && k.preventInteractionOnTransition) return !1; 839 C === void 0 && (C = D.params.speed); 840 let L = Math.min(D.params.slidesPerGroupSkip, O), z = L + Math.floor((O - L) / D.params.slidesPerGroup); 841 z >= A.length && (z = A.length - 1); 842 let B = -A[z]; 843 if (k.normalizeSlideIndex) for (let e = 0; e < j.length; e += 1) { 844 let C = -Math.floor(B * 100), w = Math.floor(j[e] * 100), T = Math.floor(j[e + 1] * 100); 845 j[e + 1] === void 0 ? C >= w && (O = e) : C >= w && C < T - (T - w) / 2 ? O = e : C >= w && C < T && (O = e + 1); 846 } 847 if (D.initialized && O !== N && (!D.allowSlideNext && (P ? B > D.translate && B > D.minTranslate() : B < D.translate && B < D.minTranslate()) || !D.allowSlidePrev && B > D.translate && B > D.maxTranslate() && (N || 0) !== O)) return !1; 848 O !== (M || 0) && w && D.emit("beforeSlideChangeStart"), D.updateProgress(B); 849 let V; 850 V = O > N ? "next" : O < N ? "prev" : "reset"; 851 let H = D.virtual && D.params.virtual.enabled; 852 if (!(H && E) && (P && -B === D.translate || !P && B === D.translate)) return D.updateActiveIndex(O), k.autoHeight && D.updateAutoHeight(), D.updateSlidesClasses(), k.effect !== "slide" && D.setTranslate(B), V !== "reset" && (D.transitionStart(w, V), D.transitionEnd(w, V)), !1; 853 if (k.cssMode) { 854 let e = D.isHorizontal(), w = P ? B : -B; 855 if (C === 0) H && (D.wrapperEl.style.scrollSnapType = "none", D._immediateVirtual = !0), H && !D._cssModeVirtualInitialSet && D.params.initialSlide > 0 ? (D._cssModeVirtualInitialSet = !0, requestAnimationFrame(() => { 856 F[e ? "scrollLeft" : "scrollTop"] = w; 857 })) : F[e ? "scrollLeft" : "scrollTop"] = w, H && requestAnimationFrame(() => { 858 D.wrapperEl.style.scrollSnapType = "", D._immediateVirtual = !1; 859 }); 860 else { 861 if (!D.support.smoothScroll) return animateCSSModeScroll({ 862 swiper: D, 863 targetPosition: w, 864 side: e ? "left" : "top" 865 }), !0; 866 F.scrollTo({ 867 [e ? "left" : "top"]: w, 868 behavior: "smooth" 869 }); 870 } 871 return !0; 872 } 873 let U = getBrowser().isSafari; 874 return H && !E && U && D.isElement && D.virtual.update(!1, !1, O), D.setTransition(C), D.setTranslate(B), D.updateActiveIndex(O), D.updateSlidesClasses(), D.emit("beforeTransitionStart", C, T), D.transitionStart(w, V), C === 0 ? D.transitionEnd(w, V) : D.animating || (D.animating = !0, D.onSlideToWrapperTransitionEnd ||= function(e) { 875 !D || D.destroyed || e.target === this && (D.wrapperEl.removeEventListener("transitionend", D.onSlideToWrapperTransitionEnd), D.onSlideToWrapperTransitionEnd = null, delete D.onSlideToWrapperTransitionEnd, D.transitionEnd(w, V)); 876 }, D.wrapperEl.addEventListener("transitionend", D.onSlideToWrapperTransitionEnd)), !0; 877} 878function slideToLoop(e, C, w, T) { 879 e === void 0 && (e = 0), w === void 0 && (w = !0), typeof e == "string" && (e = parseInt(e, 10)); 880 let E = this; 881 if (E.destroyed) return; 882 C === void 0 && (C = E.params.speed); 883 let D = E.grid && E.params.grid && E.params.grid.rows > 1, O = e; 884 if (E.params.loop) if (E.virtual && E.params.virtual.enabled) O += E.virtual.slidesBefore; 885 else { 886 let e; 887 if (D) { 888 let C = O * E.params.grid.rows; 889 e = E.slides.find((e) => e.getAttribute("data-swiper-slide-index") * 1 === C).column; 890 } else e = E.getSlideIndexByData(O); 891 let C = D ? Math.ceil(E.slides.length / E.params.grid.rows) : E.slides.length, { centeredSlides: w } = E.params, k = E.params.slidesPerView; 892 k === "auto" ? k = E.slidesPerViewDynamic() : (k = Math.ceil(parseFloat(E.params.slidesPerView, 10)), w && k % 2 == 0 && (k += 1)); 893 let A = C - e < k; 894 if (w && (A ||= e < Math.ceil(k / 2)), T && w && E.params.slidesPerView !== "auto" && !D && (A = !1), A) { 895 let T = w ? e < E.activeIndex ? "prev" : "next" : e - E.activeIndex - 1 < E.params.slidesPerView ? "next" : "prev"; 896 E.loopFix({ 897 direction: T, 898 slideTo: !0, 899 activeSlideIndex: T === "next" ? e + 1 : e - C + 1, 900 slideRealIndex: T === "next" ? E.realIndex : void 0 901 }); 902 } 903 if (D) { 904 let e = O * E.params.grid.rows; 905 O = E.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === e).column; 906 } else O = E.getSlideIndexByData(O); 907 } 908 return requestAnimationFrame(() => { 909 E.slideTo(O, C, w, T); 910 }), E; 911} 912function slideNext(e, C, w) { 913 C === void 0 && (C = !0); 914 let T = this, { enabled: E, params: D, animating: O } = T; 915 if (!E || T.destroyed) return T; 916 e === void 0 && (e = T.params.speed); 917 let k = D.slidesPerGroup; 918 D.slidesPerView === "auto" && D.slidesPerGroup === 1 && D.slidesPerGroupAuto && (k = Math.max(T.slidesPerViewDynamic("current", !0), 1)); 919 let A = T.activeIndex < D.slidesPerGroupSkip ? 1 : k, j = T.virtual && D.virtual.enabled; 920 if (D.loop) { 921 if (O && !j && D.loopPreventsSliding) return !1;
922 if (T.loopFix({ direction: "next" }), T._clientLeft = T.wrapperEl.clientLeft, T.activeIndex === T.slides.length - 1 && D.cssMode) return requestAnimationFrame(() => { 923 T.slideTo(T.activeIndex + A, e, C, w); 924 }), !0; 925 } 926 return D.rewind && T.isEnd ? T.slideTo(0, e, C, w) : T.slideTo(T.activeIndex + A, e, C, w); 927} 928function slidePrev(e, C, w) { 929 C === void 0 && (C = !0); 930 let T = this, { params: E, snapGrid: D, slidesGrid: O, rtlTranslate: k, enabled: A, animating: j } = T; 931 if (!A || T.destroyed) return T; 932 e === void 0 && (e = T.params.speed); 933 let M = T.virtual && E.virtual.enabled; 934 if (E.loop) { 935 if (j && !M && E.loopPreventsSliding) return !1; 936 T.loopFix({ direction: "prev" }), T._clientLeft = T.wrapperEl.clientLeft; 937 } 938 let N = k ? T.translate : -T.translate; 939 function P(e) { 940 return e < 0 ? -Math.floor(Math.abs(e)) : Math.floor(e); 941 } 942 let F = P(N), I = D.map((e) => P(e)), L = E.freeMode && E.freeMode.enabled, R = D[I.indexOf(F) - 1]; 943 if (R === void 0 && (E.cssMode || L)) { 944 let e; 945 D.forEach((C, w) => { 946 F >= C && (e = w); 947 }), e !== void 0 && (R = L ? D[e] : D[e > 0 ? e - 1 : e]); 948 } 949 let z = 0; 950 if (R !== void 0 && (z = O.indexOf(R), z < 0 && (z = T.activeIndex - 1), E.slidesPerView === "auto" && E.slidesPerGroup === 1 && E.slidesPerGroupAuto && (z = z - T.slidesPerViewDynamic("previous", !0) + 1, z = Math.max(z, 0))), E.rewind && T.isBeginning) { 951 let E = T.params.virtual && T.params.virtual.enabled && T.virtual ? T.virtual.slides.length - 1 : T.slides.length - 1; 952 return T.slideTo(E, e, C, w); 953 } else if (E.loop && T.activeIndex === 0 && E.cssMode) return requestAnimationFrame(() => { 954 T.slideTo(z, e, C, w); 955 }), !0; 956 return T.slideTo(z, e, C, w); 957} 958function slideReset(e, C, w) { 959 C === void 0 && (C = !0); 960 let T = this; 961 if (!T.destroyed) return e === void 0 && (e = T.params.speed), T.slideTo(T.activeIndex, e, C, w); 962} 963function slideToClosest(e, C, w, T) { 964 C === void 0 && (C = !0), T === void 0 && (T = .5); 965 let E = this; 966 if (E.destroyed) return; 967 e === void 0 && (e = E.params.speed); 968 let D = E.activeIndex, O = Math.min(E.params.slidesPerGroupSkip, D), k = O + Math.floor((D - O) / E.params.slidesPerGroup), A = E.rtlTranslate ? E.translate : -E.translate; 969 if (A >= E.snapGrid[k]) { 970 let e = E.snapGrid[k], C = E.snapGrid[k + 1]; 971 A - e > (C - e) * T && (D += E.params.slidesPerGroup); 972 } else { 973 let e = E.snapGrid[k - 1], C = E.snapGrid[k]; 974 A - e <= (C - e) * T && (D -= E.params.slidesPerGroup); 975 } 976 return D = Math.max(D, 0), D = Math.min(D, E.slidesGrid.length - 1), E.slideTo(D, e, C, w); 977} 978function slideToClickedSlide() { 979 let e = this; 980 if (e.destroyed) return; 981 let { params: C, slidesEl: w } = e, T = C.slidesPerView === "auto" ? e.slidesPerViewDynamic() : C.slidesPerView, E = e.getSlideIndexWhenGrid(e.clickedIndex), D, O = e.isElement ? "swiper-slide" : `.${C.slideClass}`, k = e.grid && e.params.grid && e.params.grid.rows > 1; 982 if (C.loop) { 983 if (e.animating) return; 984 D = parseInt(e.clickedSlide.getAttribute("data-swiper-slide-index"), 10), C.centeredSlides ? e.slideToLoop(D) : E > (k ? (e.slides.length - T) / 2 - (e.params.grid.rows - 1) : e.slides.length - T) ? (e.loopFix(), E = e.getSlideIndex(elementChildren(w, `${O}[data-swiper-slide-index="${D}"]`)[0]), nextTick(() => { 985 e.slideTo(E); 986 })) : e.slideTo(E); 987 } else e.slideTo(E); 988} 989var slide = { 990 slideTo, 991 slideToLoop, 992 slideNext, 993 slidePrev, 994 slideReset, 995 slideToClosest, 996 slideToClickedSlide 997}; 998function loopCreate(e, C) { 999 let w = this, { params: T, slidesEl: E } = w; 1000 if (!T.loop || w.virtual && w.params.virtual.enabled) return; 1001 let D = () => { 1002 elementChildren(E, `.${T.slideClass}, swiper-slide`).forEach((e, C) => { 1003 e.setAttribute("data-swiper-slide-index", C); 1004 }); 1005 }, O = () => { 1006 let e = elementChildren(E, `.${T.slideBlankClass}`); 1007 e.forEach((e) => { 1008 e.remove(); 1009 }), e.length > 0 && (w.recalcSlides(), w.updateSlides()); 1010 }, k = w.grid && T.grid && T.grid.rows > 1; 1011 T.loopAddBlankSlides && (T.slidesPerGroup > 1 || k) && O(); 1012 let A = T.slidesPerGroup * (k ? T.grid.rows : 1), j = w.slides.length % A !== 0, M = k && w.slides.length % T.grid.rows !== 0, N = (e) => { 1013 for (let C = 0; C < e; C += 1) { 1014 let e = w.isElement ? createElement("swiper-slide", [T.slideBlankClass]) : createElement("div", [T.slideClass, T.slideBlankClass]); 1015 w.slidesEl.append(e); 1016 } 1017 }; 1018 j ? (T.loopAddBlankSlides ? (N(A - w.slides.length % A), w.recalcSlides(), w.updateSlides()) : showWarning("Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may
1018not function properly. You need to add more slides (or make duplicates, or empty slides)"), D()) : (M && (T.loopAddBlankSlides ? (N(T.grid.rows - w.slides.length % T.grid.rows), w.recalcSlides(), w.updateSlides()) : showWarning("Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)")), D()), w.loopFix({ 1019 slideRealIndex: e, 1020 direction: T.centeredSlides ? void 0 : "next", 1021 initial: C 1022 }); 1023} 1024function loopFix(e) { 1025 let { slideRealIndex: C, slideTo: w = !0, direction: T, setTranslate: E, activeSlideIndex: D, initial: O, byController: k, byMousewheel: A } = e === void 0 ? {} : e, j = this; 1026 if (!j.params.loop) return; 1027 j.emit("beforeLoopFix"); 1028 let { slides: M, allowSlidePrev: N, allowSlideNext: P, slidesEl: F, params: I } = j, { centeredSlides: L, initialSlide: R } = I; 1029 if (j.allowSlidePrev = !0, j.allowSlideNext = !0, j.virtual && I.virtual.enabled) { 1030 w && (!I.centeredSlides && j.snapIndex === 0 ? j.slideTo(j.virtual.slides.length, 0, !1, !0) : I.centeredSlides && j.snapIndex < I.slidesPerView ? j.slideTo(j.virtual.slides.length + j.snapIndex, 0, !1, !0) : j.snapIndex === j.snapGrid.length - 1 && j.slideTo(j.virtual.slidesBefore, 0, !1, !0)), j.allowSlidePrev = N, j.allowSlideNext = P, j.emit("loopFix"); 1031 return; 1032 } 1033 let z = I.slidesPerView; 1034 z === "auto" ? z = j.slidesPerViewDynamic() : (z = Math.ceil(parseFloat(I.slidesPerView, 10)), L && z % 2 == 0 && (z += 1)); 1035 let B = I.slidesPerGroupAuto ? z : I.slidesPerGroup, V = L ? Math.max(B, Math.ceil(z / 2)) : B; 1036 V % B !== 0 && (V += B - V % B), V += I.loopAdditionalSlides, j.loopedSlides = V; 1037 let H = j.grid && I.grid && I.grid.rows > 1; 1038 M.length < z + V || j.params.effect === "cards" && M.length < z + V * 2 ? showWarning("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") : H && I.grid.fill === "row" && showWarning("Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`"); 1039 let W = [], G = [], K = H ? Math.ceil(M.length / I.grid.rows) : M.length, q = O && K - R < z && !L, J = q ? R : j.activeIndex; 1040 D === void 0 ? D = j.getSlideIndex(M.find((e) => e.classList.contains(I.slideActiveClass))) : J = D; 1041 let Y = T === "next" || !T, X = T === "prev" || !T, Z = 0, Q = 0, $ = (H ? M[D].column : D) + (L && E === void 0 ? -z / 2 + .5 : 0); 1042 if ($ < V) { 1043 Z = Math.max(V - $, B); 1044 for (let e = 0; e < V - $; e += 1) { 1045 let C = e - Math.floor(e / K) * K; 1046 if (H) { 1047 let e = K - C - 1; 1048 for (let C = M.length - 1; C >= 0; --C) M[C].column === e && W.push(C); 1049 } else W.push(K - C - 1); 1050 } 1051 } else if ($ + z > K - V) { 1052 Q = Math.max($ - (K - V * 2), B), q && (Q = Math.max(Q, z - K + R + 1)); 1053 for (let e = 0; e < Q; e += 1) { 1054 let C = e - Math.floor(e / K) * K; 1055 H ? M.forEach((e, w) => { 1056 e.column === C && G.push(w); 1057 }) : G.push(C); 1058 } 1059 } 1060 if (j.__preventObserver__ = !0, requestAnimationFrame(() => { 1061 j.__preventObserver__ = !1; 1062 }), j.params.effect === "cards" && M.length < z + V * 2 && (G.includes(D) && G.splice(G.indexOf(D), 1), W.includes(D) && W.splice(W.indexOf(D), 1)), X && W.forEach((e) => { 1063 M[e].swiperLoopMoveDOM = !0, F.prepend(M[e]), M[e].swiperLoopMoveDOM = !1; 1064 }), Y && G.forEach((e) => { 1065 M[e].swiperLoopMoveDOM = !0, F.append(M[e]), M[e].swiperLoopMoveDOM = !1; 1066 }), j.recalcSlides(), I.slidesPerView === "auto" ? j.updateSlides() : H && (W.length > 0 && X || G.length > 0 && Y) && j.slides.forEach((e, C) => { 1067 j.grid.updateSlide(C, e, j.slides); 1068 }), I.watchSlidesProgress && j.updateSlidesOffset(), w) { 1069 if (W.length > 0 && X) { 1070 if (C === void 0) { 1071 let e = j.slidesGrid[J], C = j.slidesGrid[J + Z] - e; 1072 A ? j.setTranslate(j.translate - C) : (j.slideTo(J + Math.ceil(Z), 0, !1, !0), E && (j.touchEventsData.startTranslate = j.touchEventsData.startTranslate - C, j.touchEventsData.currentTranslate = j.touchEventsData.currentTranslate - C)); 1073 } else if (E) { 1074 let e = H ? W.length / I.grid.rows : W.length; 1075 j.slideTo(j.activeIndex + e, 0, !1, !0), j.touchEventsData.currentTranslate = j.translate; 1076 } 1077 } else if (G.length > 0 && Y) if (C === void 0) { 1078 let e = j.slidesGrid[J], C = j.slidesGrid[J - Q] - e; 1079 A ? j.setTranslate(j.translate - C) : (j.slideTo(J - Q, 0, !1, !0), E && (j.touchEventsData.startTranslate = j.touchEventsData.startTranslate - C, j.touchEventsData.currentTranslate = j.touchEventsData.currentTranslate - C)); 1080 } else { 1081 let e = H ? G.length / I.grid.rows : G.length; 1082 j.slideTo(j.activeIndex - e, 0, !1, !0); 1083 } 1084 }
1085 if (j.allowSlidePrev = N, j.allowSlideNext = P, j.controller && j.controller.control && !k) { 1086 let e = { 1087 slideRealIndex: C, 1088 direction: T, 1089 setTranslate: E, 1090 activeSlideIndex: D, 1091 byController: !0 1092 }; 1093 Array.isArray(j.controller.control) ? j.controller.control.forEach((C) => { 1094 !C.destroyed && C.params.loop && C.loopFix({ 1095 ...e, 1096 slideTo: C.params.slidesPerView === I.slidesPerView ? w : !1 1097 }); 1098 }) : j.controller.control instanceof j.constructor && j.controller.control.params.loop && j.controller.control.loopFix({ 1099 ...e, 1100 slideTo: j.controller.control.params.slidesPerView === I.slidesPerView ? w : !1 1101 }); 1102 } 1103 j.emit("loopFix"); 1104} 1105function loopDestroy() { 1106 let e = this, { params: C, slidesEl: w } = e; 1107 if (!C.loop || !w || e.virtual && e.params.virtual.enabled) return; 1108 e.recalcSlides(); 1109 let T = []; 1110 e.slides.forEach((e) => { 1111 let C = e.swiperSlideIndex === void 0 ? e.getAttribute("data-swiper-slide-index") * 1 : e.swiperSlideIndex; 1112 T[C] = e; 1113 }), e.slides.forEach((e) => { 1114 e.removeAttribute("data-swiper-slide-index"); 1115 }), T.forEach((e) => { 1116 w.append(e); 1117 }), e.recalcSlides(), e.slideTo(e.realIndex, 0); 1118} 1119var loop = { 1120 loopCreate, 1121 loopFix, 1122 loopDestroy 1123}; 1124function setGrabCursor(e) { 1125 let C = this; 1126 if (!C.params.simulateTouch || C.params.watchOverflow && C.isLocked || C.params.cssMode) return; 1127 let w = C.params.touchEventsTarget === "container" ? C.el : C.wrapperEl; 1128 C.isElement && (C.__preventObserver__ = !0), w.style.cursor = "move", w.style.cursor = e ? "grabbing" : "grab", C.isElement && requestAnimationFrame(() => { 1129 C.__preventObserver__ = !1; 1130 }); 1131} 1132function unsetGrabCursor() { 1133 let e = this; 1134 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(() => { 1135 e.__preventObserver__ = !1; 1136 })); 1137} 1138var grabCursor = { 1139 setGrabCursor, 1140 unsetGrabCursor 1141}; 1142function closestElement(e, C) { 1143 C === void 0 && (C = this); 1144 function w(C) { 1145 if (!C || C === getDocument() || C === getWindow()) return null; 1146 C.assignedSlot && (C = C.assignedSlot); 1147 let E = C.closest(e); 1148 return !E && !C.getRootNode ? null : E || w(C.getRootNode().host); 1149 } 1150 return w(C); 1151} 1152function preventEdgeSwipe(e, C, w) { 1153 let T = getWindow(), { params: E } = e, O = E.edgeSwipeDetection, k = E.edgeSwipeThreshold; 1154 return O && (w <= k || w >= T.innerWidth - k) ? O === "prevent" ? (C.preventDefault(), !0) : !1 : !0; 1155} 1156function onTouchStart(e) { 1157 let C = this, w = getDocument(), E = e; 1158 E.originalEvent && (E = E.originalEvent); 1159 let D = C.touchEventsData; 1160 if (E.type === "pointerdown") { 1161 if (D.pointerId !== null && D.pointerId !== E.pointerId) return; 1162 D.pointerId = E.pointerId; 1163 } else E.type === "touchstart" && E.targetTouches.length === 1 && (D.touchId = E.targetTouches[0].identifier); 1164 if (E.type === "touchstart") { 1165 preventEdgeSwipe(C, E, E.targetTouches[0].pageX); 1166 return; 1167 } 1168 let { params: O, touches: k, enabled: A } = C; 1169 if (!A || !O.simulateTouch && E.pointerType === "mouse" || C.animating && O.preventInteractionOnTransition) return; 1170 !C.animating && O.cssMode && O.loop && C.loopFix(); 1171 let M = E.target; 1172 if (O.touchEventsTarget === "wrapper" && !elementIsChildOf(M, C.wrapperEl) || "which" in E && E.which === 3 || "button" in E && E.button > 0 || D.isTouched && D.isMoved) return; 1173 let N = !!O.noSwipingClass && O.noSwipingClass !== "", P = E.composedPath ? E.composedPath() : E.path; 1174 N && E.target && E.target.shadowRoot && P && (M = P[0]); 1175 let F = O.noSwipingSelector ? O.noSwipingSelector : `.${O.noSwipingClass}`, I = !!(E.target && E.target.shadowRoot); 1176 if (O.noSwiping && (I ? closestElement(F, M) : M.closest(F))) { 1177 C.allowClick = !0; 1178 return; 1179 } 1180 if (O.swipeHandler && !M.closest(O.swipeHandler)) return; 1181 k.currentX = E.pageX, k.currentY = E.pageY; 1182 let L = k.currentX, R = k.currentY; 1183 if (!preventEdgeSwipe(C, E, L)) return; 1184 Object.assign(D, { 1185 isTouched: !0, 1186 isMoved: !1, 1187 allowTouchCallbacks: !0, 1188 isScrolling: void 0, 1189 startMoving: void 0 1190 }
vendor: 4,355 bytes, lines 1190-1260
1190), k.startX = L, k.startY = R, D.touchStartTime = now(), C.allowClick = !0, C.updateSize(), C.swipeDirection = void 0, O.threshold > 0 && (D.allowThresholdMove = !1); 1191 let z = !0; 1192 M.matches(D.focusableElements) && (z = !1, M.nodeName === "SELECT" && (D.isTouched = !1)), w.activeElement && w.activeElement.matches(D.focusableElements) && w.activeElement !== M && (E.pointerType === "mouse" || E.pointerType !== "mouse" && !M.matches(D.focusableElements)) && w.activeElement.blur(); 1193 let B = z && C.allowTouchMove && O.touchStartPreventDefault; 1194 (O.touchStartForcePreventDefault || B) && !M.isContentEditable && E.preventDefault(), O.freeMode && O.freeMode.enabled && C.freeMode && C.animating && !O.cssMode && C.freeMode.onTouchStart(), C.emit("touchStart", E); 1195} 1196function onTouchMove(e) { 1197 let C = getDocument(), w = this, E = w.touchEventsData, { params: D, touches: O, rtlTranslate: k, enabled: A } = w; 1198 if (!A || !D.simulateTouch && e.pointerType === "mouse") return; 1199 let M = e; 1200 if (M.originalEvent && (M = M.originalEvent), M.type === "pointermove" && (E.touchId !== null || M.pointerId !== E.pointerId)) return; 1201 let N; 1202 if (M.type === "touchmove") { 1203 if (N = [...M.changedTouches].find((e) => e.identifier === E.touchId), !N || N.identifier !== E.touchId) return; 1204 } else N = M; 1205 if (!E.isTouched) { 1206 E.startMoving && E.isScrolling && w.emit("touchMoveOpposite", M); 1207 return; 1208 } 1209 let P = N.pageX, F = N.pageY; 1210 if (M.preventedByNestedSwiper) { 1211 O.startX = P, O.startY = F; 1212 return; 1213 } 1214 if (!w.allowTouchMove) { 1215 M.target.matches(E.focusableElements) || (w.allowClick = !1), E.isTouched && (Object.assign(O, { 1216 startX: P, 1217 startY: F, 1218 currentX: P, 1219 currentY: F 1220 }), E.touchStartTime = now()); 1221 return; 1222 } 1223 if (D.touchReleaseOnEdges && !D.loop) { 1224 if (w.isVertical()) { 1225 if (F < O.startY && w.translate <= w.maxTranslate() || F > O.startY && w.translate >= w.minTranslate()) { 1226 E.isTouched = !1, E.isMoved = !1; 1227 return; 1228 } 1229 } else if (k && (P > O.startX && -w.translate <= w.maxTranslate() || P < O.startX && -w.translate >= w.minTranslate())) return; 1230 else if (!k && (P < O.startX && w.translate <= w.maxTranslate() || P > O.startX && w.translate >= w.minTranslate())) return; 1231 } 1232 if (C.activeElement && C.activeElement.matches(E.focusableElements) && C.activeElement !== M.target && M.pointerType !== "mouse" && C.activeElement.blur(), C.activeElement && M.target === C.activeElement && M.target.matches(E.focusableElements)) { 1233 E.isMoved = !0, w.allowClick = !1; 1234 return; 1235 } 1236 E.allowTouchCallbacks && w.emit("touchMove", M), O.previousX = O.currentX, O.previousY = O.currentY, O.currentX = P, O.currentY = F; 1237 let I = O.currentX - O.startX, L = O.currentY - O.startY; 1238 if (w.params.threshold && Math.sqrt(I ** 2 + L ** 2) < w.params.threshold) return; 1239 if (E.isScrolling === void 0) { 1240 let e; 1241 w.isHorizontal() && O.currentY === O.startY || w.isVertical() && O.currentX === O.startX ? E.isScrolling = !1 : I * I + L * L >= 25 && (e = Math.atan2(Math.abs(L), Math.abs(I)) * 180 / Math.PI, E.isScrolling = w.isHorizontal() ? e > D.touchAngle : 90 - e > D.touchAngle); 1242 } 1243 if (E.isScrolling && w.emit("touchMoveOpposite", M), E.startMoving === void 0 && (O.currentX !== O.startX || O.currentY !== O.startY) && (E.startMoving = !0), E.isScrolling || M.type === "touchmove" && E.preventTouchMoveFromPointerMove) { 1244 E.isTouched = !1; 1245 return; 1246 } 1247 if (!E.startMoving) return; 1248 w.allowClick = !1, !D.cssMode && M.cancelable && M.preventDefault(), D.touchMoveStopPropagation && !D.nested && M.stopPropagation(); 1249 let R = w.isHorizontal() ? I : L, z = w.isHorizontal() ? O.currentX - O.previousX : O.currentY - O.previousY; 1250 D.oneWayMovement && (R = Math.abs(R) * (k ? 1 : -1), z = Math.abs(z) * (k ? 1 : -1)), O.diff = R, R *= D.touchRatio, k && (R = -R, z = -z); 1251 let B = w.touchesDirection; 1252 w.swipeDirection = R > 0 ? "prev" : "next", w.touchesDirection = z > 0 ? "prev" : "next"; 1253 let V = w.params.loop && !D.cssMode, H = w.touchesDirection === "next" && w.allowSlideNext || w.touchesDirection === "prev" && w.allowSlidePrev; 1254 if (!E.isMoved) { 1255 if (V && H && w.loopFix({ direction: w.swipeDirection }), E.startTranslate = w.getTranslate(), w.setTransition(0), w.animating) { 1256 let e = new window.CustomEvent("transitionend", { 1257 bubbles: !0, 1258 cancelable: !0, 1259 detail: { bySwiperTouchMove: !0 } 1260 });
vendor: 5,433 bytes, lines 1261-1343
1261 w.wrapperEl.dispatchEvent(e); 1262 } 1263 E.allowMomentumBounce = !1, D.grabCursor && (w.allowSlideNext === !0 || w.allowSlidePrev === !0) && w.setGrabCursor(!0), w.emit("sliderFirstMove", M); 1264 } 1265 if ((/* @__PURE__ */ new Date()).getTime(), D._loopSwapReset !== !1 && E.isMoved && E.allowThresholdMove && B !== w.touchesDirection && V && H && Math.abs(R) >= 1) { 1266 Object.assign(O, { 1267 startX: P, 1268 startY: F, 1269 currentX: P, 1270 currentY: F, 1271 startTranslate: E.currentTranslate 1272 }), E.loopSwapReset = !0, E.startTranslate = E.currentTranslate; 1273 return; 1274 } 1275 w.emit("sliderMove", M), E.isMoved = !0, E.currentTranslate = R + E.startTranslate; 1276 let U = !0, W = D.resistanceRatio; 1277 if (D.touchReleaseOnEdges && (W = 0), R > 0 ? (V && H && E.allowThresholdMove && E.currentTranslate > (D.centeredSlides ? w.minTranslate() - w.slidesSizesGrid[w.activeIndex + 1] - (D.slidesPerView !== "auto" && w.slides.length - D.slidesPerView >= 2 ? w.slidesSizesGrid[w.activeIndex + 1] + w.params.spaceBetween : 0) - w.params.spaceBetween : w.minTranslate()) && w.loopFix({ 1278 direction: "prev", 1279 setTranslate: !0, 1280 activeSlideIndex: 0 1281 }), E.currentTranslate > w.minTranslate() && (U = !1, D.resistance && (E.currentTranslate = w.minTranslate() - 1 + (-w.minTranslate() + E.startTranslate + R) ** W))) : R < 0 && (V && H && E.allowThresholdMove && E.currentTranslate < (D.centeredSlides ? w.maxTranslate() + w.slidesSizesGrid[w.slidesSizesGrid.length - 1] + w.params.spaceBetween + (D.slidesPerView !== "auto" && w.slides.length - D.slidesPerView >= 2 ? w.slidesSizesGrid[w.slidesSizesGrid.length - 1] + w.params.spaceBetween : 0) : w.maxTranslate()) && w.loopFix({ 1282 direction: "next", 1283 setTranslate: !0, 1284 activeSlideIndex: w.slides.length - (D.slidesPerView === "auto" ? w.slidesPerViewDynamic() : Math.ceil(parseFloat(D.slidesPerView, 10))) 1285 }), E.currentTranslate < w.maxTranslate() && (U = !1, D.resistance && (E.currentTranslate = w.maxTranslate() + 1 - (w.maxTranslate() - E.startTranslate - R) ** W))), U && (M.preventedByNestedSwiper = !0), !w.allowSlideNext && w.swipeDirection === "next" && E.currentTranslate < E.startTranslate && (E.currentTranslate = E.startTranslate), !w.allowSlidePrev && w.swipeDirection === "prev" && E.currentTranslate > E.startTranslate && (E.currentTranslate = E.startTranslate), !w.allowSlidePrev && !w.allowSlideNext && (E.currentTranslate = E.startTranslate), D.threshold > 0) if (Math.abs(R) > D.threshold || E.allowThresholdMove) { 1286 if (!E.allowThresholdMove) { 1287 E.allowThresholdMove = !0, O.startX = O.currentX, O.startY = O.currentY, E.currentTranslate = E.startTranslate, O.diff = w.isHorizontal() ? O.currentX - O.startX : O.currentY - O.startY; 1288 return; 1289 } 1290 } else { 1291 E.currentTranslate = E.startTranslate; 1292 return; 1293 } 1294 !D.followFinger || D.cssMode || ((D.freeMode && D.freeMode.enabled && w.freeMode || D.watchSlidesProgress) && (w.updateActiveIndex(), w.updateSlidesClasses()), D.freeMode && D.freeMode.enabled && w.freeMode && w.freeMode.onTouchMove(), w.updateProgress(E.currentTranslate), w.setTranslate(E.currentTranslate)); 1295} 1296function onTouchEnd(e) { 1297 let C = this, w = C.touchEventsData, T = e; 1298 T.originalEvent && (T = T.originalEvent); 1299 let E; 1300 if (T.type === "touchend" || T.type === "touchcancel") { 1301 if (E = [...T.changedTouches].find((e) => e.identifier === w.touchId), !E || E.identifier !== w.touchId) return; 1302 } else { 1303 if (w.touchId !== null || T.pointerId !== w.pointerId) return; 1304 E = T; 1305 } 1306 if ([ 1307 "pointercancel", 1308 "pointerout", 1309 "pointerleave", 1310 "contextmenu" 1311 ].includes(T.type) && !(["pointercancel", "contextmenu"].includes(T.type) && (C.browser.isSafari || C.browser.isWebView))) return; 1312 w.pointerId = null, w.touchId = null; 1313 let { params: D, touches: O, rtlTranslate: k, slidesGrid: M, enabled: N } = C; 1314 if (!N || !D.simulateTouch && T.pointerType === "mouse") return; 1315 if (w.allowTouchCallbacks && C.emit("touchEnd", T), w.allowTouchCallbacks = !1, !w.isTouched) { 1316 w.isMoved && D.grabCursor && C.setGrabCursor(!1), w.isMoved = !1, w.startMoving = !1; 1317 return; 1318 } 1319 D.grabCursor && w.isMoved && w.isTouched && (C.allowSlideNext === !0 || C.allowSlidePrev === !0) && C.setGrabCursor(!1); 1320 let P = now(), F = P - w.touchStartTime; 1321 if (C.allowClick) { 1322 let e = T.path || T.composedPath && T.composedPath(); 1323 C.updateClickedSlide(e && e[0] || T.target, e), C.emit("tap click", T), F < 300 && P - w.lastClickTime < 300 && C.emit("doubleTap doubleClick", T); 1324 } 1325 if (w.lastClickTime = now(), nextTick(() => { 1326 C.destroyed || (C.allowClick = !0); 1327 }), !w.isTouched || !w.isMoved || !C.swipeDirection || O.diff === 0 && !w.loopSwapReset || w.currentTranslate === w.startTranslate && !w.loopSwapReset) { 1328 w.isTouched = !1, w.isMoved = !1, w.startMoving = !1; 1329 return; 1330 } 1331 w.isTouched = !1, w.isMoved = !1, w.startMoving = !1; 1332 let I; 1333 if (I = D.followFinger ? k ? C.translate : -C.translate : -w.currentTranslate, D.cssMode) return; 1334 if (D.freeMode && D.freeMode.enabled) { 1335 C.freeMode.onTouchEnd({ currentPos: I }); 1336 return; 1337 } 1338 let L = I >= -C.maxTranslate() && !C.params.loop, R = 0, z = C.slidesSizesGrid[0]; 1339 for (let e = 0; e < M.length; e += e < D.slidesPerGroupSkip ? 1 : D.slidesPerGroup) { 1340 let C = e < D.slidesPerGroupSkip - 1 ? 1 : D.slidesPerGroup; 1341 M[e + C] === void 0 ? (L || I >= M[e]) && (R = e, z = M[M.length - 1] - M[M.length - 2]) : (L || I >= M[e] && I < M[e + C]) && (R = e, z = M[e + C] - M[e]); 1342 } 1343 let B = null, V = null;
vendor: 9,372 bytes, lines 1344-1513
1344 D.rewind && (C.isBeginning ? V = D.virtual && D.virtual.enabled && C.virtual ? C.virtual.slides.length - 1 : C.slides.length - 1 : C.isEnd && (B = 0)); 1345 let H = (I - M[R]) / z, U = R < D.slidesPerGroupSkip - 1 ? 1 : D.slidesPerGroup; 1346 if (F > D.longSwipesMs) { 1347 if (!D.longSwipes) { 1348 C.slideTo(C.activeIndex); 1349 return; 1350 } 1351 C.swipeDirection === "next" && (H >= D.longSwipesRatio ? C.slideTo(D.rewind && C.isEnd ? B : R + U) : C.slideTo(R)), C.swipeDirection === "prev" && (H > 1 - D.longSwipesRatio ? C.slideTo(R + U) : V !== null && H < 0 && Math.abs(H) > D.longSwipesRatio ? C.slideTo(V) : C.slideTo(R)); 1352 } else { 1353 if (!D.shortSwipes) { 1354 C.slideTo(C.activeIndex); 1355 return; 1356 } 1357 C.navigation && (T.target === C.navigation.nextEl || T.target === C.navigation.prevEl) ? T.target === C.navigation.nextEl ? C.slideTo(R + U) : C.slideTo(R) : (C.swipeDirection === "next" && C.slideTo(B === null ? R + U : B), C.swipeDirection === "prev" && C.slideTo(V === null ? R : V)); 1358 } 1359} 1360function onResize() { 1361 let e = this, { params: C, el: w } = e; 1362 if (w && w.offsetWidth === 0) return; 1363 C.breakpoints && e.setBreakpoint(); 1364 let { allowSlideNext: T, allowSlidePrev: E, snapGrid: D } = e, O = e.virtual && e.params.virtual.enabled; 1365 e.allowSlideNext = !0, e.allowSlidePrev = !0, e.updateSize(), e.updateSlides(), e.updateSlidesClasses(); 1366 let k = O && C.loop; 1367 (C.slidesPerView === "auto" || C.slidesPerView > 1) && e.isEnd && !e.isBeginning && !e.params.centeredSlides && !k ? e.slideTo(e.slides.length - 1, 0, !1, !0) : e.params.loop && !O ? e.slideToLoop(e.realIndex, 0, !1, !0) : e.slideTo(e.activeIndex, 0, !1, !0), e.autoplay && e.autoplay.running && e.autoplay.paused && (clearTimeout(e.autoplay.resizeTimeout), e.autoplay.resizeTimeout = setTimeout(() => { 1368 e.autoplay && e.autoplay.running && e.autoplay.paused && e.autoplay.resume(); 1369 }, 500)), e.allowSlidePrev = E, e.allowSlideNext = T, e.params.watchOverflow && D !== e.snapGrid && e.checkOverflow(); 1370} 1371function onClick(e) { 1372 let C = this; 1373 C.enabled && (C.allowClick || (C.params.preventClicks && e.preventDefault(), C.params.preventClicksPropagation && C.animating && (e.stopPropagation(), e.stopImmediatePropagation()))); 1374} 1375function onScroll() { 1376 let e = this, { wrapperEl: C, rtlTranslate: w, enabled: T } = e; 1377 if (!T) return; 1378 e.previousTranslate = e.translate, e.isHorizontal() ? e.translate = -C.scrollLeft : e.translate = -C.scrollTop, e.translate === 0 && (e.translate = 0), e.updateActiveIndex(), e.updateSlidesClasses(); 1379 let E, D = e.maxTranslate() - e.minTranslate(); 1380 E = D === 0 ? 0 : (e.translate - e.minTranslate()) / D, E !== e.progress && e.updateProgress(w ? -e.translate : e.translate), e.emit("setTranslate", e.translate, !1); 1381} 1382function onLoad(e) { 1383 let C = this; 1384 processLazyPreloader(C, e.target), !(C.params.cssMode || C.params.slidesPerView !== "auto" && !C.params.autoHeight) && C.update(); 1385} 1386function onDocumentTouchStart() { 1387 let e = this; 1388 e.documentTouchHandlerProceeded || (e.documentTouchHandlerProceeded = !0, e.params.touchReleaseOnEdges && (e.el.style.touchAction = "auto")); 1389} 1390var events = (e, C) => { 1391 let w = getDocument(), { params: E, el: D, wrapperEl: O, device: k } = e, A = !!E.nested, j = C === "on" ? "addEventListener" : "removeEventListener", M = C; 1392 !D || typeof D == "string" || (w[j]("touchstart", e.onDocumentTouchStart, { 1393 passive: !1, 1394 capture: A 1395 }), D[j]("touchstart", e.onTouchStart, { passive: !1 }), D[j]("pointerdown", e.onTouchStart, { passive: !1 }), w[j]("touchmove", e.onTouchMove, { 1396 passive: !1, 1397 capture: A 1398 }), w[j]("pointermove", e.onTouchMove, { 1399 passive: !1, 1400 capture: A 1401 }), w[j]("touchend", e.onTouchEnd, { passive: !0 }), w[j]("pointerup", e.onTouchEnd, { passive: !0 }), w[j]("pointercancel", e.onTouchEnd, { passive: !0 }), w[j]("touchcancel", e.onTouchEnd, { passive: !0 }), w[j]("pointerout", e.onTouchEnd, { passive: !0 }), w[j]("pointerleave", e.onTouchEnd, { passive: !0 }), w[j]("contextmenu", e.onTouchEnd, { passive: !0 }), (E.preventClicks || E.preventClicksPropagation) && D[j]("click", e.onClick, !0), E.cssMode && O[j]("scroll", e.onScroll), E.updateOnWindowResize ? e[M](k.ios || k.android ? "resize orientationchange observerUpdate" : "resize observerUpdate", onResize, !0) : e[M]("observerUpdate", onResize, !0), D[j]("load", e.onLoad, { capture: !0 })); 1402}; 1403function attachEvents() { 1404 let e = this, { params: C } = e; 1405 e.onTouchStart = onTouchStart.bind(e), e.onTouchMove = onTouchMove.bind(e), e.onTouchEnd = onTouchEnd.bind(e), e.onDocumentTouchStart = onDocumentTouchStart.bind(e), C.cssMode && (e.onScroll = onScroll.bind(e)), e.onClick = onClick.bind(e), e.onLoad = onLoad.bind(e), events(e, "on"); 1406} 1407function detachEvents() { 1408 events(this, "off"); 1409} 1410var events$1 = { 1411 attachEvents, 1412 detachEvents 1413}, isGridEnabled = (e, C) => e.grid && C.grid && C.grid.rows > 1; 1414function setBreakpoint() { 1415 let e = this, { realIndex: C, initialized: w, params: E, el: D } = e, O = E.breakpoints; 1416 if (!O || O && Object.keys(O).length === 0) return; 1417 let k = getDocument(), A = E.breakpointsBase === "window" || !E.breakpointsBase ? E.breakpointsBase : "container", j = ["window", "container"].includes(E.breakpointsBase) || !E.breakpointsBase ? e.el : k.querySelector(E.breakpointsBase), M = e.getBreakpoint(O, A, j); 1418 if (!M || e.currentBreakpoint === M) return; 1419 let N = (M in O ? O[M] : void 0) || e.originalParams, P = isGridEnabled(e, E), F = isGridEnabled(e, N), L = e.params.grabCursor, R = N.grabCursor, z = E.enabled; 1420 P && !F ? (D.classList.remove(`${E.containerModifierClass}grid`, `${E.containerModifierClass}grid-column`), e.emitContainerClasses()) : !P && F && (D.classList.add(`${E.containerModifierClass}grid`), (N.grid.fill && N.grid.fill === "column" || !N.grid.fill && E.grid.fill === "column") && D.classList.add(`${E.containerModifierClass}grid-column`), e.emitContainerClasses()), L && !R ? e.unsetGrabCursor() : !L && R && e.setGrabCursor(), [ 1421 "navigation", 1422 "pagination", 1423 "scrollbar" 1424 ].forEach((C) => { 1425 if (N[C] === void 0) return; 1426 let w = E[C] && E[C].enabled, T = N[C] && N[C].enabled; 1427 w && !T && e[C].disable(), !w && T && e[C].enable(); 1428 }); 1429 let B = N.direction && N.direction !== E.direction, V = E.loop && (N.slidesPerView !== E.slidesPerView || B), H = E.loop; 1430 B && w && e.changeDirection(), extend(e.params, N); 1431 let U = e.params.enabled, W = e.params.loop; 1432 Object.assign(e, { 1433 allowTouchMove: e.params.allowTouchMove, 1434 allowSlideNext: e.params.allowSlideNext, 1435 allowSlidePrev: e.params.allowSlidePrev 1436 }), z && !U ? e.disable() : !z && U && e.enable(), e.currentBreakpoint = M, e.emit("_beforeBreakpoint", N), w && (V ? (e.loopDestroy(), e.loopCreate(C), e.updateSlides()) : !H && W ? (e.loopCreate(C), e.updateSlides()) : H && !W && e.loopDestroy()), e.emit("breakpoint", N); 1437} 1438function getBreakpoint(e, C, w) { 1439 if (C === void 0 && (C = "window"), !e || C === "container" && !w) return; 1440 let T = !1, E = getWindow(), O = C === "window" ? E.innerHeight : w.clientHeight, k = Object.keys(e).map((e) => typeof e == "string" && e.indexOf("@") === 0 ? { 1441 value: O * parseFloat(e.substr(1)), 1442 point: e 1443 } : { 1444 value: e, 1445 point: e 1446 }); 1447 k.sort((e, C) => parseInt(e.value, 10) - parseInt(C.value, 10)); 1448 for (let e = 0; e < k.length; e += 1) { 1449 let { point: D, value: O } = k[e]; 1450 C === "window" ? E.matchMedia(`(min-width: ${O}px)`).matches && (T = D) : O <= w.clientWidth && (T = D); 1451 } 1452 return T || "max"; 1453} 1454var breakpoints = { 1455 setBreakpoint, 1456 getBreakpoint 1457}; 1458function prepareClasses(e, C) { 1459 let w = []; 1460 return e.forEach((e) => { 1461 typeof e == "object" ? Object.keys(e).forEach((T) => { 1462 e[T] && w.push(C + T); 1463 }) : typeof e == "string" && w.push(C + e); 1464 }), w; 1465} 1466function addClasses() { 1467 let e = this, { classNames: C, params: w, rtl: T, el: E, device: D } = e, O = prepareClasses([ 1468 "initialized", 1469 w.direction, 1470 { "free-mode": e.params.freeMode && w.freeMode.enabled }, 1471 { autoheight: w.autoHeight }, 1472 { rtl: T }, 1473 { grid: w.grid && w.grid.rows > 1 }, 1474 { "grid-column": w.grid && w.grid.rows > 1 && w.grid.fill === "column" }, 1475 { android: D.android }, 1476 { ios: D.ios }, 1477 { "css-mode": w.cssMode }, 1478 { centered: w.cssMode && w.centeredSlides }, 1479 { "watch-progress": w.watchSlidesProgress } 1480 ], w.containerModifierClass); 1481 C.push(...O), E.classList.add(...C), e.emitContainerClasses(); 1482} 1483function removeClasses() { 1484 let e = this, { el: C, classNames: w } = e; 1485 !C || typeof C == "string" || (C.classList.remove(...w), e.emitContainerClasses()); 1486} 1487var classes = { 1488 addClasses, 1489 removeClasses 1490}; 1491function checkOverflow() { 1492 let e = this, { isLocked: C, params: w } = e, { slidesOffsetBefore: T } = w; 1493 if (T) { 1494 let C = e.slides.length - 1, w = e.slidesGrid[C] + e.slidesSizesGrid[C] + T * 2; 1495 e.isLocked = e.size > w; 1496 } else e.isLocked = e.snapGrid.length === 1; 1497 w.allowSlideNext === !0 && (e.allowSlideNext = !e.isLocked), w.allowSlidePrev === !0 && (e.allowSlidePrev = !e.isLocked), C && C !== e.isLocked && (e.isEnd = !1), C !== e.isLocked && e.emit(e.isLocked ? "lock" : "unlock"); 1498} 1499var checkOverflow$1 = { checkOverflow }, defaults = { 1500 init: !0, 1501 direction: "horizontal", 1502 oneWayMovement: !1, 1503 swiperElementNodeName: "SWIPER-CONTAINER", 1504 touchEventsTarget: "wrapper", 1505 initialSlide: 0, 1506 speed: 300, 1507 cssMode: !1, 1508 updateOnWindowResize: !0, 1509 resizeObserver: !0, 1510 nested: !1, 1511 createElements: !1, 1512 eventsPrefix: "swiper", 1513 enabled: !0,
1514 focusableElements: "input, select, option, textarea, button, video, label", 1515 width: null, 1516 height: null, 1517 preventInteractionOnTransition: !1, 1518 userAgent: null, 1519 url: null, 1520 edgeSwipeDetection: !1, 1521 edgeSwipeThreshold: 20, 1522 autoHeight: !1, 1523 setWrapperSize: !1, 1524 virtualTranslate: !1, 1525 effect: "slide", 1526 breakpoints: void 0, 1527 breakpointsBase: "window", 1528 spaceBetween: 0, 1529 slidesPerView: 1, 1530 slidesPerGroup: 1, 1531 slidesPerGroupSkip: 0, 1532 slidesPerGroupAuto: !1, 1533 centeredSlides: !1, 1534 centeredSlidesBounds: !1, 1535 slidesOffsetBefore: 0, 1536 slidesOffsetAfter: 0, 1537 normalizeSlideIndex: !0, 1538 centerInsufficientSlides: !1, 1539 watchOverflow: !0, 1540 roundLengths: !1, 1541 touchRatio: 1, 1542 touchAngle: 45, 1543 simulateTouch: !0, 1544 shortSwipes: !0, 1545 longSwipes: !0, 1546 longSwipesRatio: .5, 1547 longSwipesMs: 300, 1548 followFinger: !0, 1549 allowTouchMove: !0, 1550 threshold: 5, 1551 touchMoveStopPropagation: !1, 1552 touchStartPreventDefault: !0, 1553 touchStartForcePreventDefault: !1, 1554 touchReleaseOnEdges: !1, 1555 uniqueNavElements: !0, 1556 resistance: !0, 1557 resistanceRatio: .85, 1558 watchSlidesProgress: !1, 1559 grabCursor: !1, 1560 preventClicks: !0, 1561 preventClicksPropagation: !0, 1562 slideToClickedSlide: !1, 1563 loop: !1, 1564 loopAddBlankSlides: !0, 1565 loopAdditionalSlides: 0, 1566 loopPreventsSliding: !0, 1567 rewind: !1, 1568 allowSlidePrev: !0, 1569 allowSlideNext: !0, 1570 swipeHandler: null, 1571 noSwiping: !0, 1572 noSwipingClass: "swiper-no-swiping", 1573 noSwipingSelector: null, 1574 passiveListeners: !0, 1575 maxBackfaceHiddenSlides: 10, 1576 containerModifierClass: "swiper-", 1577 slideClass: "swiper-slide", 1578 slideBlankClass: "swiper-slide-blank", 1579 slideActiveClass: "swiper-slide-active", 1580 slideVisibleClass: "swiper-slide-visible", 1581 slideFullyVisibleClass: "swiper-slide-fully-visible", 1582 slideNextClass: "swiper-slide-next", 1583 slidePrevClass: "swiper-slide-prev", 1584 wrapperClass: "swiper-wrapper", 1585 lazyPreloaderClass: "swiper-lazy-preloader", 1586 lazyPreloadPrevNext: 0, 1587 runCallbacksOnInit: !0, 1588 _emitClasses: !1 1589}; 1590function moduleExtendParams(e, C) { 1591 return function(w) { 1592 w === void 0 && (w = {}); 1593 let T = Object.keys(w)[0], E = w[T]; 1594 if (typeof E != "object" || !E) { 1595 extend(C, w); 1596 return; 1597 } 1598 if (e[T] === !0 && (e[T] = { enabled: !0 }), T === "navigation" && e[T] && e[T].enabled && !e[T].prevEl && !e[T].nextEl && (e[T].auto = !0), ["pagination", "scrollbar"].indexOf(T) >= 0 && e[T] && e[T].enabled && !e[T].el && (e[T].auto = !0), !(T in e && "enabled" in E)) { 1599 extend(C, w); 1600 return; 1601 } 1602 typeof e[T] == "object" && !("enabled" in e[T]) && (e[T].enabled = !0), e[T] || (e[T] = { enabled: !1 }), extend(C, w); 1603 }; 1604} 1605var prototypes = { 1606 eventsEmitter, 1607 update, 1608 translate, 1609 transition, 1610 slide, 1611 loop, 1612 grabCursor, 1613 events: events$1, 1614 breakpoints, 1615 checkOverflow: checkOverflow$1, 1616 classes 1617}, extendedDefaults = {}, Swiper = class e { 1618 constructor() { 1619 let C, w; 1620 var E = [...arguments]; 1621 E.length === 1 && E[0].constructor && Object.prototype.toString.call(E[0]).slice(8, -1) === "Object" ? w = E[0] : [C, w] = E, w ||= {}, w = extend({}, w), C && !w.el && (w.el = C); 1622 let D = getDocument(); 1623 if (w.el && typeof w.el == "string" && D.querySelectorAll(w.el).length > 1) { 1624 let C = []; 1625 return D.querySelectorAll(w.el).forEach((T) => { 1626 let E = extend({}, w, { el: T }); 1627 C.push(new e(E)); 1628 }), C; 1629 } 1630 let O = this;
1631 O.__swiper__ = !0, O.support = getSupport(), O.device = getDevice({ userAgent: w.userAgent }), O.browser = getBrowser(), O.eventsListeners = {}, O.eventsAnyListeners = [], O.modules = [...O.__modules__], w.modules && Array.isArray(w.modules) && O.modules.push(...w.modules); 1632 let k = {}; 1633 return O.modules.forEach((e) => { 1634 e({ 1635 params: w, 1636 swiper: O, 1637 extendParams: moduleExtendParams(w, k), 1638 on: O.on.bind(O), 1639 once: O.once.bind(O), 1640 off: O.off.bind(O), 1641 emit: O.emit.bind(O) 1642 }); 1643 }), O.params = extend({}, extend({}, defaults, k), extendedDefaults, w), O.originalParams = extend({}, O.params), O.passedParams = extend({}, w), O.params && O.params.on && Object.keys(O.params.on).forEach((e) => { 1644 O.on(e, O.params.on[e]); 1645 }), O.params && O.params.onAny && O.onAny(O.params.onAny), Object.assign(O, { 1646 enabled: O.params.enabled, 1647 el: C, 1648 classNames: [], 1649 slides: [], 1650 slidesGrid: [], 1651 snapGrid: [], 1652 slidesSizesGrid: [], 1653 isHorizontal() { 1654 return O.params.direction === "horizontal"; 1655 }, 1656 isVertical() { 1657 return O.params.direction === "vertical"; 1658 }, 1659 activeIndex: 0, 1660 realIndex: 0, 1661 isBeginning: !0, 1662 isEnd: !1, 1663 translate: 0, 1664 previousTranslate: 0, 1665 progress: 0, 1666 velocity: 0, 1667 animating: !1, 1668 cssOverflowAdjustment() { 1669 return Math.trunc(this.translate / 2 ** 23) * 2 ** 23; 1670 }, 1671 allowSlideNext: O.params.allowSlideNext, 1672 allowSlidePrev: O.params.allowSlidePrev, 1673 touchEventsData: { 1674 isTouched: void 0, 1675 isMoved: void 0, 1676 allowTouchCallbacks: void 0, 1677 touchStartTime: void 0, 1678 isScrolling: void 0, 1679 currentTranslate: void 0, 1680 startTranslate: void 0, 1681 allowThresholdMove: void 0, 1682 focusableElements: O.params.focusableElements, 1683 lastClickTime: 0, 1684 clickTimeout: void 0, 1685 velocities: [], 1686 allowMomentumBounce: void 0, 1687 startMoving: void 0, 1688 pointerId: null, 1689 touchId: null 1690 }, 1691 allowClick: !0, 1692 allowTouchMove: O.params.allowTouchMove, 1693 touches: { 1694 startX: 0, 1695 startY: 0, 1696 currentX: 0, 1697 currentY: 0, 1698 diff: 0 1699 }, 1700 imagesToLoad: [], 1701 imagesLoaded: 0 1702 }), O.emit("_swiper"), O.params.init && O.init(), O; 1703 } 1704 getDirectionLabel(e) { 1705 return this.isHorizontal() ? e : { 1706 width: "height", 1707 "margin-top": "margin-left", 1708 "margin-bottom ": "margin-right", 1709 "margin-left": "margin-top", 1710 "margin-right": "margin-bottom", 1711 "padding-left": "padding-top", 1712 "padding-right": "padding-bottom", 1713 marginRight: "marginBottom" 1714 }[e]; 1715 } 1716 getSlideIndex(e) { 1717 let { slidesEl: C, params: w } = this, T = elementIndex(elementChildren(C, `.${w.slideClass}, swiper-slide`)[0]); 1718 return elementIndex(e) - T; 1719 } 1720 getSlideIndexByData(e) { 1721 return this.getSlideIndex(this.slides.find((C) => C.getAttribute("data-swiper-slide-index") * 1 === e)); 1722 } 1723 getSlideIndexWhenGrid(e) { 1724 return this.grid && this.params.grid && this.params.grid.rows > 1 && (this.params.grid.fill === "column" ? e = Math.floor(e / this.params.grid.rows) : this.params.grid.fill === "row" && (e %= Math.ceil(this.slides.length / this.params.grid.rows))), e; 1725 } 1726 recalcSlides() { 1727 let e = this, { slidesEl: C, params: w } = e; 1728 e.slides = elementChildren(C, `.${w.slideClass}, swiper-slide`); 1729 } 1730 enable() { 1731 let e = this; 1732 e.enabled || (e.enabled = !0, e.params.grabCursor && e.setGrabCursor(), e.emit("enable")); 1733 } 1734 disable() { 1735 let e = this; 1736 e.enabled && (e.enabled = !1, e.params.grabCursor && e.unsetGrabCursor(), e.emit("disable")); 1737 } 1738 setProgress(e, C) { 1739 let w = this; 1740 e = Math.min(Math.max(e, 0), 1); 1741 let T = w.minTranslate(), E = (w.maxTranslate() - T) * e + T; 1742 w.translateTo(E, C === void 0 ? 0 : C), w.updateActiveIndex(), w.updateSlidesClasses(); 1743 } 1744 emitContainerClasses() { 1745 let e = this; 1746 if (!e.params._emitClasses || !e.el) return; 1747 let C = e.el.className.split(" ").filter((C) => C.indexOf("swiper") === 0 || C.indexOf(e.params.containerModifierClass) === 0); 1748 e.emit("_containerClasses", C.join(" ")); 1749 } 1750 getSlideClasses(e) { 1751 let C = this; 1752 return C.destroyed ? "" : e.className.split(" ").filter((e) => e.indexOf("swiper-slide") === 0 || e.indexOf(C.params.slideClass) === 0).join(" "); 1753 } 1754 emitSlidesClasses() { 1755 let e = this; 1756 if (!e.params._emitClasses || !e.el) return; 1757 let C = [];
1758 e.slides.forEach((w) => { 1759 let T = e.getSlideClasses(w); 1760 C.push({ 1761 slideEl: w, 1762 classNames: T 1763 }), e.emit("_slideClass", w, T); 1764 }), e.emit("_slideClasses", C); 1765 } 1766 slidesPerViewDynamic(e, C) { 1767 e === void 0 && (e = "current"), C === void 0 && (C = !1); 1768 let { params: w, slides: T, slidesGrid: E, slidesSizesGrid: D, size: O, activeIndex: k } = this, A = 1; 1769 if (typeof w.slidesPerView == "number") return w.slidesPerView; 1770 if (w.centeredSlides) { 1771 let e = T[k] ? Math.ceil(T[k].swiperSlideSize) : 0, C; 1772 for (let w = k + 1; w < T.length; w += 1) T[w] && !C && (e += Math.ceil(T[w].swiperSlideSize), A += 1, e > O && (C = !0)); 1773 for (let w = k - 1; w >= 0; --w) T[w] && !C && (e += T[w].swiperSlideSize, A += 1, e > O && (C = !0)); 1774 } else if (e === "current") for (let e = k + 1; e < T.length; e += 1) (C ? E[e] + D[e] - E[k] < O : E[e] - E[k] < O) && (A += 1); 1775 else for (let e = k - 1; e >= 0; --e) E[k] - E[e] < O && (A += 1); 1776 return A; 1777 } 1778 update() { 1779 let e = this; 1780 if (!e || e.destroyed) return; 1781 let { snapGrid: C, params: w } = e; 1782 w.breakpoints && e.setBreakpoint(), [...e.el.querySelectorAll("[loading=\"lazy\"]")].forEach((C) => { 1783 C.complete && processLazyPreloader(e, C); 1784 }), e.updateSize(), e.updateSlides(), e.updateProgress(), e.updateSlidesClasses(); 1785 function T() { 1786 let C = e.rtlTranslate ? e.translate * -1 : e.translate, w = Math.min(Math.max(C, e.maxTranslate()), e.minTranslate()); 1787 e.setTranslate(w), e.updateActiveIndex(), e.updateSlidesClasses(); 1788 } 1789 let E; 1790 if (w.freeMode && w.freeMode.enabled && !w.cssMode) T(), w.autoHeight && e.updateAutoHeight(); 1791 else { 1792 if ((w.slidesPerView === "auto" || w.slidesPerView > 1) && e.isEnd && !w.centeredSlides) { 1793 let C = e.virtual && w.virtual.enabled ? e.virtual.slides : e.slides; 1794 E = e.slideTo(C.length - 1, 0, !1, !0); 1795 } else E = e.slideTo(e.activeIndex, 0, !1, !0); 1796 E || T(); 1797 } 1798 w.watchOverflow && C !== e.snapGrid && e.checkOverflow(), e.emit("update"); 1799 } 1800 changeDirection(e, C) { 1801 C === void 0 && (C = !0); 1802 let w = this, T = w.params.direction; 1803 return e ||= T === "horizontal" ? "vertical" : "horizontal", e === T || e !== "horizontal" && e !== "vertical" ? w : (w.el.classList.remove(`${w.params.containerModifierClass}${T}`), w.el.classList.add(`${w.params.containerModifierClass}${e}`), w.emitContainerClasses(), w.params.direction = e, w.slides.forEach((C) => { 1804 e === "vertical" ? C.style.width = "" : C.style.height = ""; 1805 }), w.emit("changeDirection"), C && w.update(), w); 1806 } 1807 changeLanguageDirection(e) { 1808 let C = this; 1809 C.rtl && e === "rtl" || !C.rtl && e === "ltr" || (C.rtl = e === "rtl", C.rtlTranslate = C.params.direction === "horizontal" && C.rtl, C.rtl ? (C.el.classList.add(`${C.params.containerModifierClass}rtl`), C.el.dir = "rtl") : (C.el.classList.remove(`${C.params.containerModifierClass}rtl`), C.el.dir = "ltr"), C.update()); 1810 } 1811 mount(e) { 1812 let C = this; 1813 if (C.mounted) return !0; 1814 let w = e || C.params.el; 1815 if (typeof w == "string" && (w = document.querySelector(w)), !w) return !1; 1816 w.swiper = C, w.parentNode && w.parentNode.host && w.parentNode.host.nodeName === C.params.swiperElementNodeName.toUpperCase() && (C.isElement = !0); 1817 let T = () => `.${(C.params.wrapperClass || "").trim().split(" ").join(".")}`, E = (() => w && w.shadowRoot && w.shadowRoot.querySelector ? w.shadowRoot.querySelector(T()) : elementChildren(w, T())[0])(); 1818 return !E && C.params.createElements && (E = createElement("div", C.params.wrapperClass), w.append(E), elementChildren(w, `.${C.params.slideClass}`).forEach((e) => { 1819 E.append(e); 1820 })), Object.assign(C, { 1821 el: w, 1822 wrapperEl: E, 1823 slidesEl: C.isElement && !w.parentNode.host.slideSlots ? w.parentNode.host : E, 1824 hostEl: C.isElement ? w.parentNode.host : w, 1825 mounted: !0, 1826 rtl: w.dir.toLowerCase() === "rtl" || elementStyle(w, "direction") === "rtl", 1827 rtlTranslate: C.params.direction === "horizontal" && (w.dir.toLowerCase() === "rtl" || elementStyle(w, "direction") === "rtl"), 1828 wrongRTL: elementStyle(E, "display") === "-webkit-box" 1829 }), !0; 1830 } 1831 init(e) { 1832 let C = this; 1833 if (C.initialized || C.mount(e) === !1) return C; 1834 C.emit("beforeInit"), C.params.breakpoints && C.setBreakpoint(), C.addClasses(), C.updateSize(), C.updateSlides(), C.params.watchOverflow && C.checkOverflow(), C.params.grabCursor && C.enabled && C.setGrabCursor(
vendor: 9,911 bytes, lines 1834-2054
1834), C.params.loop && C.virtual && C.params.virtual.enabled ? C.slideTo(C.params.initialSlide + C.virtual.slidesBefore, 0, C.params.runCallbacksOnInit, !1, !0) : C.slideTo(C.params.initialSlide, 0, C.params.runCallbacksOnInit, !1, !0), C.params.loop && C.loopCreate(void 0, !0), C.attachEvents(); 1835 let w = [...C.el.querySelectorAll("[loading=\"lazy\"]")]; 1836 return C.isElement && w.push(...C.hostEl.querySelectorAll("[loading=\"lazy\"]")), w.forEach((e) => { 1837 e.complete ? processLazyPreloader(C, e) : e.addEventListener("load", (e) => { 1838 processLazyPreloader(C, e.target); 1839 }); 1840 }), preload(C), C.initialized = !0, preload(C), C.emit("init"), C.emit("afterInit"), C; 1841 } 1842 destroy(e, C) { 1843 e === void 0 && (e = !0), C === void 0 && (C = !0); 1844 let w = this, { params: T, el: E, wrapperEl: D, slides: O } = w; 1845 return w.params === void 0 || w.destroyed ? null : (w.emit("beforeDestroy"), w.initialized = !1, w.detachEvents(), T.loop && w.loopDestroy(), C && (w.removeClasses(), E && typeof E != "string" && E.removeAttribute("style"), D && D.removeAttribute("style"), O && O.length && O.forEach((e) => { 1846 e.classList.remove(T.slideVisibleClass, T.slideFullyVisibleClass, T.slideActiveClass, T.slideNextClass, T.slidePrevClass), e.removeAttribute("style"), e.removeAttribute("data-swiper-slide-index"); 1847 })), w.emit("destroy"), Object.keys(w.eventsListeners).forEach((e) => { 1848 w.off(e); 1849 }), e !== !1 && (w.el && typeof w.el != "string" && (w.el.swiper = null), deleteProps(w)), w.destroyed = !0, null); 1850 } 1851 static extendDefaults(e) { 1852 extend(extendedDefaults, e); 1853 } 1854 static get extendedDefaults() { 1855 return extendedDefaults; 1856 } 1857 static get defaults() { 1858 return defaults; 1859 } 1860 static installModule(C) { 1861 e.prototype.__modules__ || (e.prototype.__modules__ = []); 1862 let w = e.prototype.__modules__; 1863 typeof C == "function" && w.indexOf(C) < 0 && w.push(C); 1864 } 1865 static use(C) { 1866 return Array.isArray(C) ? (C.forEach((C) => e.installModule(C)), e) : (e.installModule(C), e); 1867 } 1868}; 1869Object.keys(prototypes).forEach((e) => { 1870 Object.keys(prototypes[e]).forEach((C) => { 1871 Swiper.prototype[C] = prototypes[e][C]; 1872 }); 1873}), Swiper.use([Resize, Observer]); 1874function createElementIfNotDefined(e, C, w, T) { 1875 return e.params.createElements && Object.keys(T).forEach((E) => { 1876 if (!w[E] && w.auto === !0) { 1877 let D = elementChildren(e.el, `.${T[E]}`)[0]; 1878 D || (D = createElement("div", T[E]), D.className = T[E], e.el.append(D)), w[E] = D, C[E] = D; 1879 } 1880 }), w; 1881} 1882function Navigation(e) { 1883 let { swiper: C, extendParams: w, on: T, emit: E } = e; 1884 w({ navigation: { 1885 nextEl: null, 1886 prevEl: null, 1887 hideOnClick: !1, 1888 disabledClass: "swiper-button-disabled", 1889 hiddenClass: "swiper-button-hidden", 1890 lockClass: "swiper-button-lock", 1891 navigationDisabledClass: "swiper-navigation-disabled" 1892 } }), C.navigation = { 1893 nextEl: null, 1894 prevEl: null 1895 }; 1896 function D(e) { 1897 let w; 1898 return e && typeof e == "string" && C.isElement && (w = C.el.querySelector(e) || C.hostEl.querySelector(e), w) ? w : (e && (typeof e == "string" && (w = [...document.querySelectorAll(e)]), C.params.uniqueNavElements && typeof e == "string" && w && w.length > 1 && C.el.querySelectorAll(e).length === 1 ? w = C.el.querySelector(e) : w && w.length === 1 && (w = w[0])), e && !w ? e : w); 1899 } 1900 function O(e, w) { 1901 let T = C.params.navigation; 1902 e = makeElementsArray(e), e.forEach((e) => { 1903 e && (e.classList[w ? "add" : "remove"](...T.disabledClass.split(" ")), e.tagName === "BUTTON" && (e.disabled = w), C.params.watchOverflow && C.enabled && e.classList[C.isLocked ? "add" : "remove"](T.lockClass)); 1904 }); 1905 } 1906 function k() { 1907 let { nextEl: e, prevEl: w } = C.navigation; 1908 if (C.params.loop) { 1909 O(w, !1), O(e, !1); 1910 return; 1911 } 1912 O(w, C.isBeginning && !C.params.rewind), O(e, C.isEnd && !C.params.rewind); 1913 } 1914 function A(e) { 1915 e.preventDefault(), !(C.isBeginning && !C.params.loop && !C.params.rewind) && (C.slidePrev(), E("navigationPrev")); 1916 } 1917 function j(e) { 1918 e.preventDefault(), !(C.isEnd && !C.params.loop && !C.params.rewind) && (C.slideNext(), E("navigationNext")); 1919 } 1920 function M() { 1921 let e = C.params.navigation; 1922 if (C.params.navigation = createElementIfNotDefined(C, C.originalParams.navigation, C.params.navigation, { 1923 nextEl: "swiper-button-next", 1924 prevEl: "swiper-button-prev" 1925 }), !(e.nextEl || e.prevEl)) return; 1926 let w = D(e.nextEl), T = D(e.prevEl); 1927 Object.assign(C.navigation, { 1928 nextEl: w, 1929 prevEl: T 1930 }), w = makeElementsArray(w), T = makeElementsArray(T); 1931 let E = (w, T) => { 1932 w && w.addEventListener("click", T === "next" ? j : A), !C.enabled && w && w.classList.add(...e.lockClass.split(" ")); 1933 }; 1934 w.forEach((e) => E(e, "next")), T.forEach((e) => E(e, "prev")); 1935 } 1936 function N() { 1937 let { nextEl: e, prevEl: w } = C.navigation; 1938 e = makeElementsArray(e), w = makeElementsArray(w); 1939 let T = (e, w) => { 1940 e.removeEventListener("click", w === "next" ? j : A), e.classList.remove(...C.params.navigation.disabledClass.split(" ")); 1941 }; 1942 e.forEach((e) => T(e, "next")), w.forEach((e) => T(e, "prev")); 1943 } 1944 T("init", () => { 1945 C.params.navigation.enabled === !1 ? F() : (M(), k()); 1946 }), T("toEdge fromEdge lock unlock", () => { 1947 k(); 1948 }), T("destroy", () => { 1949 N(); 1950 }), T("enable disable", () => { 1951 let { nextEl: e, prevEl: w } = C.navigation; 1952 if (e = makeElementsArray(e), w = makeElementsArray(w), C.enabled) { 1953 k(); 1954 return; 1955 } 1956 [...e, ...w].filter((e) => !!e).forEach((e) => e.classList.add(C.params.navigation.lockClass)); 1957 }), T("click", (e, w) => { 1958 let { nextEl: T, prevEl: D } = C.navigation; 1959 T = makeElementsArray(T), D = makeElementsArray(D); 1960 let O = w.target, k = D.includes(O) || T.includes(O); 1961 if (C.isElement && !k) { 1962 let e = w.path || w.composedPath && w.composedPath(); 1963 e && (k = e.find((e) => T.includes(e) || D.includes(e))); 1964 } 1965 if (C.params.navigation.hideOnClick && !k) { 1966 if (C.pagination && C.params.pagination && C.params.pagination.clickable && (C.pagination.el === O || C.pagination.el.contains(O))) return; 1967 let e; 1968 T.length ? e = T[0].classList.contains(C.params.navigation.hiddenClass) : D.length && (e = D[0].classList.contains(C.params.navigation.hiddenClass)), E(e === !0 ? "navigationShow" : "navigationHide"), [...T, ...D].filter((e) => !!e).forEach((e) => e.classList.toggle(C.params.navigation.hiddenClass)); 1969 } 1970 }); 1971 let P = () => { 1972 C.el.classList.remove(...C.params.navigation.navigationDisabledClass.split(" ")), M(), k(); 1973 }, F = () => { 1974 C.el.classList.add(...C.params.navigation.navigationDisabledClass.split(" ")), N(); 1975 }; 1976 Object.assign(C.navigation, { 1977 enable: P, 1978 disable: F, 1979 update: k, 1980 init: M, 1981 destroy: N 1982 }); 1983} 1984function classesToSelector(e) { 1985 return e === void 0 && (e = ""), `.${e.trim().replace(/([\.:!+\/()[\]])/g, "\\$1").replace(/ /g, ".")}`; 1986} 1987function Pagination(e) { 1988 let { swiper: C, extendParams: w, on: T, emit: E } = e, D = "swiper-pagination"; 1989 w({ pagination: { 1990 el: null, 1991 bulletElement: "span", 1992 clickable: !1, 1993 hideOnClick: !1, 1994 renderBullet: null, 1995 renderProgressbar: null, 1996 renderFraction: null, 1997 renderCustom: null, 1998 progressbarOpposite: !1, 1999 type: "bullets", 2000 dynamicBullets: !1, 2001 dynamicMainBullets: 1, 2002 formatFractionCurrent: (e) => e, 2003 formatFractionTotal: (e) => e, 2004 bulletClass: `${D}-bullet`, 2005 bulletActiveClass: `${D}-bullet-active`, 2006 modifierClass: `${D}-`, 2007 currentClass: `${D}-current`, 2008 totalClass: `${D}-total`, 2009 hiddenClass: `${D}-hidden`, 2010 progressbarFillClass: `${D}-progressbar-fill`, 2011 progressbarOppositeClass: `${D}-progressbar-opposite`, 2012 clickableClass: `${D}-clickable`, 2013 lockClass: `${D}-lock`, 2014 horizontalClass: `${D}-horizontal`, 2015 verticalClass: `${D}-vertical`, 2016 paginationDisabledClass: `${D}-disabled` 2017 } }), C.pagination = { 2018 el: null, 2019 bullets: [] 2020 }; 2021 let O, k = 0; 2022 function A() { 2023 return !C.params.pagination.el || !C.pagination.el || Array.isArray(C.pagination.el) && C.pagination.el.length === 0; 2024 } 2025 function j(e, w) { 2026 let { bulletActiveClass: T } = C.params.pagination; 2027 e && (e = e[`${w === "prev" ? "previous" : "next"}ElementSibling`], e && (e.classList.add(`${T}-${w}`), e = e[`${w === "prev" ? "previous" : "next"}ElementSibling`], e && e.classList.add(`${T}-${w}-${w}`))); 2028 } 2029 function M(e, C, w) { 2030 if (e %= w, C %= w, C === e + 1) return "next"; 2031 if (C === e - 1) return "previous"; 2032 } 2033 function N(e) { 2034 let w = e.target.closest(classesToSelector(C.params.pagination.bulletClass)); 2035 if (!w) return; 2036 e.preventDefault(); 2037 let T = elementIndex(w) * C.params.slidesPerGroup; 2038 if (C.params.loop) { 2039 if (C.realIndex === T) return; 2040 let e = M(C.realIndex, T, C.slides.length); 2041 e === "next" ? C.slideNext() : e === "previous" ? C.slidePrev() : C.slideToLoop(T); 2042 } else C.slideTo(T); 2043 } 2044 function P() { 2045 let e = C.rtl, w = C.params.pagination; 2046 if (A()) return; 2047 let T = C.pagination.el; 2048 T = makeElementsArray(T); 2049 let D, M, N = C.virtual && C.params.virtual.enabled ? C.virtual.slides.length : C.slides.length, P = C.params.loop ? Math.ceil(N / C.params.slidesPerGroup) : C.snapGrid.length; 2050 if (C.params.loop ? (M = C.previousRealIndex || 0, D = C.params.slidesPerGroup > 1 ? Math.floor(C.realIndex / C.params.slidesPerGroup) : C.realIndex) : C.snapIndex === void 0 ? (M = C.previousIndex || 0, D = C.activeIndex || 0) : (D = C.snapIndex, M = C.previousSnapIndex), w.type === "bullets" && C.pagination.bullets && C.pagination.bullets.length > 0) { 2051 let E = C.pagination.bullets, A, N, P; 2052 if (w.dynamicBullets && (O = elementOuterSize(E[0], C.isHorizontal() ? "width" : "height", !0), T.forEach((e) => { 2053 e.style[C.isHorizontal() ? "width" : "height"] = `${O * (w.dynamicMainBullets + 4)}px`; 2054 }), w.dynamicMainBullets > 1 && M !== void 0 && (k += D - (M || 0), k > w.dynamicMainBullets - 1 ? k = w.dynamicMainBullets - 1 : k < 0 && (k = 0)), A = Math.max(D - k, 0), N = A + (Math.min(E.length, w.dynamicMainBullets) - 1), P = (N + A) / 2), E.forEac
2054h((e) => { 2055 let C = [...[ 2056 "", 2057 "-next", 2058 "-next-next", 2059 "-prev", 2060 "-prev-prev", 2061 "-main" 2062 ].map((e) => `${w.bulletActiveClass}${e}`)].map((e) => typeof e == "string" && e.includes(" ") ? e.split(" ") : e).flat(); 2063 e.classList.remove(...C); 2064 }), T.length > 1) E.forEach((e) => { 2065 let T = elementIndex(e); 2066 T === D ? e.classList.add(...w.bulletActiveClass.split(" ")) : C.isElement && e.setAttribute("part", "bullet"), w.dynamicBullets && (T >= A && T <= N && e.classList.add(...`${w.bulletActiveClass}-main`.split(" ")), T === A && j(e, "prev"), T === N && j(e, "next")); 2067 }); 2068 else { 2069 let e = E[D]; 2070 if (e && e.classList.add(...w.bulletActiveClass.split(" ")), C.isElement && E.forEach((e, C) => { 2071 e.setAttribute("part", C === D ? "bullet-active" : "bullet"); 2072 }), w.dynamicBullets) { 2073 let e = E[A], C = E[N]; 2074 for (let e = A; e <= N; e += 1) E[e] && E[e].classList.add(...`${w.bulletActiveClass}-main`.split(" ")); 2075 j(e, "prev"), j(C, "next"); 2076 } 2077 } 2078 if (w.dynamicBullets) { 2079 let T = Math.min(E.length, w.dynamicMainBullets + 4), D = (O * T - O) / 2 - P * O, k = e ? "right" : "left"; 2080 E.forEach((e) => { 2081 e.style[C.isHorizontal() ? k : "top"] = `${D}px`; 2082 }); 2083 } 2084 } 2085 T.forEach((e, T) => { 2086 if (w.type === "fraction" && (e.querySelectorAll(classesToSelector(w.currentClass)).forEach((e) => { 2087 e.textContent = w.formatFractionCurrent(D + 1); 2088 }), e.querySelectorAll(classesToSelector(w.totalClass)).forEach((e) => { 2089 e.textContent = w.formatFractionTotal(P); 2090 })), w.type === "progressbar") { 2091 let T; 2092 T = w.progressbarOpposite ? C.isHorizontal() ? "vertical" : "horizontal" : C.isHorizontal() ? "horizontal" : "vertical"; 2093 let E = (D + 1) / P, O = 1, k = 1; 2094 T === "horizontal" ? O = E : k = E, e.querySelectorAll(classesToSelector(w.progressbarFillClass)).forEach((e) => { 2095 e.style.transform = `translate3d(0,0,0) scaleX(${O}) scaleY(${k})`, e.style.transitionDuration = `${C.params.speed}ms`; 2096 }); 2097 } 2098 w.type === "custom" && w.renderCustom ? (setInnerHTML(e, w.renderCustom(C, D + 1, P)), T === 0 && E("paginationRender", e)) : (T === 0 && E("paginationRender", e), E("paginationUpdate", e)), C.params.watchOverflow && C.enabled && e.classList[C.isLocked ? "add" : "remove"](w.lockClass); 2099 }); 2100 } 2101 function F() { 2102 let e = C.params.pagination; 2103 if (A()) return; 2104 let w = C.virtual && C.params.virtual.enabled ? C.virtual.slides.length : C.grid && C.params.grid.rows > 1 ? C.slides.length / Math.ceil(C.params.grid.rows) : C.slides.length, T = C.pagination.el; 2105 T = makeElementsArray(T); 2106 let D = ""; 2107 if (e.type === "bullets") { 2108 let T = C.params.loop ? Math.ceil(w / C.params.slidesPerGroup) : C.snapGrid.length; 2109 C.params.freeMode && C.params.freeMode.enabled && T > w && (T = w); 2110 for (let w = 0; w < T; w += 1) e.renderBullet ? D += e.renderBullet.call(C, w, e.bulletClass) : D += `<${e.bulletElement} ${C.isElement ? "part=\"bullet\"" : ""} class="${e.bulletClass}"></${e.bulletElement}>`; 2111 } 2112 e.type === "fraction" && (D = e.renderFraction ? e.renderFraction.call(C, e.currentClass, e.totalClass) : `<span class="${e.currentClass}"></span> / <span class="${e.totalClass}"></span>`), e.type === "progressbar" && (D = e.renderProgressbar ? e.renderProgressbar.call(C, e.progressbarFillClass) : `<span class="${e.progressbarFillClass}"></span>`), C.pagination.bullets = [], T.forEach((w) => { 2113 e.type !== "custom" && setInnerHTML(w, D || ""), e.type === "bullets" && C.pagination.bullets.push(...w.querySelectorAll(classesToSelector(e.bulletClass))); 2114 }), e.type !== "custom" && E("paginationRender", T[0]); 2115 } 2116 function I() { 2117 C.params.pagination = createElementIfNotDefined(C, C.originalParams.pagination, C.params.pagination, { el: "swiper-pagination" }); 2118 let e = C.params.pagination; 2119 if (!e.el) return; 2120 let w; 2121 typeof e.el == "string" && C.isElement && (w = C.el.querySelector(e.el)), !w && typeof e.el == "string" && (w = [...document.querySelectorAll(e.el)]), w ||= e.el, !(!w || w.length === 0) && (C.params.uniqueNavElements && typeof e.el == "string" && Array.isArray(w) && w.length > 1 && (w = [...C.el.querySelectorAll(e.el)], w.length > 1 && (w = w.find((e) => elementParents(e, ".swiper")[0] === C.el))), Array.isArray(w) && w.length === 1 && (w = w[0]), Object.assign(C.pagination, { el: w }
vendor: 3,633 bytes, lines 2121-2179
2121), w = makeElementsArray(w), w.forEach((w) => { 2122 e.type === "bullets" && e.clickable && w.classList.add(...(e.clickableClass || "").split(" ")), w.classList.add(e.modifierClass + e.type), w.classList.add(C.isHorizontal() ? e.horizontalClass : e.verticalClass), e.type === "bullets" && e.dynamicBullets && (w.classList.add(`${e.modifierClass}${e.type}-dynamic`), k = 0, e.dynamicMainBullets < 1 && (e.dynamicMainBullets = 1)), e.type === "progressbar" && e.progressbarOpposite && w.classList.add(e.progressbarOppositeClass), e.clickable && w.addEventListener("click", N), C.enabled || w.classList.add(e.lockClass); 2123 })); 2124 } 2125 function L() { 2126 let e = C.params.pagination; 2127 if (A()) return; 2128 let w = C.pagination.el; 2129 w && (w = makeElementsArray(w), w.forEach((w) => { 2130 w.classList.remove(e.hiddenClass), w.classList.remove(e.modifierClass + e.type), w.classList.remove(C.isHorizontal() ? e.horizontalClass : e.verticalClass), e.clickable && (w.classList.remove(...(e.clickableClass || "").split(" ")), w.removeEventListener("click", N)); 2131 })), C.pagination.bullets && C.pagination.bullets.forEach((C) => C.classList.remove(...e.bulletActiveClass.split(" "))); 2132 } 2133 T("changeDirection", () => { 2134 if (!C.pagination || !C.pagination.el) return; 2135 let e = C.params.pagination, { el: w } = C.pagination; 2136 w = makeElementsArray(w), w.forEach((w) => { 2137 w.classList.remove(e.horizontalClass, e.verticalClass), w.classList.add(C.isHorizontal() ? e.horizontalClass : e.verticalClass); 2138 }); 2139 }), T("init", () => { 2140 C.params.pagination.enabled === !1 ? z() : (I(), F(), P()); 2141 }), T("activeIndexChange", () => { 2142 C.snapIndex === void 0 && P(); 2143 }), T("snapIndexChange", () => { 2144 P(); 2145 }), T("snapGridLengthChange", () => { 2146 F(), P(); 2147 }), T("destroy", () => { 2148 L(); 2149 }), T("enable disable", () => { 2150 let { el: e } = C.pagination; 2151 e && (e = makeElementsArray(e), e.forEach((e) => e.classList[C.enabled ? "remove" : "add"](C.params.pagination.lockClass))); 2152 }), T("lock unlock", () => { 2153 P(); 2154 }), T("click", (e, w) => { 2155 let T = w.target, D = makeElementsArray(C.pagination.el); 2156 if (C.params.pagination.el && C.params.pagination.hideOnClick && D && D.length > 0 && !T.classList.contains(C.params.pagination.bulletClass)) { 2157 if (C.navigation && (C.navigation.nextEl && T === C.navigation.nextEl || C.navigation.prevEl && T === C.navigation.prevEl)) return; 2158 D[0].classList.contains(C.params.pagination.hiddenClass) === !0 ? E("paginationShow") : E("paginationHide"), D.forEach((e) => e.classList.toggle(C.params.pagination.hiddenClass)); 2159 } 2160 }); 2161 let R = () => { 2162 C.el.classList.remove(C.params.pagination.paginationDisabledClass); 2163 let { el: e } = C.pagination; 2164 e && (e = makeElementsArray(e), e.forEach((e) => e.classList.remove(C.params.pagination.paginationDisabledClass))), I(), F(), P(); 2165 }, z = () => { 2166 C.el.classList.add(C.params.pagination.paginationDisabledClass); 2167 let { el: e } = C.pagination; 2168 e && (e = makeElementsArray(e), e.forEach((e) => e.classList.add(C.params.pagination.paginationDisabledClass))), L(); 2169 }; 2170 Object.assign(C.pagination, { 2171 enable: R, 2172 disable: z, 2173 render: F, 2174 update: P, 2175 init: I, 2176 destroy: L 2177 }); 2178} 2179export { getWindow as C, getDocument as S, makeElementsArray as _, Swiper as a, setCSSProperty as b, elementChildren as c, elementParents as d, elementTransitionEnd as f, isObject as g, getTranslate as h, createElementIfNotDefined as i, elementIndex as l, getSlideTransformEl as m, classesToSelector as n, classesToTokens as o, getRotateFix as p, Navigation as r, createElement as s, Pagination as t, elementOffset as u, nextTick as v, setInnerHTML as x, now as y };
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.