@marimo-team/islands 0.23.1-dev7 → 0.23.1-dev9

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