PageSourceSearch

https://credit9.com/wp-content/themes/credit9-v2/dist/js/app.js?ver=1764629484

js credit9.com collected 2026-09-29 05:16:57 UTC 790,033 bytes, 22,155 lines download raw bytes

1/******/ (function() { // webpackBootstrap
2/******/ 	"use strict";
3/******/ 	var __webpack_modules__ = ({
4
vendor: 9,980 bytes, lines 5-227
5/***/ "./node_modules/@popperjs/core/lib/createPopper.js":
6/*!*********************************************************!*\
7  !*** ./node_modules/@popperjs/core/lib/createPopper.js ***!
8  \*********************************************************/
9/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10
11__webpack_require__.r(__webpack_exports__);
12/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13/* harmony export */   createPopper: function() { return /* binding */ createPopper; },
14/* harmony export */   detectOverflow: function() { return /* reexport safe */ _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]; },
15/* harmony export */   popperGenerator: function() { return /* binding */ popperGenerator; }
16/* harmony export */ });
17/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js");
18/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
19/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js");
20/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
21/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/orderModifiers.js */ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js");
22/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/debounce.js */ "./node_modules/@popperjs/core/lib/utils/debounce.js");
23/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/mergeByName.js */ "./node_modules/@popperjs/core/lib/utils/mergeByName.js");
24/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
25/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
26
27
28
29
30
31
32
33
34
35var DEFAULT_OPTIONS = {
36  placement: 'bottom',
37  modifiers: [],
38  strategy: 'absolute'
39};
40
41function areValidElements() {
42  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43    args[_key] = arguments[_key];
44  }
45
46  return !args.some(function (element) {
47    return !(element && typeof element.getBoundingClientRect === 'function');
48  });
49}
50
51function popperGenerator(generatorOptions) {
52  if (generatorOptions === void 0) {
53    generatorOptions = {};
54  }
55
56  var _generatorOptions = generatorOptions,
57      _generatorOptions$def = _generatorOptions.defaultModifiers,
58      defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
59      _generatorOptions$def2 = _generatorOptions.defaultOptions,
60      defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
61  return function createPopper(reference, popper, options) {
62    if (options === void 0) {
63      options = defaultOptions;
64    }
65
66    var state = {
67      placement: 'bottom',
68      orderedModifiers: [],
69      options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
70      modifiersData: {},
71      elements: {
72        reference: reference,
73        popper: popper
74      },
75      attributes: {},
76      styles: {}
77    };
78    var effectCleanupFns = [];
79    var isDestroyed = false;
80    var instance = {
81      state: state,
82      setOptions: function setOptions(setOptionsAction) {
83        var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
84        cleanupModifierEffects();
85        state.options = Object.assign({}, defaultOptions, state.options, options);
86        state.scrollParents = {
87          reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference.contextElement) : [],
88          popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper)
89        }; // Orders the modifiers based on their dependencies and `phase`
90        // properties
91
92        var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__["default"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
93
94        state.orderedModifiers = orderedModifiers.filter(function (m) {
95          return m.enabled;
96        });
97        runModifierEffects();
98        return instance.update();
99      },
100      // Sync update – it will always be executed, even if not necessary. This
101      // is useful for low frequency updates where sync behavior simplifies the
102      // logic.
103      // For high frequency updates (e.g. `resize` and `scroll` events), always
104      // prefer the async Popper#update method
105      forceUpdate: function forceUpdate() {
106        if (isDestroyed) {
107          return;
108        }
109
110        var _state$elements = state.elements,
111            reference = _state$elements.reference,
112            popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
113        // anymore
114
115        if (!areValidElements(reference, popper)) {
116          return;
117        } // Store the reference and popper rects to be read by modifiers
118
119
120        state.rects = {
121          reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__["default"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(popper), state.options.strategy === 'fixed'),
122          popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(popper)
123        }; // Modifiers have the ability to reset the current update cycle. The
124        // most common use case for this is the `flip` modifier changing the
125        // placement, which then needs to re-run all the modifiers, because the
126        // logic was previously ran for the previous placement and is therefore
127        // stale/incorrect
128
129        state.reset = false;
130        state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
131        // is filled with the initial data specified by the modifier. This means
132        // it doesn't persist and is fresh on each update.
133        // To ensure persistent data, use `${name}#persistent`
134
135        state.orderedModifiers.forEach(function (modifier) {
136          return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
137        });
138
139        for (var index = 0; index < state.orderedModifiers.length; index++) {
140          if (state.reset === true) {
141            state.reset = false;
142            index = -1;
143            continue;
144          }
145
146          var _state$orderedModifie = state.orderedModifiers[index],
147              fn = _state$orderedModifie.fn,
148              _state$orderedModifie2 = _state$orderedModifie.options,
149              _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
150              name = _state$orderedModifie.name;
151
152          if (typeof fn === 'function') {
153            state = fn({
154              state: state,
155              options: _options,
156              name: name,
157              instance: instance
158            }) || state;
159          }
160        }
161      },
162      // Async and optimistically optimized update – it will not be executed if
163      // not necessary (debounced to run at most once-per-tick)
164      update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__["default"])(function () {
165        return new Promise(function (resolve) {
166          instance.forceUpdate();
167          resolve(state);
168        });
169      }),
170      destroy: function destroy() {
171        cleanupModifierEffects();
172        isDestroyed = true;
173      }
174    };
175
176    if (!areValidElements(reference, popper)) {
177      return instance;
178    }
179
180    instance.setOptions(options).then(function (state) {
181      if (!isDestroyed && options.onFirstUpdate) {
182        options.onFirstUpdate(state);
183      }
184    }); // Modifiers have the ability to execute arbitrary code before the first
185    // update cycle runs. They will be executed in the same order as the update
186    // cycle. This is useful when a modifier adds some persistent data that
187    // other modifiers need to use, but the modifier is run after the dependent
188    // one.
189
190    function runModifierEffects() {
191      state.orderedModifiers.forEach(function (_ref) {
192        var name = _ref.name,
193            _ref$options = _ref.options,
194            options = _ref$options === void 0 ? {} : _ref$options,
195            effect = _ref.effect;
196
197        if (typeof effect === 'function') {
198          var cleanupFn = effect({
199            state: state,
200            name: name,
201            instance: instance,
202            options: options
203          });
204
205          var noopFn = function noopFn() {};
206
207          effectCleanupFns.push(cleanupFn || noopFn);
208        }
209      });
210    }
211
212    function cleanupModifierEffects() {
213      effectCleanupFns.forEach(function (fn) {
214        return fn();
215      });
216      effectCleanupFns = [];
217    }
218
219    return instance;
220  };
221}
222var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules
223
224
225
226/***/ }),
227
vendor: 1,424 bytes, lines 228-264
228/***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js":
229/*!***************************************************************!*\
230  !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***!
231  \***************************************************************/
232/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
233
234__webpack_require__.r(__webpack_exports__);
235/* harmony export */ __webpack_require__.d(__webpack_exports__, {
236/* harmony export */   "default": function() { return /* binding */ contains; }
237/* harmony export */ });
238/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
239
240function contains(parent, child) {
241  var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
242
243  if (parent.contains(child)) {
244    return true;
245  } // then fallback to custom implementation with Shadow DOM support
246  else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) {
247      var next = child;
248
249      do {
250        if (next && parent.isSameNode(next)) {
251          return true;
252        } // $FlowFixMe[prop-missing]: need a better way to handle this...
253
254
255        next = next.parentNode || next.host;
256      } while (next);
257    } // Give up, the result is false
258
259
260  return false;
261}
262
263/***/ }),
264
vendor: 2,812 bytes, lines 265-322
265/***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js":
266/*!****************************************************************************!*\
267  !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***!
268  \****************************************************************************/
269/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
270
271__webpack_require__.r(__webpack_exports__);
272/* harmony export */ __webpack_require__.d(__webpack_exports__, {
273/* harmony export */   "default": function() { return /* binding */ getBoundingClientRect; }
274/* harmony export */ });
275/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
276/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
277/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
278/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js");
279
280
281
282
283function getBoundingClientRect(element, includeScale, isFixedStrategy) {
284  if (includeScale === void 0) {
285    includeScale = false;
286  }
287
288  if (isFixedStrategy === void 0) {
289    isFixedStrategy = false;
290  }
291
292  var clientRect = element.getBoundingClientRect();
293  var scaleX = 1;
294  var scaleY = 1;
295
296  if (includeScale && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {
297    scaleX = element.offsetWidth > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.width) / element.offsetWidth || 1 : 1;
298    scaleY = element.offsetHeight > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.height) / element.offsetHeight || 1 : 1;
299  }
300
301  var _ref = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) : window,
302      visualViewport = _ref.visualViewport;
303
304  var addVisualOffsets = !(0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__["default"])() && isFixedStrategy;
305  var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
306  var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
307  var width = clientRect.width / scaleX;
308  var height = clientRect.height / scaleY;
309  return {
310    width: width,
311    height: height,
312    top: y,
313    right: x + width,
314    bottom: y + height,
315    left: x,
316    x: x,
317    y: y
318  };
319}
320
321/***/ }),
322
vendor: 6,922 bytes, lines 323-419
323/***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js":
324/*!**********************************************************************!*\
325  !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***!
326  \**********************************************************************/
327/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
328
329__webpack_require__.r(__webpack_exports__);
330/* harmony export */ __webpack_require__.d(__webpack_exports__, {
331/* harmony export */   "default": function() { return /* binding */ getClippingRect; }
332/* harmony export */ });
333/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
334/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getViewportRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js");
335/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js");
336/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js");
337/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
338/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
339/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
340/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
341/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
342/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
343/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js");
344/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
345/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js");
346/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362function getInnerBoundingClientRect(element, strategy) {
363  var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element, false, strategy === 'fixed');
364  rect.top = rect.top + element.clientTop;
365  rect.left = rect.left + element.clientLeft;
366  rect.bottom = rect.top + element.clientHeight;
367  rect.right = rect.left + element.clientWidth;
368  rect.width = element.clientWidth;
369  rect.height = element.clientHeight;
370  rect.x = rect.left;
371  rect.y = rect.top;
372  return rect;
373}
374
375function getClientRectFromMixedType(element, clippingParent, strategy) {
376  return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element, strategy)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(element)));
377} // A "clipping parent" is an overflowable container with the characteristic of
378// clipping (or hiding) overflowing elements with a position different from
379// `initial`
380
381
382function getClippingParents(element) {
383  var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__["default"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_8__["default"])(element));
384  var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__["default"])(element).position) >= 0;
385  var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__["default"])(element) : element;
386
387  if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) {
388    return [];
389  } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
390
391
392  return clippingParents.filter(function (clippingParent) {
393    return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_11__["default"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_12__["default"])(clippingParent) !== 'body';
394  });
395} // Gets the maximum area that the element is visible in due to any number of
396// clipping parents
397
398
399function getClippingRect(element, boundary, rootBoundary, strategy) {
400  var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
401  var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
402  var firstClippingParent = clippingParents[0];
403  var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
404    var rect = getClientRectFromMixedType(element, clippingParent, strategy);
405    accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top);
406    accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right);
407    accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom);
408    accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left);
409    return accRect;
410  }, getClientRectFromMixedType(element, firstClippingParent, strategy));
411  clippingRect.width = clippingRect.right - clippingRect.left;
412  clippingRect.height = clippingRect.bottom - clippingRect.top;
413  clippingRect.x = clippingRect.left;
414  clippingRect.y = clippingRect.top;
415  return clippingRect;
416}
417
418/***/ }),
419
vendor: 4,358 bytes, lines 420-498
420/***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js":
421/*!***********************************************************************!*\
422  !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***!
423  \***********************************************************************/
424/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
425
426__webpack_require__.r(__webpack_exports__);
427/* harmony export */ __webpack_require__.d(__webpack_exports__, {
428/* harmony export */   "default": function() { return /* binding */ getCompositeRect; }
429/* harmony export */ });
430/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
431/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getNodeScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js");
432/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
433/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
434/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
435/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
436/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
437/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
438
439
440
441
442
443
444
445
446
447function isElementScaled(element) {
448  var rect = element.getBoundingClientRect();
449  var scaleX = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) / element.offsetWidth || 1;
450  var scaleY = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) / element.offsetHeight || 1;
451  return scaleX !== 1 || scaleY !== 1;
452} // Returns the composite rect of an element relative to its offsetParent.
453// Composite means it takes into account transforms as well as layout.
454
455
456function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
457  if (isFixed === void 0) {
458    isFixed = false;
459  }
460
461  var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent);
462  var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent);
463  var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent);
464  var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(elementOrVirtualElement, offsetParentIsScaled, isFixed);
465  var scroll = {
466    scrollLeft: 0,
467    scrollTop: 0
468  };
469  var offsets = {
470    x: 0,
471    y: 0
472  };
473
474  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
475    if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
476    (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(documentElement)) {
477      scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent);
478    }
479
480    if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) {
481      offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent, true);
482      offsets.x += offsetParent.clientLeft;
483      offsets.y += offsetParent.clientTop;
484    } else if (documentElement) {
485      offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__["default"])(documentElement);
486    }
487  }
488
489  return {
490    x: rect.left + scroll.scrollLeft - offsets.x,
491    y: rect.top + scroll.scrollTop - offsets.y,
492    width: rect.width,
493    height: rect.height
494  };
495}
496
497/***/ }),
498
vendor: 940 bytes, lines 499-516
499/***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js":
500/*!***********************************************************************!*\
501  !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***!
502  \***********************************************************************/
503/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
504
505__webpack_require__.r(__webpack_exports__);
506/* harmony export */ __webpack_require__.d(__webpack_exports__, {
507/* harmony export */   "default": function() { return /* binding */ getComputedStyle; }
508/* harmony export */ });
509/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
510
511function getComputedStyle(element) {
512  return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element).getComputedStyle(element);
513}
514
515/***/ }),
516
vendor: 1,111 bytes, lines 517-536
517/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js":
518/*!*************************************************************************!*\
519  !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***!
520  \*************************************************************************/
521/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
522
523__webpack_require__.r(__webpack_exports__);
524/* harmony export */ __webpack_require__.d(__webpack_exports__, {
525/* harmony export */   "default": function() { return /* binding */ getDocumentElement; }
526/* harmony export */ });
527/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
528
529function getDocumentElement(element) {
530  // $FlowFixMe[incompatible-return]: assume body is always available
531  return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
532  element.document) || window.document).documentElement;
533}
534
535/***/ }),
536
vendor: 2,864 bytes, lines 537-583
537/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js":
538/*!**********************************************************************!*\
539  !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***!
540  \**********************************************************************/
541/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
542
543__webpack_require__.r(__webpack_exports__);
544/* harmony export */ __webpack_require__.d(__webpack_exports__, {
545/* harmony export */   "default": function() { return /* binding */ getDocumentRect; }
546/* harmony export */ });
547/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
548/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
549/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
550/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
551/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
552
553
554
555
556 // Gets the entire size of the scrollable document area, even extending outside
557// of the `<html>` and `<body>` rect bounds if horizontally scrollable
558
559function getDocumentRect(element) {
560  var _element$ownerDocumen;
561
562  var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
563  var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
564  var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
565  var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
566  var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
567  var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element);
568  var y = -winScroll.scrollTop;
569
570  if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(body || html).direction === 'rtl') {
571    x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width;
572  }
573
574  return {
575    width: width,
576    height: height,
577    x: x,
578    y: y
579  };
580}
581
582/***/ }),
583
vendor: 772 bytes, lines 584-602
584/***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js":
585/*!***************************************************************************!*\
586  !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***!
587  \***************************************************************************/
588/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
589
590__webpack_require__.r(__webpack_exports__);
591/* harmony export */ __webpack_require__.d(__webpack_exports__, {
592/* harmony export */   "default": function() { return /* binding */ getHTMLElementScroll; }
593/* harmony export */ });
594function getHTMLElementScroll(element) {
595  return {
596    scrollLeft: element.scrollLeft,
597    scrollTop: element.scrollTop
598  };
599}
600
601/***/ }),
602
vendor: 1,556 bytes, lines 603-641
603/***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js":
604/*!********************************************************************!*\
605  !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***!
606  \********************************************************************/
607/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
608
609__webpack_require__.r(__webpack_exports__);
610/* harmony export */ __webpack_require__.d(__webpack_exports__, {
611/* harmony export */   "default": function() { return /* binding */ getLayoutRect; }
612/* harmony export */ });
613/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
614 // Returns the layout rect of an element relative to its offsetParent. Layout
615// means it doesn't take into account transforms.
616
617function getLayoutRect(element) {
618  var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); // Use the clientRect sizes if it's not been transformed.
619  // Fixes https://github.com/popperjs/popper-core/issues/1223
620
621  var width = element.offsetWidth;
622  var height = element.offsetHeight;
623
624  if (Math.abs(clientRect.width - width) <= 1) {
625    width = clientRect.width;
626  }
627
628  if (Math.abs(clientRect.height - height) <= 1) {
629    height = clientRect.height;
630  }
631
632  return {
633    x: element.offsetLeft,
634    y: element.offsetTop,
635    width: width,
636    height: height
637  };
638}
639
640/***/ }),
641
vendor: 699 bytes, lines 642-657
642/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js":
643/*!******************************************************************!*\
644  !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***!
645  \******************************************************************/
646/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
647
648__webpack_require__.r(__webpack_exports__);
649/* harmony export */ __webpack_require__.d(__webpack_exports__, {
650/* harmony export */   "default": function() { return /* binding */ getNodeName; }
651/* harmony export */ });
652function getNodeName(element) {
653  return element ? (element.nodeName || '').toLowerCase() : null;
654}
655
656/***/ }),
657
vendor: 1,730 bytes, lines 658-685
658/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js":
659/*!********************************************************************!*\
660  !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***!
661  \********************************************************************/
662/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
663
664__webpack_require__.r(__webpack_exports__);
665/* harmony export */ __webpack_require__.d(__webpack_exports__, {
666/* harmony export */   "default": function() { return /* binding */ getNodeScroll; }
667/* harmony export */ });
668/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
669/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
670/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
671/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js");
672
673
674
675
676function getNodeScroll(node) {
677  if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) {
678    return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node);
679  } else {
680    return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node);
681  }
682}
683
684/***/ }),
685
vendor: 4,978 bytes, lines 686-774
686/***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js":
687/*!**********************************************************************!*\
688  !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***!
689  \**********************************************************************/
690/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
691
692__webpack_require__.r(__webpack_exports__);
693/* harmony export */ __webpack_require__.d(__webpack_exports__, {
694/* harmony export */   "default": function() { return /* binding */ getOffsetParent; }
695/* harmony export */ });
696/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
697/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
698/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
699/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
700/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isTableElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js");
701/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
702/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js");
703
704
705
706
707
708
709
710
711function getTrueOffsetParent(element) {
712  if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837
713  (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element).position === 'fixed') {
714    return null;
715  }
716
717  return element.offsetParent;
718} // `.offsetParent` reports `null` for fixed elements, while absolute elements
719// return the containing block
720
721
722function getContainingBlock(element) {
723  var isFirefox = /firefox/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])());
724  var isIE = /Trident/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])());
725
726  if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {
727    // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
728    var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
729
730    if (elementCss.position === 'fixed') {
731      return null;
732    }
733  }
734
735  var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element);
736
737  if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(currentNode)) {
738    currentNode = currentNode.host;
739  }
740
741  while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(currentNode)) < 0) {
742    var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that
743    // create a containing block.
744    // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
745
746    if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
747      return currentNode;
748    } else {
749      currentNode = currentNode.parentNode;
750    }
751  }
752
753  return null;
754} // Gets the closest ancestor positioned element. Handles some edge cases,
755// such as table ancestors and cross browser bugs.
756
757
758function getOffsetParent(element) {
759  var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_5__["default"])(element);
760  var offsetParent = getTrueOffsetParent(element);
761
762  while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static') {
763    offsetParent = getTrueOffsetParent(offsetParent);
764  }
765
766  if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static')) {
767    return window;
768  }
769
770  return offsetParent || getContainingBlock(element) || window;
771}
772
773/***/ }),
774
vendor: 1,906 bytes, lines 775-809
775/***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js":
776/*!********************************************************************!*\
777  !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***!
778  \********************************************************************/
779/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
780
781__webpack_require__.r(__webpack_exports__);
782/* harmony export */ __webpack_require__.d(__webpack_exports__, {
783/* harmony export */   "default": function() { return /* binding */ getParentNode; }
784/* harmony export */ });
785/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
786/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
787/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
788
789
790
791function getParentNode(element) {
792  if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === 'html') {
793    return element;
794  }
795
796  return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
797    // $FlowFixMe[incompatible-return]
798    // $FlowFixMe[prop-missing]
799    element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
800    element.parentNode || ( // DOM Element detected
801    (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected
802    // $FlowFixMe[incompatible-call]: HTMLElement is a Node
803    (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) // fallback
804
805  );
806}
807
808/***/ }),
809
vendor: 1,884 bytes, lines 810-842
810/***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js":
811/*!**********************************************************************!*\
812  !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***!
813  \**********************************************************************/
814/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
815
816__webpack_require__.r(__webpack_exports__);
817/* harmony export */ __webpack_require__.d(__webpack_exports__, {
818/* harmony export */   "default": function() { return /* binding */ getScrollParent; }
819/* harmony export */ });
820/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
821/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
822/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
823/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
824
825
826
827
828function getScrollParent(node) {
829  if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node)) >= 0) {
830    // $FlowFixMe[incompatible-return]: assume body is always available
831    return node.ownerDocument.body;
832  }
833
834  if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node)) {
835    return node;
836  }
837
838  return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node));
839}
840
841/***/ }),
842
vendor: 2,240 bytes, lines 843-890
843/***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js":
844/*!**********************************************************************!*\
845  !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***!
846  \**********************************************************************/
847/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
848
849__webpack_require__.r(__webpack_exports__);
850/* harmony export */ __webpack_require__.d(__webpack_exports__, {
851/* harmony export */   "default": function() { return /* binding */ getViewportRect; }
852/* harmony export */ });
853/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
854/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
855/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
856/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js");
857
858
859
860
861function getViewportRect(element, strategy) {
862  var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
863  var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
864  var visualViewport = win.visualViewport;
865  var width = html.clientWidth;
866  var height = html.clientHeight;
867  var x = 0;
868  var y = 0;
869
870  if (visualViewport) {
871    width = visualViewport.width;
872    height = visualViewport.height;
873    var layoutViewport = (0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__["default"])();
874
875    if (layoutViewport || !layoutViewport && strategy === 'fixed') {
876      x = visualViewport.offsetLeft;
877      y = visualViewport.offsetTop;
878    }
879  }
880
881  return {
882    width: width,
883    height: height,
884    x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element),
885    y: y
886  };
887}
888
889/***/ }),
890
vendor: 848 bytes, lines 891-915
891/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js":
892/*!****************************************************************!*\
893  !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***!
894  \****************************************************************/
895/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
896
897__webpack_require__.r(__webpack_exports__);
898/* harmony export */ __webpack_require__.d(__webpack_exports__, {
899/* harmony export */   "default": function() { return /* binding */ getWindow; }
900/* harmony export */ });
901function getWindow(node) {
902  if (node == null) {
903    return window;
904  }
905
906  if (node.toString() !== '[object Window]') {
907    var ownerDocument = node.ownerDocument;
908    return ownerDocument ? ownerDocument.defaultView || window : window;
909  }
910
911  return node;
912}
913
914/***/ }),
915
vendor: 1,045 bytes, lines 916-939
916/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js":
917/*!**********************************************************************!*\
918  !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***!
919  \**********************************************************************/
920/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
921
922__webpack_require__.r(__webpack_exports__);
923/* harmony export */ __webpack_require__.d(__webpack_exports__, {
924/* harmony export */   "default": function() { return /* binding */ getWindowScroll; }
925/* harmony export */ });
926/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
927
928function getWindowScroll(node) {
929  var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node);
930  var scrollLeft = win.pageXOffset;
931  var scrollTop = win.pageYOffset;
932  return {
933    scrollLeft: scrollLeft,
934    scrollTop: scrollTop
935  };
936}
937
938/***/ }),
939
vendor: 1,919 bytes, lines 940-968
940/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js":
941/*!**************************************************************************!*\
942  !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***!
943  \**************************************************************************/
944/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
945
946__webpack_require__.r(__webpack_exports__);
947/* harmony export */ __webpack_require__.d(__webpack_exports__, {
948/* harmony export */   "default": function() { return /* binding */ getWindowScrollBarX; }
949/* harmony export */ });
950/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
951/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
952/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
953
954
955
956function getWindowScrollBarX(element) {
957  // If <html> has a CSS width greater than the viewport, then this will be
958  // incorrect for RTL.
959  // Popper 1 is broken in this case and never had a bug report so let's assume
960  // it's not an issue. I don't think anyone ever specifies width on <html>
961  // anyway.
962  // Browsers where the left scrollbar doesn't cause an issue report `0` for
963  // this (e.g. Edge 2019, IE11, Safari)
964  return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).scrollLeft;
965}
966
967/***/ }),
968
vendor: 1,621 bytes, lines 969-1007
969/***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js":
970/*!*****************************************************************!*\
971  !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***!
972  \*****************************************************************/
973/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
974
975__webpack_require__.r(__webpack_exports__);
976/* harmony export */ __webpack_require__.d(__webpack_exports__, {
977/* harmony export */   isElement: function() { return /* binding */ isElement; },
978/* harmony export */   isHTMLElement: function() { return /* binding */ isHTMLElement; },
979/* harmony export */   isShadowRoot: function() { return /* binding */ isShadowRoot; }
980/* harmony export */ });
981/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
982
983
984function isElement(node) {
985  var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).Element;
986  return node instanceof OwnElement || node instanceof Element;
987}
988
989function isHTMLElement(node) {
990  var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).HTMLElement;
991  return node instanceof OwnElement || node instanceof HTMLElement;
992}
993
994function isShadowRoot(node) {
995  // IE 11 has no ShadowRoot
996  if (typeof ShadowRoot === 'undefined') {
997    return false;
998  }
999
1000  var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).ShadowRoot;
1001  return node instanceof OwnElement || node instanceof ShadowRoot;
1002}
1003
1004
1005
1006/***/ }),
1007
vendor: 955 bytes, lines 1008-1025
1008/***/ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js":
1009/*!***********************************************************************!*\
1010  !*** ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js ***!
1011  \***********************************************************************/
1012/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1013
1014__webpack_require__.r(__webpack_exports__);
1015/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1016/* harmony export */   "default": function() { return /* binding */ isLayoutViewport; }
1017/* harmony export */ });
1018/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js");
1019
1020function isLayoutViewport() {
1021  return !/^((?!chrome|android).)*safari/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__["default"])());
1022}
1023
1024/***/ }),
1025
vendor: 1,229 bytes, lines 1026-1049
1026/***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js":
1027/*!*********************************************************************!*\
1028  !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***!
1029  \*********************************************************************/
1030/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1031
1032__webpack_require__.r(__webpack_exports__);
1033/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1034/* harmony export */   "default": function() { return /* binding */ isScrollParent; }
1035/* harmony export */ });
1036/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
1037
1038function isScrollParent(element) {
1039  // Firefox wants us to check `-x` and `-y` variations as well
1040  var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element),
1041      overflow = _getComputedStyle.overflow,
1042      overflowX = _getComputedStyle.overflowX,
1043      overflowY = _getComputedStyle.overflowY;
1044
1045  return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
1046}
1047
1048/***/ }),
1049
vendor: 946 bytes, lines 1050-1067
1050/***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js":
1051/*!*********************************************************************!*\
1052  !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***!
1053  \*********************************************************************/
1054/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1055
1056__webpack_require__.r(__webpack_exports__);
1057/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1058/* harmony export */   "default": function() { return /* binding */ isTableElement; }
1059/* harmony export */ });
1060/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
1061
1062function isTableElement(element) {
1063  return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) >= 0;
1064}
1065
1066/***/ }),
1067
vendor: 2,535 bytes, lines 1068-1110
1068/***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js":
1069/*!************************************************************************!*\
1070  !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***!
1071  \************************************************************************/
1072/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1073
1074__webpack_require__.r(__webpack_exports__);
1075/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1076/* harmony export */   "default": function() { return /* binding */ listScrollParents; }
1077/* harmony export */ });
1078/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js");
1079/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
1080/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
1081/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
1082
1083
1084
1085
1086/*
1087given a DOM element, return the list of all scroll parents, up the list of ancesors
1088until we get to the top window object. This list is what we attach scroll listeners
1089to, because if any of these parent elements scroll, we'll need to re-calculate the
1090reference element's position.
1091*/
1092
1093function listScrollParents(element, list) {
1094  var _element$ownerDocumen;
1095
1096  if (list === void 0) {
1097    list = [];
1098  }
1099
1100  var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
1101  var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
1102  var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scrollParent);
1103  var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(scrollParent) ? scrollParent : []) : scrollParent;
1104  var updatedList = list.concat(target);
1105  return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
1106  updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(target)));
1107}
1108
1109/***/ }),
1110
vendor: 3,549 bytes, lines 1111-1177
1111/***/ "./node_modules/@popperjs/core/lib/enums.js":
1112/*!**************************************************!*\
1113  !*** ./node_modules/@popperjs/core/lib/enums.js ***!
1114  \**************************************************/
1115/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1116
1117__webpack_require__.r(__webpack_exports__);
1118/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1119/* harmony export */   afterMain: function() { return /* binding */ afterMain; },
1120/* harmony export */   afterRead: function() { return /* binding */ afterRead; },
1121/* harmony export */   afterWrite: function() { return /* binding */ afterWrite; },
1122/* harmony export */   auto: function() { return /* binding */ auto; },
1123/* harmony export */   basePlacements: function() { return /* binding */ basePlacements; },
1124/* harmony export */   beforeMain: function() { return /* binding */ beforeMain; },
1125/* harmony export */   beforeRead: function() { return /* binding */ beforeRead; },
1126/* harmony export */   beforeWrite: function() { return /* binding */ beforeWrite; },
1127/* harmony export */   bottom: function() { return /* binding */ bottom; },
1128/* harmony export */   clippingParents: function() { return /* binding */ clippingParents; },
1129/* harmony export */   end: function() { return /* binding */ end; },
1130/* harmony export */   left: function() { return /* binding */ left; },
1131/* harmony export */   main: function() { return /* binding */ main; },
1132/* harmony export */   modifierPhases: function() { return /* binding */ modifierPhases; },
1133/* harmony export */   placements: function() { return /* binding */ placements; },
1134/* harmony export */   popper: function() { return /* binding */ popper; },
1135/* harmony export */   read: function() { return /* binding */ read; },
1136/* harmony export */   reference: function() { return /* binding */ reference; },
1137/* harmony export */   right: function() { return /* binding */ right; },
1138/* harmony export */   start: function() { return /* binding */ start; },
1139/* harmony export */   top: function() { return /* binding */ top; },
1140/* harmony export */   variationPlacements: function() { return /* binding */ variationPlacements; },
1141/* harmony export */   viewport: function() { return /* binding */ viewport; },
1142/* harmony export */   write: function() { return /* binding */ write; }
1143/* harmony export */ });
1144var top = 'top';
1145var bottom = 'bottom';
1146var right = 'right';
1147var left = 'left';
1148var auto = 'auto';
1149var basePlacements = [top, bottom, right, left];
1150var start = 'start';
1151var end = 'end';
1152var clippingParents = 'clippingParents';
1153var viewport = 'viewport';
1154var popper = 'popper';
1155var reference = 'reference';
1156var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
1157  return acc.concat([placement + "-" + start, placement + "-" + end]);
1158}, []);
1159var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
1160  return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
1161}, []); // modifiers that need to read the DOM
1162
1163var beforeRead = 'beforeRead';
1164var read = 'read';
1165var afterRead = 'afterRead'; // pure-logic modifiers
1166
1167var beforeMain = 'beforeMain';
1168var main = 'main';
1169var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
1170
1171var beforeWrite = 'beforeWrite';
1172var write = 'write';
1173var afterWrite = 'afterWrite';
1174var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
1175
1176/***/ }),
1177
vendor: 6,583 bytes, lines 1178-1241
1178/***/ "./node_modules/@popperjs/core/lib/index.js":
1179/*!**************************************************!*\
1180  !*** ./node_modules/@popperjs/core/lib/index.js ***!
1181  \**************************************************/
1182/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1183
1184__webpack_require__.r(__webpack_exports__);
1185/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1186/* harmony export */   afterMain: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterMain; },
1187/* harmony export */   afterRead: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterRead; },
1188/* harmony export */   afterWrite: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.afterWrite; },
1189/* harmony export */   applyStyles: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.applyStyles; },
1190/* harmony export */   arrow: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.arrow; },
1191/* harmony export */   auto: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.auto; },
1192/* harmony export */   basePlacements: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements; },
1193/* harmony export */   beforeMain: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeMain; },
1194/* harmony export */   beforeRead: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeRead; },
1195/* harmony export */   beforeWrite: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.beforeWrite; },
1196/* harmony export */   bottom: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom; },
1197/* harmony export */   clippingParents: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents; },
1198/* harmony export */   computeStyles: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.computeStyles; },
1199/* harmony export */   createPopper: function() { return /* reexport safe */ _popper_js__WEBPACK_IMPORTED_MODULE_4__.createPopper; },
1200/* harmony export */   createPopperBase: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.createPopper; },
1201/* harmony export */   createPopperLite: function() { return /* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__.createPopper; },
1202/* harmony export */   detectOverflow: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_3__["default"]; },
1203/* harmony export */   end: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.end; },
1204/* harmony export */   eventListeners: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.eventListeners; },
1205/* harmony export */   flip: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.flip; },
1206/* harmony export */   hide: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.hide; },
1207/* harmony export */   left: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.left; },
1208/* harmony export */   main: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.main; },
1209/* harmony export */   modifierPhases: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases; },
1210/* harmony export */   offset: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.offset; },
1211/* harmony export */   placements: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements; },
1212/* harmony export */   popper: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper; },
1213/* harmony export */   popperGenerator: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_2__.popperGenerator; },
1214/* harmony export */   popperOffsets: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.popperOffsets; },
1215/* harmony export */   preventOverflow: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__.preventOverflow; },
1216/* harmony export */   read: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.read; },
1217/* harmony export */   reference: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference; },
1218/* harmony export */   right: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.right; },
1219/* harmony export */   start: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.start; },
1220/* harmony export */   top: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.top; },
1221/* harmony export */   variationPlacements: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements; },
1222/* harmony export */   viewport: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport; },
1223/* harmony export */   write: function() { return /* reexport safe */ _enums_js__WEBPACK_IMPORTED_MODULE_0__.write; }
1224/* harmony export */ });
1225/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1226/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js");
1227/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js");
1228/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
1229/* harmony import */ var _popper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popper.js */ "./node_modules/@popperjs/core/lib/popper.js");
1230/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js");
1231
1232 // eslint-disable-next-line import/no-unused-modules
1233
1234 // eslint-disable-next-line import/no-unused-modules
1235
1236 // eslint-disable-next-line import/no-unused-modules
1237
1238
1239
1240/***/ }),
1241
vendor: 3,518 bytes, lines 1242-1337
1242/***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js":
1243/*!******************************************************************!*\
1244  !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***!
1245  \******************************************************************/
1246/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1247
1248__webpack_require__.r(__webpack_exports__);
1249/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
1250/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
1251
1252 // This modifier takes the styles prepared by the `computeStyles` modifier
1253// and applies them to the HTMLElements such as popper and arrow
1254
1255function applyStyles(_ref) {
1256  var state = _ref.state;
1257  Object.keys(state.elements).forEach(function (name) {
1258    var style = state.styles[name] || {};
1259    var attributes = state.attributes[name] || {};
1260    var element = state.elements[name]; // arrow is optional + virtual elements
1261
1262    if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) {
1263      return;
1264    } // Flow doesn't support to extend this property, but it's the most
1265    // effective way to apply styles to an HTMLElement
1266    // $FlowFixMe[cannot-write]
1267
1268
1269    Object.assign(element.style, style);
1270    Object.keys(attributes).forEach(function (name) {
1271      var value = attributes[name];
1272
1273      if (value === false) {
1274        element.removeAttribute(name);
1275      } else {
1276        element.setAttribute(name, value === true ? '' : value);
1277      }
1278    });
1279  });
1280}
1281
1282function effect(_ref2) {
1283  var state = _ref2.state;
1284  var initialStyles = {
1285    popper: {
1286      position: state.options.strategy,
1287      left: '0',
1288      top: '0',
1289      margin: '0'
1290    },
1291    arrow: {
1292      position: 'absolute'
1293    },
1294    reference: {}
1295  };
1296  Object.assign(state.elements.popper.style, initialStyles.popper);
1297  state.styles = initialStyles;
1298
1299  if (state.elements.arrow) {
1300    Object.assign(state.elements.arrow.style, initialStyles.arrow);
1301  }
1302
1303  return function () {
1304    Object.keys(state.elements).forEach(function (name) {
1305      var element = state.elements[name];
1306      var attributes = state.attributes[name] || {};
1307      var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
1308
1309      var style = styleProperties.reduce(function (style, property) {
1310        style[property] = '';
1311        return style;
1312      }, {}); // arrow is optional + virtual elements
1313
1314      if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) {
1315        return;
1316      }
1317
1318      Object.assign(element.style, style);
1319      Object.keys(attributes).forEach(function (attribute) {
1320        element.removeAttribute(attribute);
1321      });
1322    });
1323  };
1324} // eslint-disable-next-line import/no-unused-modules
1325
1326
1327/* harmony default export */ __webpack_exports__["default"] = ({
1328  name: 'applyStyles',
1329  enabled: true,
1330  phase: 'write',
1331  fn: applyStyles,
1332  effect: effect,
1333  requires: ['computeStyles']
1334});
1335
1336/***/ }),
1337
vendor: 5,819 bytes, lines 1338-1446
1338/***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js":
1339/*!************************************************************!*\
1340  !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***!
1341  \************************************************************/
1342/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1343
1344__webpack_require__.r(__webpack_exports__);
1345/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
1346/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
1347/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../dom-utils/contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js");
1348/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
1349/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
1350/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js");
1351/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js");
1352/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js");
1353/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1354
1355
1356
1357
1358
1359
1360
1361
1362 // eslint-disable-next-line import/no-unused-modules
1363
1364var toPaddingObject = function toPaddingObject(padding, state) {
1365  padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
1366    placement: state.placement
1367  })) : padding;
1368  return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements));
1369};
1370
1371function arrow(_ref) {
1372  var _state$modifiersData$;
1373
1374  var state = _ref.state,
1375      name = _ref.name,
1376      options = _ref.options;
1377  var arrowElement = state.elements.arrow;
1378  var popperOffsets = state.modifiersData.popperOffsets;
1379  var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(state.placement);
1380  var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(basePlacement);
1381  var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right].indexOf(basePlacement) >= 0;
1382  var len = isVertical ? 'height' : 'width';
1383
1384  if (!arrowElement || !popperOffsets) {
1385    return;
1386  }
1387
1388  var paddingObject = toPaddingObject(options.padding, state);
1389  var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(arrowElement);
1390  var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left;
1391  var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right;
1392  var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
1393  var startDiff = popperOffsets[axis] - state.rects.reference[axis];
1394  var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement);
1395  var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
1396  var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
1397  // outside of the popper bounds
1398
1399  var min = paddingObject[minProp];
1400  var max = clientSize - arrowRect[len] - paddingObject[maxProp];
1401  var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
1402  var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_7__.within)(min, center, max); // Prevents breaking syntax highlighting...
1403
1404  var axisProp = axis;
1405  state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
1406}
1407
1408function effect(_ref2) {
1409  var state = _ref2.state,
1410      options = _ref2.options;
1411  var _options$element = options.element,
1412      arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
1413
1414  if (arrowElement == null) {
1415    return;
1416  } // CSS selector
1417
1418
1419  if (typeof arrowElement === 'string') {
1420    arrowElement = state.elements.popper.querySelector(arrowElement);
1421
1422    if (!arrowElement) {
1423      return;
1424    }
1425  }
1426
1427  if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__["default"])(state.elements.popper, arrowElement)) {
1428    return;
1429  }
1430
1431  state.elements.arrow = arrowElement;
1432} // eslint-disable-next-line import/no-unused-modules
1433
1434
1435/* harmony default export */ __webpack_exports__["default"] = ({
1436  name: 'arrow',
1437  enabled: true,
1438  phase: 'main',
1439  fn: arrow,
1440  effect: effect,
1441  requires: ['popperOffsets'],
1442  requiresIfExists: ['preventOverflow']
1443});
1444
1445/***/ }),
1446
vendor: 8,423 bytes, lines 1447-1636
1447/***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js":
1448/*!********************************************************************!*\
1449  !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***!
1450  \********************************************************************/
1451/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1452
1453__webpack_require__.r(__webpack_exports__);
1454/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1455/* harmony export */   mapToStyles: function() { return /* binding */ mapToStyles; }
1456/* harmony export */ });
1457/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1458/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
1459/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
1460/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
1461/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
1462/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
1463/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
1464/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
1465
1466
1467
1468
1469
1470
1471
1472 // eslint-disable-next-line import/no-unused-modules
1473
1474var unsetSides = {
1475  top: 'auto',
1476  right: 'auto',
1477  bottom: 'auto',
1478  left: 'auto'
1479}; // Round the offsets to the nearest suitable subpixel based on the DPR.
1480// Zooming can change the DPR, but it seems to report a value that will
1481// cleanly divide the values into the appropriate subpixels.
1482
1483function roundOffsetsByDPR(_ref, win) {
1484  var x = _ref.x,
1485      y = _ref.y;
1486  var dpr = win.devicePixelRatio || 1;
1487  return {
1488    x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr || 0,
1489    y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr || 0
1490  };
1491}
1492
1493function mapToStyles(_ref2) {
1494  var _Object$assign2;
1495
1496  var popper = _ref2.popper,
1497      popperRect = _ref2.popperRect,
1498      placement = _ref2.placement,
1499      variation = _ref2.variation,
1500      offsets = _ref2.offsets,
1501      position = _ref2.position,
1502      gpuAcceleration = _ref2.gpuAcceleration,
1503      adaptive = _ref2.adaptive,
1504      roundOffsets = _ref2.roundOffsets,
1505      isFixed = _ref2.isFixed;
1506  var _offsets$x = offsets.x,
1507      x = _offsets$x === void 0 ? 0 : _offsets$x,
1508      _offsets$y = offsets.y,
1509      y = _offsets$y === void 0 ? 0 : _offsets$y;
1510
1511  var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
1512    x: x,
1513    y: y
1514  }) : {
1515    x: x,
1516    y: y
1517  };
1518
1519  x = _ref3.x;
1520  y = _ref3.y;
1521  var hasX = offsets.hasOwnProperty('x');
1522  var hasY = offsets.hasOwnProperty('y');
1523  var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left;
1524  var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;
1525  var win = window;
1526
1527  if (adaptive) {
1528    var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper);
1529    var heightProp = 'clientHeight';
1530    var widthProp = 'clientWidth';
1531
1532    if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) {
1533      offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(popper);
1534
1535      if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent).position !== 'static' && position === 'absolute') {
1536        heightProp = 'scrollHeight';
1537        widthProp = 'scrollWidth';
1538      }
1539    } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
1540
1541
1542    offsetParent = offsetParent;
1543
1544    if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {
1545      sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom;
1546      var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
1547      offsetParent[heightProp];
1548      y -= offsetY - popperRect.height;
1549      y *= gpuAcceleration ? 1 : -1;
1550    }
1551
1552    if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {
1553      sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right;
1554      var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
1555      offsetParent[widthProp];
1556      x -= offsetX - popperRect.width;
1557      x *= gpuAcceleration ? 1 : -1;
1558    }
1559  }
1560
1561  var commonStyles = Object.assign({
1562    position: position
1563  }, adaptive && unsetSides);
1564
1565  var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
1566    x: x,
1567    y: y
1568  }, (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) : {
1569    x: x,
1570    y: y
1571  };
1572
1573  x = _ref4.x;
1574  y = _ref4.y;
1575
1576  if (gpuAcceleration) {
1577    var _Object$assign;
1578
1579    return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
1580  }
1581
1582  return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
1583}
1584
1585function computeStyles(_ref5) {
1586  var state = _ref5.state,
1587      options = _ref5.options;
1588  var _options$gpuAccelerat = options.gpuAcceleration,
1589      gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
1590      _options$adaptive = options.adaptive,
1591      adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
1592      _options$roundOffsets = options.roundOffsets,
1593      roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
1594  var commonStyles = {
1595    placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.placement),
1596    variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__["default"])(state.placement),
1597    popper: state.elements.popper,
1598    popperRect: state.rects.popper,
1599    gpuAcceleration: gpuAcceleration,
1600    isFixed: state.options.strategy === 'fixed'
1601  };
1602
1603  if (state.modifiersData.popperOffsets != null) {
1604    state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
1605      offsets: state.modifiersData.popperOffsets,
1606      position: state.options.strategy,
1607      adaptive: adaptive,
1608      roundOffsets: roundOffsets
1609    })));
1610  }
1611
1612  if (state.modifiersData.arrow != null) {
1613    state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
1614      offsets: state.modifiersData.arrow,
1615      position: 'absolute',
1616      adaptive: false,
1617      roundOffsets: roundOffsets
1618    })));
1619  }
1620
1621  state.attributes.popper = Object.assign({}, state.attributes.popper, {
1622    'data-popper-placement': state.placement
1623  });
1624} // eslint-disable-next-line import/no-unused-modules
1625
1626
1627/* harmony default export */ __webpack_exports__["default"] = ({
1628  name: 'computeStyles',
1629  enabled: true,
1630  phase: 'beforeWrite',
1631  fn: computeStyles,
1632  data: {}
1633});
1634
1635/***/ }),
1636
vendor: 2,019 bytes, lines 1637-1696
1637/***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js":
1638/*!*********************************************************************!*\
1639  !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***!
1640  \*********************************************************************/
1641/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1642
1643__webpack_require__.r(__webpack_exports__);
1644/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
1645 // eslint-disable-next-line import/no-unused-modules
1646
1647var passive = {
1648  passive: true
1649};
1650
1651function effect(_ref) {
1652  var state = _ref.state,
1653      instance = _ref.instance,
1654      options = _ref.options;
1655  var _options$scroll = options.scroll,
1656      scroll = _options$scroll === void 0 ? true : _options$scroll,
1657      _options$resize = options.resize,
1658      resize = _options$resize === void 0 ? true : _options$resize;
1659  var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.elements.popper);
1660  var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
1661
1662  if (scroll) {
1663    scrollParents.forEach(function (scrollParent) {
1664      scrollParent.addEventListener('scroll', instance.update, passive);
1665    });
1666  }
1667
1668  if (resize) {
1669    window.addEventListener('resize', instance.update, passive);
1670  }
1671
1672  return function () {
1673    if (scroll) {
1674      scrollParents.forEach(function (scrollParent) {
1675        scrollParent.removeEventListener('scroll', instance.update, passive);
1676      });
1677    }
1678
1679    if (resize) {
1680      window.removeEventListener('resize', instance.update, passive);
1681    }
1682  };
1683} // eslint-disable-next-line import/no-unused-modules
1684
1685
1686/* harmony default export */ __webpack_exports__["default"] = ({
1687  name: 'eventListeners',
1688  enabled: true,
1689  phase: 'write',
1690  fn: function fn() {},
1691  effect: effect,
1692  data: {}
1693});
1694
1695/***/ }),
1696
vendor: 7,367 bytes, lines 1697-1860
1697/***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js":
1698/*!***********************************************************!*\
1699  !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***!
1700  \***********************************************************/
1701/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1702
1703__webpack_require__.r(__webpack_exports__);
1704/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js");
1705/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
1706/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js");
1707/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
1708/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js");
1709/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1710/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
1711
1712
1713
1714
1715
1716
1717 // eslint-disable-next-line import/no-unused-modules
1718
1719function getExpandedFallbackPlacements(placement) {
1720  if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) {
1721    return [];
1722  }
1723
1724  var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(placement);
1725  return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(oppositePlacement)];
1726}
1727
1728function flip(_ref) {
1729  var state = _ref.state,
1730      options = _ref.options,
1731      name = _ref.name;
1732
1733  if (state.modifiersData[name]._skip) {
1734    return;
1735  }
1736
1737  var _options$mainAxis = options.mainAxis,
1738      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
1739      _options$altAxis = options.altAxis,
1740      checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
1741      specifiedFallbackPlacements = options.fallbackPlacements,
1742      padding = options.padding,
1743      boundary = options.boundary,
1744      rootBoundary = options.rootBoundary,
1745      altBoundary = options.altBoundary,
1746      _options$flipVariatio = options.flipVariations,
1747      flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
1748      allowedAutoPlacements = options.allowedAutoPlacements;
1749  var preferredPlacement = state.options.placement;
1750  var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(preferredPlacement);
1751  var isBasePlacement = basePlacement === preferredPlacement;
1752  var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
1753  var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
1754    return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(state, {
1755      placement: placement,
1756      boundary: boundary,
1757      rootBoundary: rootBoundary,
1758      padding: padding,
1759      flipVariations: flipVariations,
1760      allowedAutoPlacements: allowedAutoPlacements
1761    }) : placement);
1762  }, []);
1763  var referenceRect = state.rects.reference;
1764  var popperRect = state.rects.popper;
1765  var checksMap = new Map();
1766  var makeFallbackChecks = true;
1767  var firstFittingPlacement = placements[0];
1768
1769  for (var i = 0; i < placements.length; i++) {
1770    var placement = placements[i];
1771
1772    var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement);
1773
1774    var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start;
1775    var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom].indexOf(_basePlacement) >= 0;
1776    var len = isVertical ? 'width' : 'height';
1777    var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state, {
1778      placement: placement,
1779      boundary: boundary,
1780      rootBoundary: rootBoundary,
1781      altBoundary: altBoundary,
1782      padding: padding
1783    });
1784    var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;
1785
1786    if (referenceRect[len] > popperRect[len]) {
1787      mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide);
1788    }
1789
1790    var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide);
1791    var checks = [];
1792
1793    if (checkMainAxis) {
1794      checks.push(overflow[_basePlacement] <= 0);
1795    }
1796
1797    if (checkAltAxis) {
1798      checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
1799    }
1800
1801    if (checks.every(function (check) {
1802      return check;
1803    })) {
1804      firstFittingPlacement = placement;
1805      makeFallbackChecks = false;
1806      break;
1807    }
1808
1809    checksMap.set(placement, checks);
1810  }
1811
1812  if (makeFallbackChecks) {
1813    // `2` may be desired in some cases – research later
1814    var numberOfChecks = flipVariations ? 3 : 1;
1815
1816    var _loop = function _loop(_i) {
1817      var fittingPlacement = placements.find(function (placement) {
1818        var checks = checksMap.get(placement);
1819
1820        if (checks) {
1821          return checks.slice(0, _i).every(function (check) {
1822            return check;
1823          });
1824        }
1825      });
1826
1827      if (fittingPlacement) {
1828        firstFittingPlacement = fittingPlacement;
1829        return "break";
1830      }
1831    };
1832
1833    for (var _i = numberOfChecks; _i > 0; _i--) {
1834      var _ret = _loop(_i);
1835
1836      if (_ret === "break") break;
1837    }
1838  }
1839
1840  if (state.placement !== firstFittingPlacement) {
1841    state.modifiersData[name]._skip = true;
1842    state.placement = firstFittingPlacement;
1843    state.reset = true;
1844  }
1845} // eslint-disable-next-line import/no-unused-modules
1846
1847
1848/* harmony default export */ __webpack_exports__["default"] = ({
1849  name: 'flip',
1850  enabled: true,
1851  phase: 'main',
1852  fn: flip,
1853  requiresIfExists: ['offset'],
1854  data: {
1855    _skip: false
1856  }
1857});
1858
1859/***/ }),
1860
vendor: 2,903 bytes, lines 1861-1933
1861/***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js":
1862/*!***********************************************************!*\
1863  !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***!
1864  \***********************************************************/
1865/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1866
1867__webpack_require__.r(__webpack_exports__);
1868/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1869/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
1870
1871
1872
1873function getSideOffsets(overflow, rect, preventedOffsets) {
1874  if (preventedOffsets === void 0) {
1875    preventedOffsets = {
1876      x: 0,
1877      y: 0
1878    };
1879  }
1880
1881  return {
1882    top: overflow.top - rect.height - preventedOffsets.y,
1883    right: overflow.right - rect.width + preventedOffsets.x,
1884    bottom: overflow.bottom - rect.height + preventedOffsets.y,
1885    left: overflow.left - rect.width - preventedOffsets.x
1886  };
1887}
1888
1889function isAnySideFullyClipped(overflow) {
1890  return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) {
1891    return overflow[side] >= 0;
1892  });
1893}
1894
1895function hide(_ref) {
1896  var state = _ref.state,
1897      name = _ref.name;
1898  var referenceRect = state.rects.reference;
1899  var popperRect = state.rects.popper;
1900  var preventedOffsets = state.modifiersData.preventOverflow;
1901  var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, {
1902    elementContext: 'reference'
1903  });
1904  var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, {
1905    altBoundary: true
1906  });
1907  var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
1908  var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
1909  var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
1910  var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
1911  state.modifiersData[name] = {
1912    referenceClippingOffsets: referenceClippingOffsets,
1913    popperEscapeOffsets: popperEscapeOffsets,
1914    isReferenceHidden: isReferenceHidden,
1915    hasPopperEscaped: hasPopperEscaped
1916  };
1917  state.attributes.popper = Object.assign({}, state.attributes.popper, {
1918    'data-popper-reference-hidden': isReferenceHidden,
1919    'data-popper-escaped': hasPopperEscaped
1920  });
1921} // eslint-disable-next-line import/no-unused-modules
1922
1923
1924/* harmony default export */ __webpack_exports__["default"] = ({
1925  name: 'hide',
1926  enabled: true,
1927  phase: 'main',
1928  requiresIfExists: ['preventOverflow'],
1929  fn: hide
1930});
1931
1932/***/ }),
1933
vendor: 3,265 bytes, lines 1934-1972
1934/***/ "./node_modules/@popperjs/core/lib/modifiers/index.js":
1935/*!************************************************************!*\
1936  !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***!
1937  \************************************************************/
1938/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1939
1940__webpack_require__.r(__webpack_exports__);
1941/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1942/* harmony export */   applyStyles: function() { return /* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__["default"]; },
1943/* harmony export */   arrow: function() { return /* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__["default"]; },
1944/* harmony export */   computeStyles: function() { return /* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"]; },
1945/* harmony export */   eventListeners: function() { return /* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__["default"]; },
1946/* harmony export */   flip: function() { return /* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__["default"]; },
1947/* harmony export */   hide: function() { return /* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__["default"]; },
1948/* harmony export */   offset: function() { return /* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__["default"]; },
1949/* harmony export */   popperOffsets: function() { return /* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"]; },
1950/* harmony export */   preventOverflow: function() { return /* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]; }
1951/* harmony export */ });
1952/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
1953/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js");
1954/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
1955/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
1956/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js");
1957/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js");
1958/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js");
1959/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
1960/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js");
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971/***/ }),
1972
vendor: 2,746 bytes, lines 1973-2041
1973/***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js":
1974/*!*************************************************************!*\
1975  !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***!
1976  \*************************************************************/
1977/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1978
1979__webpack_require__.r(__webpack_exports__);
1980/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1981/* harmony export */   distanceAndSkiddingToXY: function() { return /* binding */ distanceAndSkiddingToXY; }
1982/* harmony export */ });
1983/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
1984/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
1985
1986 // eslint-disable-next-line import/no-unused-modules
1987
1988function distanceAndSkiddingToXY(placement, rects, offset) {
1989  var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement);
1990  var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1;
1991
1992  var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
1993    placement: placement
1994  })) : offset,
1995      skidding = _ref[0],
1996      distance = _ref[1];
1997
1998  skidding = skidding || 0;
1999  distance = (distance || 0) * invertDistance;
2000  return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? {
2001    x: distance,
2002    y: skidding
2003  } : {
2004    x: skidding,
2005    y: distance
2006  };
2007}
2008
2009function offset(_ref2) {
2010  var state = _ref2.state,
2011      options = _ref2.options,
2012      name = _ref2.name;
2013  var _options$offset = options.offset,
2014      offset = _options$offset === void 0 ? [0, 0] : _options$offset;
2015  var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) {
2016    acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
2017    return acc;
2018  }, {});
2019  var _data$state$placement = data[state.placement],
2020      x = _data$state$placement.x,
2021      y = _data$state$placement.y;
2022
2023  if (state.modifiersData.popperOffsets != null) {
2024    state.modifiersData.popperOffsets.x += x;
2025    state.modifiersData.popperOffsets.y += y;
2026  }
2027
2028  state.modifiersData[name] = data;
2029} // eslint-disable-next-line import/no-unused-modules
2030
2031
2032/* harmony default export */ __webpack_exports__["default"] = ({
2033  name: 'offset',
2034  enabled: true,
2035  phase: 'main',
2036  requires: ['popperOffsets'],
2037  fn: offset
2038});
2039
2040/***/ }),
2041
vendor: 1,384 bytes, lines 2042-2077
2042/***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js":
2043/*!********************************************************************!*\
2044  !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***!
2045  \********************************************************************/
2046/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2047
2048__webpack_require__.r(__webpack_exports__);
2049/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js");
2050
2051
2052function popperOffsets(_ref) {
2053  var state = _ref.state,
2054      name = _ref.name;
2055  // Offsets are the actual position the popper needs to have to be
2056  // properly positioned near its reference element
2057  // This is the most basic placement, and will be adjusted by
2058  // the modifiers in the next step
2059  state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
2060    reference: state.rects.reference,
2061    element: state.rects.popper,
2062    strategy: 'absolute',
2063    placement: state.placement
2064  });
2065} // eslint-disable-next-line import/no-unused-modules
2066
2067
2068/* harmony default export */ __webpack_exports__["default"] = ({
2069  name: 'popperOffsets',
2070  enabled: true,
2071  phase: 'read',
2072  fn: popperOffsets,
2073  data: {}
2074});
2075
2076/***/ }),
2077
vendor: 9,733 bytes, lines 2078-2240
2078/***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js":
2079/*!**********************************************************************!*\
2080  !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***!
2081  \**********************************************************************/
2082/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2083
2084__webpack_require__.r(__webpack_exports__);
2085/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
2086/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
2087/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
2088/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getAltAxis.js */ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js");
2089/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js");
2090/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
2091/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
2092/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
2093/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
2094/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js");
2095/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108function preventOverflow(_ref) {
2109  var state = _ref.state,
2110      options = _ref.options,
2111      name = _ref.name;
2112  var _options$mainAxis = options.mainAxis,
2113      checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
2114      _options$altAxis = options.altAxis,
2115      checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
2116      boundary = options.boundary,
2117      rootBoundary = options.rootBoundary,
2118      altBoundary = options.altBoundary,
2119      padding = options.padding,
2120      _options$tether = options.tether,
2121      tether = _options$tether === void 0 ? true : _options$tether,
2122      _options$tetherOffset = options.tetherOffset,
2123      tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
2124  var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state, {
2125    boundary: boundary,
2126    rootBoundary: rootBoundary,
2127    padding: padding,
2128    altBoundary: altBoundary
2129  });
2130  var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.placement);
2131  var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.placement);
2132  var isBasePlacement = !variation;
2133  var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement);
2134  var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__["default"])(mainAxis);
2135  var popperOffsets = state.modifiersData.popperOffsets;
2136  var referenceRect = state.rects.reference;
2137  var popperRect = state.rects.popper;
2138  var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
2139    placement: state.placement
2140  })) : tetherOffset;
2141  var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
2142    mainAxis: tetherOffsetValue,
2143    altAxis: tetherOffsetValue
2144  } : Object.assign({
2145    mainAxis: 0,
2146    altAxis: 0
2147  }, tetherOffsetValue);
2148  var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
2149  var data = {
2150    x: 0,
2151    y: 0
2152  };
2153
2154  if (!popperOffsets) {
2155    return;
2156  }
2157
2158  if (checkMainAxis) {
2159    var _offsetModifierState$;
2160
2161    var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;
2162    var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;
2163    var len = mainAxis === 'y' ? 'height' : 'width';
2164    var offset = popperOffsets[mainAxis];
2165    var min = offset + overflow[mainSide];
2166    var max = offset - overflow[altSide];
2167    var additive = tether ? -popperRect[len] / 2 : 0;
2168    var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len];
2169    var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
2170    // outside the reference bounds
2171
2172    var arrowElement = state.elements.arrow;
2173    var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement) : {
2174      width: 0,
2175      height: 0
2176    };
2177    var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__["default"])();
2178    var arrowPaddingMin = arrowPaddingObject[mainSide];
2179    var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
2180    // to include its full size in the calculation. If the reference is small
2181    // and near the edge of a boundary, the popper can overflow even if the
2182    // reference is not overflowing as well (e.g. virtual elements with no
2183    // width or height)
2184
2185    var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(0, referenceRect[len], arrowRect[len]);
2186    var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
2187    var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
2188    var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__["default"])(state.elements.arrow);
2189    var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
2190    var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
2191    var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
2192    var tetherMax = offset + maxOffset - offsetModifierValue;
2193    var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max);
2194    popperOffsets[mainAxis] = preventedOffset;
2195    data[mainAxis] = preventedOffset - offset;
2196  }
2197
2198  if (checkAltAxis) {
2199    var _offsetModifierState$2;
2200
2201    var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;
2202
2203    var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;
2204
2205    var _offset = popperOffsets[altAxis];
2206
2207    var _len = altAxis === 'y' ? 'height' : 'width';
2208
2209    var _min = _offset + overflow[_mainSide];
2210
2211    var _max = _offset - overflow[_altSide];
2212
2213    var isOriginSide = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.left].indexOf(basePlacement) !== -1;
2214
2215    var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
2216
2217    var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
2218
2219    var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
2220
2221    var _preventedOffset = tether && isOriginSide ? (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
2222
2223    popperOffsets[altAxis] = _preventedOffset;
2224    data[altAxis] = _preventedOffset - _offset;
2225  }
2226
2227  state.modifiersData[name] = data;
2228} // eslint-disable-next-line import/no-unused-modules
2229
2230
2231/* harmony default export */ __webpack_exports__["default"] = ({
2232  name: 'preventOverflow',
2233  enabled: true,
2234  phase: 'main',
2235  fn: preventOverflow,
2236  requiresIfExists: ['offset']
2237});
2238
2239/***/ }),
2240
vendor: 2,615 bytes, lines 2241-2273
2241/***/ "./node_modules/@popperjs/core/lib/popper-lite.js":
2242/*!********************************************************!*\
2243  !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***!
2244  \********************************************************/
2245/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2246
2247__webpack_require__.r(__webpack_exports__);
2248/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2249/* harmony export */   createPopper: function() { return /* binding */ createPopper; },
2250/* harmony export */   defaultModifiers: function() { return /* binding */ defaultModifiers; },
2251/* harmony export */   detectOverflow: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_5__["default"]; },
2252/* harmony export */   popperGenerator: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator; }
2253/* harmony export */ });
2254/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js");
2255/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
2256/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
2257/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
2258/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
2259/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
2260
2261
2262
2263
2264
2265var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"]];
2266var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({
2267  defaultModifiers: defaultModifiers
2268}); // eslint-disable-next-line import/no-unused-modules
2269
2270
2271
2272/***/ }),
2273
vendor: 5,704 bytes, lines 2274-2332
2274/***/ "./node_modules/@popperjs/core/lib/popper.js":
2275/*!***************************************************!*\
2276  !*** ./node_modules/@popperjs/core/lib/popper.js ***!
2277  \***************************************************/
2278/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2279
2280__webpack_require__.r(__webpack_exports__);
2281/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2282/* harmony export */   applyStyles: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles; },
2283/* harmony export */   arrow: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow; },
2284/* harmony export */   computeStyles: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles; },
2285/* harmony export */   createPopper: function() { return /* binding */ createPopper; },
2286/* harmony export */   createPopperLite: function() { return /* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper; },
2287/* harmony export */   defaultModifiers: function() { return /* binding */ defaultModifiers; },
2288/* harmony export */   detectOverflow: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_10__["default"]; },
2289/* harmony export */   eventListeners: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners; },
2290/* harmony export */   flip: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip; },
2291/* harmony export */   hide: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide; },
2292/* harmony export */   offset: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset; },
2293/* harmony export */   popperGenerator: function() { return /* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator; },
2294/* harmony export */   popperOffsets: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets; },
2295/* harmony export */   preventOverflow: function() { return /* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow; }
2296/* harmony export */ });
2297/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js");
2298/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
2299/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
2300/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
2301/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
2302/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
2303/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js");
2304/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js");
2305/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js");
2306/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js");
2307/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js");
2308/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js");
2309/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js");
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__["default"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__["default"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__["default"]];
2321var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({
2322  defaultModifiers: defaultModifiers
2323}); // eslint-disable-next-line import/no-unused-modules
2324
2325 // eslint-disable-next-line import/no-unused-modules
2326
2327 // eslint-disable-next-line import/no-unused-modules
2328
2329
2330
2331/***/ }),
2332
vendor: 3,102 bytes, lines 2333-2392
2333/***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js":
2334/*!***********************************************************************!*\
2335  !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***!
2336  \***********************************************************************/
2337/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2338
2339__webpack_require__.r(__webpack_exports__);
2340/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2341/* harmony export */   "default": function() { return /* binding */ computeAutoPlacement; }
2342/* harmony export */ });
2343/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
2344/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
2345/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
2346/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
2347
2348
2349
2350
2351function computeAutoPlacement(state, options) {
2352  if (options === void 0) {
2353    options = {};
2354  }
2355
2356  var _options = options,
2357      placement = _options.placement,
2358      boundary = _options.boundary,
2359      rootBoundary = _options.rootBoundary,
2360      padding = _options.padding,
2361      flipVariations = _options.flipVariations,
2362      _options$allowedAutoP = _options.allowedAutoPlacements,
2363      allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP;
2364  var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement);
2365  var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter(function (placement) {
2366    return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === variation;
2367  }) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements;
2368  var allowedPlacements = placements.filter(function (placement) {
2369    return allowedAutoPlacements.indexOf(placement) >= 0;
2370  });
2371
2372  if (allowedPlacements.length === 0) {
2373    allowedPlacements = placements;
2374  } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
2375
2376
2377  var overflows = allowedPlacements.reduce(function (acc, placement) {
2378    acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state, {
2379      placement: placement,
2380      boundary: boundary,
2381      rootBoundary: rootBoundary,
2382      padding: padding
2383    })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement)];
2384    return acc;
2385  }, {});
2386  return Object.keys(overflows).sort(function (a, b) {
2387    return overflows[a] - overflows[b];
2388  });
2389}
2390
2391/***/ }),
2392
vendor: 3,200 bytes, lines 2393-2479
2393/***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js":
2394/*!*****************************************************************!*\
2395  !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***!
2396  \*****************************************************************/
2397/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2398
2399__webpack_require__.r(__webpack_exports__);
2400/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2401/* harmony export */   "default": function() { return /* binding */ computeOffsets; }
2402/* harmony export */ });
2403/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
2404/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
2405/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
2406/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
2407
2408
2409
2410
2411function computeOffsets(_ref) {
2412  var reference = _ref.reference,
2413      element = _ref.element,
2414      placement = _ref.placement;
2415  var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) : null;
2416  var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) : null;
2417  var commonX = reference.x + reference.width / 2 - element.width / 2;
2418  var commonY = reference.y + reference.height / 2 - element.height / 2;
2419  var offsets;
2420
2421  switch (basePlacement) {
2422    case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top:
2423      offsets = {
2424        x: commonX,
2425        y: reference.y - element.height
2426      };
2427      break;
2428
2429    case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom:
2430      offsets = {
2431        x: commonX,
2432        y: reference.y + reference.height
2433      };
2434      break;
2435
2436    case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right:
2437      offsets = {
2438        x: reference.x + reference.width,
2439        y: commonY
2440      };
2441      break;
2442
2443    case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left:
2444      offsets = {
2445        x: reference.x - element.width,
2446        y: commonY
2447      };
2448      break;
2449
2450    default:
2451      offsets = {
2452        x: reference.x,
2453        y: reference.y
2454      };
2455  }
2456
2457  var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement) : null;
2458
2459  if (mainAxis != null) {
2460    var len = mainAxis === 'y' ? 'height' : 'width';
2461
2462    switch (variation) {
2463      case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start:
2464        offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
2465        break;
2466
2467      case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end:
2468        offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
2469        break;
2470
2471      default:
2472    }
2473  }
2474
2475  return offsets;
2476}
2477
2478/***/ }),
2479
vendor: 856 bytes, lines 2480-2507
2480/***/ "./node_modules/@popperjs/core/lib/utils/debounce.js":
2481/*!***********************************************************!*\
2482  !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***!
2483  \***********************************************************/
2484/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2485
2486__webpack_require__.r(__webpack_exports__);
2487/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2488/* harmony export */   "default": function() { return /* binding */ debounce; }
2489/* harmony export */ });
2490function debounce(fn) {
2491  var pending;
2492  return function () {
2493    if (!pending) {
2494      pending = new Promise(function (resolve) {
2495        Promise.resolve().then(function () {
2496          pending = undefined;
2497          resolve(fn());
2498        });
2499      });
2500    }
2501
2502    return pending;
2503  };
2504}
2505
2506/***/ }),
2507
vendor: 6,232 bytes, lines 2508-2594
2508/***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js":
2509/*!*****************************************************************!*\
2510  !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***!
2511  \*****************************************************************/
2512/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2513
2514__webpack_require__.r(__webpack_exports__);
2515/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2516/* harmony export */   "default": function() { return /* binding */ detectOverflow; }
2517/* harmony export */ });
2518/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js");
2519/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
2520/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
2521/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js");
2522/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js");
2523/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
2524/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
2525/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js");
2526/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js");
2527
2528
2529
2530
2531
2532
2533
2534
2535 // eslint-disable-next-line import/no-unused-modules
2536
2537function detectOverflow(state, options) {
2538  if (options === void 0) {
2539    options = {};
2540  }
2541
2542  var _options = options,
2543      _options$placement = _options.placement,
2544      placement = _options$placement === void 0 ? state.placement : _options$placement,
2545      _options$strategy = _options.strategy,
2546      strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
2547      _options$boundary = _options.boundary,
2548      boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary,
2549      _options$rootBoundary = _options.rootBoundary,
2550      rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary,
2551      _options$elementConte = _options.elementContext,
2552      elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte,
2553      _options$altBoundary = _options.altBoundary,
2554      altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
2555      _options$padding = _options.padding,
2556      padding = _options$padding === void 0 ? 0 : _options$padding;
2557  var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements));
2558  var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper;
2559  var popperRect = state.rects.popper;
2560  var element = state.elements[altBoundary ? altContext : elementContext];
2561  var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.elements.popper), boundary, rootBoundary, strategy);
2562  var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.elements.reference);
2563  var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"])({
2564    reference: referenceClientRect,
2565    element: popperRect,
2566    strategy: 'absolute',
2567    placement: placement
2568  });
2569  var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__["default"])(Object.assign({}, popperRect, popperOffsets));
2570  var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
2571  // 0 or negative = within the clipping rect
2572
2573  var overflowOffsets = {
2574    top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
2575    bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
2576    left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
2577    right: elementClientRect.right - clippingClientRect.right + paddingObject.right
2578  };
2579  var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
2580
2581  if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) {
2582    var offset = offsetData[placement];
2583    Object.keys(overflowOffsets).forEach(function (key) {
2584      var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 1 : -1;
2585      var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 'y' : 'x';
2586      overflowOffsets[key] += offset[axis] * multiply;
2587    });
2588  }
2589
2590  return overflowOffsets;
2591}
2592
2593/***/ }),
2594
vendor: 748 bytes, lines 2595-2613
2595/***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js":
2596/*!******************************************************************!*\
2597  !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***!
2598  \******************************************************************/
2599/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2600
2601__webpack_require__.r(__webpack_exports__);
2602/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2603/* harmony export */   "default": function() { return /* binding */ expandToHashMap; }
2604/* harmony export */ });
2605function expandToHashMap(value, keys) {
2606  return keys.reduce(function (hashMap, key) {
2607    hashMap[key] = value;
2608    return hashMap;
2609  }, {});
2610}
2611
2612/***/ }),
2613
vendor: 643 bytes, lines 2614-2629
2614/***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js":
2615/*!*************************************************************!*\
2616  !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***!
2617  \*************************************************************/
2618/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2619
2620__webpack_require__.r(__webpack_exports__);
2621/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2622/* harmony export */   "default": function() { return /* binding */ getAltAxis; }
2623/* harmony export */ });
2624function getAltAxis(axis) {
2625  return axis === 'x' ? 'y' : 'x';
2626}
2627
2628/***/ }),
2629
vendor: 684 bytes, lines 2630-2646
2630/***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js":
2631/*!*******************************************************************!*\
2632  !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***!
2633  \*******************************************************************/
2634/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2635
2636__webpack_require__.r(__webpack_exports__);
2637/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2638/* harmony export */   "default": function() { return /* binding */ getBasePlacement; }
2639/* harmony export */ });
2640
2641function getBasePlacement(placement) {
2642  return placement.split('-')[0];
2643}
2644
2645/***/ }),
2646
vendor: 721 bytes, lines 2647-2667
2647/***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js":
2648/*!*********************************************************************!*\
2649  !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***!
2650  \*********************************************************************/
2651/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2652
2653__webpack_require__.r(__webpack_exports__);
2654/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2655/* harmony export */   "default": function() { return /* binding */ getFreshSideObject; }
2656/* harmony export */ });
2657function getFreshSideObject() {
2658  return {
2659    top: 0,
2660    right: 0,
2661    bottom: 0,
2662    left: 0
2663  };
2664}
2665
2666/***/ }),
2667
vendor: 761 bytes, lines 2668-2683
2668/***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js":
2669/*!***************************************************************************!*\
2670  !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***!
2671  \***************************************************************************/
2672/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2673
2674__webpack_require__.r(__webpack_exports__);
2675/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2676/* harmony export */   "default": function() { return /* binding */ getMainAxisFromPlacement; }
2677/* harmony export */ });
2678function getMainAxisFromPlacement(placement) {
2679  return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
2680}
2681
2682/***/ }),
2683
vendor: 862 bytes, lines 2684-2707
2684/***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js":
2685/*!***********************************************************************!*\
2686  !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***!
2687  \***********************************************************************/
2688/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2689
2690__webpack_require__.r(__webpack_exports__);
2691/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2692/* harmony export */   "default": function() { return /* binding */ getOppositePlacement; }
2693/* harmony export */ });
2694var hash = {
2695  left: 'right',
2696  right: 'left',
2697  bottom: 'top',
2698  top: 'bottom'
2699};
2700function getOppositePlacement(placement) {
2701  return placement.replace(/left|right|bottom|top/g, function (matched) {
2702    return hash[matched];
2703  });
2704}
2705
2706/***/ }),
2707
vendor: 868 bytes, lines 2708-2729
2708/***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js":
2709/*!********************************************************************************!*\
2710  !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***!
2711  \********************************************************************************/
2712/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2713
2714__webpack_require__.r(__webpack_exports__);
2715/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2716/* harmony export */   "default": function() { return /* binding */ getOppositeVariationPlacement; }
2717/* harmony export */ });
2718var hash = {
2719  start: 'end',
2720  end: 'start'
2721};
2722function getOppositeVariationPlacement(placement) {
2723  return placement.replace(/start|end/g, function (matched) {
2724    return hash[matched];
2725  });
2726}
2727
2728/***/ }),
2729
vendor: 659 bytes, lines 2730-2745
2730/***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js":
2731/*!***************************************************************!*\
2732  !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***!
2733  \***************************************************************/
2734/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2735
2736__webpack_require__.r(__webpack_exports__);
2737/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2738/* harmony export */   "default": function() { return /* binding */ getVariation; }
2739/* harmony export */ });
2740function getVariation(placement) {
2741  return placement.split('-')[1];
2742}
2743
2744/***/ }),
2745
vendor: 749 bytes, lines 2746-2763
2746/***/ "./node_modules/@popperjs/core/lib/utils/math.js":
2747/*!*******************************************************!*\
2748  !*** ./node_modules/@popperjs/core/lib/utils/math.js ***!
2749  \*******************************************************/
2750/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2751
2752__webpack_require__.r(__webpack_exports__);
2753/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2754/* harmony export */   max: function() { return /* binding */ max; },
2755/* harmony export */   min: function() { return /* binding */ min; },
2756/* harmony export */   round: function() { return /* binding */ round; }
2757/* harmony export */ });
2758var max = Math.max;
2759var min = Math.min;
2760var round = Math.round;
2761
2762/***/ }),
2763
vendor: 1,093 bytes, lines 2764-2790
2764/***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js":
2765/*!**************************************************************!*\
2766  !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***!
2767  \**************************************************************/
2768/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2769
2770__webpack_require__.r(__webpack_exports__);
2771/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2772/* harmony export */   "default": function() { return /* binding */ mergeByName; }
2773/* harmony export */ });
2774function mergeByName(modifiers) {
2775  var merged = modifiers.reduce(function (merged, current) {
2776    var existing = merged[current.name];
2777    merged[current.name] = existing ? Object.assign({}, existing, current, {
2778      options: Object.assign({}, existing.options, current.options),
2779      data: Object.assign({}, existing.data, current.data)
2780    }) : current;
2781    return merged;
2782  }, {}); // IE11 does not support Object.values
2783
2784  return Object.keys(merged).map(function (key) {
2785    return merged[key];
2786  });
2787}
2788
2789/***/ }),
2790
vendor: 975 bytes, lines 2791-2808
2791/***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js":
2792/*!*********************************************************************!*\
2793  !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***!
2794  \*********************************************************************/
2795/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2796
2797__webpack_require__.r(__webpack_exports__);
2798/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2799/* harmony export */   "default": function() { return /* binding */ mergePaddingObject; }
2800/* harmony export */ });
2801/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js");
2802
2803function mergePaddingObject(paddingObject) {
2804  return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), paddingObject);
2805}
2806
2807/***/ }),
2808
vendor: 1,970 bytes, lines 2809-2866
2809/***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js":
2810/*!*****************************************************************!*\
2811  !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***!
2812  \*****************************************************************/
2813/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2814
2815__webpack_require__.r(__webpack_exports__);
2816/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2817/* harmony export */   "default": function() { return /* binding */ orderModifiers; }
2818/* harmony export */ });
2819/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
2820 // source: https://stackoverflow.com/questions/49875255
2821
2822function order(modifiers) {
2823  var map = new Map();
2824  var visited = new Set();
2825  var result = [];
2826  modifiers.forEach(function (modifier) {
2827    map.set(modifier.name, modifier);
2828  }); // On visiting object, check for its dependencies and visit them recursively
2829
2830  function sort(modifier) {
2831    visited.add(modifier.name);
2832    var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
2833    requires.forEach(function (dep) {
2834      if (!visited.has(dep)) {
2835        var depModifier = map.get(dep);
2836
2837        if (depModifier) {
2838          sort(depModifier);
2839        }
2840      }
2841    });
2842    result.push(modifier);
2843  }
2844
2845  modifiers.forEach(function (modifier) {
2846    if (!visited.has(modifier.name)) {
2847      // check for visited object
2848      sort(modifier);
2849    }
2850  });
2851  return result;
2852}
2853
2854function orderModifiers(modifiers) {
2855  // order based on dependencies
2856  var orderedModifiers = order(modifiers); // order based on phase
2857
2858  return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) {
2859    return acc.concat(orderedModifiers.filter(function (modifier) {
2860      return modifier.phase === phase;
2861    }));
2862  }, []);
2863}
2864
2865/***/ }),
2866
vendor: 785 bytes, lines 2867-2887
2867/***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js":
2868/*!*******************************************************************!*\
2869  !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***!
2870  \*******************************************************************/
2871/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2872
2873__webpack_require__.r(__webpack_exports__);
2874/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2875/* harmony export */   "default": function() { return /* binding */ rectToClientRect; }
2876/* harmony export */ });
2877function rectToClientRect(rect) {
2878  return Object.assign({}, rect, {
2879    left: rect.x,
2880    top: rect.y,
2881    right: rect.x + rect.width,
2882    bottom: rect.y + rect.height
2883  });
2884}
2885
2886/***/ }),
2887
vendor: 862 bytes, lines 2888-2911
2888/***/ "./node_modules/@popperjs/core/lib/utils/userAgent.js":
2889/*!************************************************************!*\
2890  !*** ./node_modules/@popperjs/core/lib/utils/userAgent.js ***!
2891  \************************************************************/
2892/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2893
2894__webpack_require__.r(__webpack_exports__);
2895/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2896/* harmony export */   "default": function() { return /* binding */ getUAString; }
2897/* harmony export */ });
2898function getUAString() {
2899  var uaData = navigator.userAgentData;
2900
2901  if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
2902    return uaData.brands.map(function (item) {
2903      return item.brand + "/" + item.version;
2904    }).join(' ');
2905  }
2906
2907  return navigator.userAgent;
2908}
2909
2910/***/ }),
2911
vendor: 1,067 bytes, lines 2912-2934
2912/***/ "./node_modules/@popperjs/core/lib/utils/within.js":
2913/*!*********************************************************!*\
2914  !*** ./node_modules/@popperjs/core/lib/utils/within.js ***!
2915  \*********************************************************/
2916/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2917
2918__webpack_require__.r(__webpack_exports__);
2919/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2920/* harmony export */   within: function() { return /* binding */ within; },
2921/* harmony export */   withinMaxClamp: function() { return /* binding */ withinMaxClamp; }
2922/* harmony export */ });
2923/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
2924
2925function within(min, value, max) {
2926  return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max));
2927}
2928function withinMaxClamp(min, value, max) {
2929  var v = within(min, value, max);
2930  return v > max ? max : v;
2931}
2932
2933/***/ }),
2934
vendor: 103,191 bytes, lines 2935-6699
2935/***/ "./node_modules/@splidejs/splide/dist/js/splide.esm.js":
2936/*!*************************************************************!*\
2937  !*** ./node_modules/@splidejs/splide/dist/js/splide.esm.js ***!
2938  \*************************************************************/
2939/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2940
2941__webpack_require__.r(__webpack_exports__);
2942/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2943/* harmony export */   CLASSES: function() { return /* binding */ CLASSES; },
2944/* harmony export */   CLASS_ACTIVE: function() { return /* binding */ CLASS_ACTIVE; },
2945/* harmony export */   CLASS_ARROW: function() { return /* binding */ CLASS_ARROW; },
2946/* harmony export */   CLASS_ARROWS: function() { return /* binding */ CLASS_ARROWS; },
2947/* harmony export */   CLASS_ARROW_NEXT: function() { return /* binding */ CLASS_ARROW_NEXT; },
2948/* harmony export */   CLASS_ARROW_PREV: function() { return /* binding */ CLASS_ARROW_PREV; },
2949/* harmony export */   CLASS_CLONE: function() { return /* binding */ CLASS_CLONE; },
2950/* harmony export */   CLASS_CONTAINER: function() { return /* binding */ CLASS_CONTAINER; },
2951/* harmony export */   CLASS_FOCUS_IN: function() { return /* binding */ CLASS_FOCUS_IN; },
2952/* harmony export */   CLASS_INITIALIZED: function() { return /* binding */ CLASS_INITIALIZED; },
2953/* harmony export */   CLASS_LIST: function() { return /* binding */ CLASS_LIST; },
2954/* harmony export */   CLASS_LOADING: function() { return /* binding */ CLASS_LOADING; },
2955/* harmony export */   CLASS_NEXT: function() { return /* binding */ CLASS_NEXT; },
2956/* harmony export */   CLASS_OVERFLOW: function() { return /* binding */ CLASS_OVERFLOW; },
2957/* harmony export */   CLASS_PAGINATION: function() { return /* binding */ CLASS_PAGINATION; },
2958/* harmony export */   CLASS_PAGINATION_PAGE: function() { return /* binding */ CLASS_PAGINATION_PAGE; },
2959/* harmony export */   CLASS_PREV: function() { return /* binding */ CLASS_PREV; },
2960/* harmony export */   CLASS_PROGRESS: function() { return /* binding */ CLASS_PROGRESS; },
2961/* harmony export */   CLASS_PROGRESS_BAR: function() { return /* binding */ CLASS_PROGRESS_BAR; },
2962/* harmony export */   CLASS_ROOT: function() { return /* binding */ CLASS_ROOT; },
2963/* harmony export */   CLASS_SLIDE: function() { return /* binding */ CLASS_SLIDE; },
2964/* harmony export */   CLASS_SPINNER: function() { return /* binding */ CLASS_SPINNER; },
2965/* harmony export */   CLASS_SR: function() { return /* binding */ CLASS_SR; },
2966/* harmony export */   CLASS_TOGGLE: function() { return /* binding */ CLASS_TOGGLE; },
2967/* harmony export */   CLASS_TOGGLE_PAUSE: function() { return /* binding */ CLASS_TOGGLE_PAUSE; },
2968/* harmony export */   CLASS_TOGGLE_PLAY: function() { return /* binding */ CLASS_TOGGLE_PLAY; },
2969/* harmony export */   CLASS_TRACK: function() { return /* binding */ CLASS_TRACK; },
2970/* harmony export */   CLASS_VISIBLE: function() { return /* binding */ CLASS_VISIBLE; },
2971/* harmony export */   DEFAULTS: function() { return /* binding */ DEFAULTS; },
2972/* harmony export */   EVENT_ACTIVE: function() { return /* binding */ EVENT_ACTIVE; },
2973/* harmony export */   EVENT_ARROWS_MOUNTED: function() { return /* binding */ EVENT_ARROWS_MOUNTED; },
2974/* harmony export */   EVENT_ARROWS_UPDATED: function() { return /* binding */ EVENT_ARROWS_UPDATED; },
2975/* harmony export */   EVENT_AUTOPLAY_PAUSE: function() { return /* binding */ EVENT_AUTOPLAY_PAUSE; },
2976/* harmony export */   EVENT_AUTOPLAY_PLAY: function() { return /* binding */ EVENT_AUTOPLAY_PLAY; },
2977/* harmony export */   EVENT_AUTOPLAY_PLAYING: function() { return /* binding */ EVENT_AUTOPLAY_PLAYING; },
2978/* harmony export */   EVENT_CLICK: function() { return /* binding */ EVENT_CLICK; },
2979/* harmony export */   EVENT_DESTROY: function() { return /* binding */ EVENT_DESTROY; },
2980/* harmony export */   EVENT_DRAG: function() { return /* binding */ EVENT_DRAG; },
2981/* harmony export */   EVENT_DRAGGED: function() { return /* binding */ EVENT_DRAGGED; },
2982/* harmony export */   EVENT_DRAGGING: function() { return /* binding */ EVENT_DRAGGING; },
2983/* harmony export */   EVENT_END_INDEX_CHANGED: function() { return /* binding */ EVENT_END_INDEX_CHANGED; },
2984/* harmony export */   EVENT_HIDDEN: function() { return /* binding */ EVENT_HIDDEN; },
2985/* harmony export */   EVENT_INACTIVE: function() { return /* binding */ EVENT_INACTIVE; },
2986/* harmony export */   EVENT_LAZYLOAD_LOADED: function() { return /* binding */ EVENT_LAZYLOAD_LOADED; },
2987/* harmony export */   EVENT_MOUNTED: function() { return /* binding */ EVENT_MOUNTED; },
2988/* harmony export */   EVENT_MOVE: function() { return /* binding */ EVENT_MOVE; },
2989/* harmony export */   EVENT_MOVED: function() { return /* binding */ EVENT_MOVED; },
2990/* harmony export */   EVENT_NAVIGATION_MOUNTED: function() { return /* binding */ EVENT_NAVIGATION_MOUNTED; },
2991/* harmony export */   EVENT_OVERFLOW: function() { return /* binding */ EVENT_OVERFLOW; },
2992/* harmony export */   EVENT_PAGINATION_MOUNTED: function() { return /* binding */ EVENT_PAGINATION_MOUNTED; },
2993/* harmony export */   EVENT_PAGINATION_UPDATED: function() { return /* binding */ EVENT_PAGINATION_UPDATED; },
2994/* harmony export */   EVENT_READY: function() { return /* binding */ EVENT_READY; },
2995/* harmony export */   EVENT_REFRESH: function() { return /* binding */ EVENT_REFRESH; },
2996/* harmony export */   EVENT_RESIZE: function() { return /* binding */ EVENT_RESIZE; },
2997/* harmony export */   EVENT_RESIZED: function() { return /* binding */ EVENT_RESIZED; },
2998/* harmony export */   EVENT_SCROLL: function() { return /* binding */ EVENT_SCROLL; },
2999/* harmony export */   EVENT_SCROLLED: function() { return /* binding */ EVENT_SCROLLED; },
3000/* harmony export */   EVENT_SHIFTED: function() { return /* binding */ EVENT_SHIFTED; },
3001/* harmony export */   EVENT_SLIDE_KEYDOWN: function() { return /* binding */ EVENT_SLIDE_KEYDOWN; },
3002/* harmony export */   EVENT_UPDATED: function() { return /* binding */ EVENT_UPDATED; },
3003/* harmony export */   EVENT_VISIBLE: function() { return /* binding */ EVENT_VISIBLE; },
3004/* harmony export */   EventBinder: function() { return /* binding */ EventBinder; },
3005/* harmony export */   EventInterface: function() { return /* binding */ EventInterface; },
3006/* harmony export */   FADE: function() { return /* binding */ FADE; },
3007/* harmony export */   LOOP: function() { return /* binding */ LOOP; },
3008/* harmony export */   LTR: function() { return /* binding */ LTR; },
3009/* harmony export */   RTL: function() { return /* binding */ RTL; },
3010/* harmony export */   RequestInterval: function() { return /* binding */ RequestInterval; },
3011/* harmony export */   SLIDE: function() { return /* binding */ SLIDE; },
3012/* harmony export */   STATUS_CLASSES: function() { return /* binding */ STATUS_CLASSES; },
3013/* harmony export */   Splide: function() { return /* binding */ Splide; },
3014/* harmony export */   SplideRenderer: function() { return /* binding */ SplideRenderer; },
3015/* harmony export */   State: function() { return /* binding */ State; },
3016/* harmony export */   TTB: function() { return /* binding */ TTB; },
3017/* harmony export */   Throttle: function() { return /* binding */ Throttle; },
3018/* harmony export */   "default": function() { return /* binding */ Splide; }
3019/* harmony export */ });
3020function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
3021
3022function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
3023
3024/*!
3025 * Splide.js
3026 * Version  : 4.1.4
3027 * License  : MIT
3028 * Copyright: 2022 Naotoshi Fujita
3029 */
3030var MEDIA_PREFERS_REDUCED_MOTION = "(prefers-reduced-motion: reduce)";
3031var CREATED = 1;
3032var MOUNTED = 2;
3033var IDLE = 3;
3034var MOVING = 4;
3035var SCROLLING = 5;
3036var DRAGGING = 6;
3037var DESTROYED = 7;
3038var STATES = {
3039  CREATED: CREATED,
3040  MOUNTED: MOUNTED,
3041  IDLE: IDLE,
3042  MOVING: MOVING,
3043  SCROLLING: SCROLLING,
3044  DRAGGING: DRAGGING,
3045  DESTROYED: DESTROYED
3046};
3047
3048function empty(array) {
3049  array.length = 0;
3050}
3051
3052function slice(arrayLike, start, end) {
3053  return Array.prototype.slice.call(arrayLike, start, end);
3054}
3055
3056function apply(func) {
3057  return func.bind.apply(func, [null].concat(slice(arguments, 1)));
3058}
3059
3060var nextTick = setTimeout;
3061
3062var noop = function noop() {};
3063
3064function raf(func) {
3065  return requestAnimationFrame(func);
3066}
3067
3068function typeOf(type, subject) {
3069  return typeof subject === type;
3070}
3071
3072function isObject(subject) {
3073  return !isNull(subject) && typeOf("object", subject);
3074}
3075
3076var isArray = Array.isArray;
3077var isFunction = apply(typeOf, "function");
3078var isString = apply(typeOf, "string");
3079var isUndefined = apply(typeOf, "undefined");
3080
3081function isNull(subject) {
3082  return subject === null;
3083}
3084
3085function isHTMLElement(subject) {
3086  try {
3087    return subject instanceof (subject.ownerDocument.defaultView || window).HTMLElement;
3088  } catch (e) {
3089    return false;
3090  }
3091}
3092
3093function toArray(value) {
3094  return isArray(value) ? value : [value];
3095}
3096
3097function forEach(values, iteratee) {
3098  toArray(values).forEach(iteratee);
3099}
3100
3101function includes(array, value) {
3102  return array.indexOf(value) > -1;
3103}
3104
3105function push(array, items) {
3106  array.push.apply(array, toArray(items));
3107  return array;
3108}
3109
3110function toggleClass(elm, classes, add) {
3111  if (elm) {
3112    forEach(classes, function (name) {
3113      if (name) {
3114        elm.classList[add ? "add" : "remove"](name);
3115      }
3116    });
3117  }
3118}
3119
3120function addClass(elm, classes) {
3121  toggleClass(elm, isString(classes) ? classes.split(" ") : classes, true);
3122}
3123
3124function append(parent, children) {
3125  forEach(children, parent.appendChild.bind(parent));
3126}
3127
3128function before(nodes, ref) {
3129  forEach(nodes, function (node) {
3130    var parent = (ref || node).parentNode;
3131
3132    if (parent) {
3133      parent.insertBefore(node, ref);
3134    }
3135  });
3136}
3137
3138function matches(elm, selector) {
3139  return isHTMLElement(elm) && (elm["msMatchesSelector"] || elm.matches).call(elm, selector);
3140}
3141
3142function children(parent, selector) {
3143  var children2 = parent ? slice(parent.children) : [];
3144  return selector ? children2.filter(function (child) {
3145    return matches(child, selector);
3146  }) : children2;
3147}
3148
3149function child(parent, selector) {
3150  return selector ? children(parent, selector)[0] : parent.firstElementChild;
3151}
3152
3153var ownKeys = Object.keys;
3154
3155function forOwn(object, iteratee, right) {
3156  if (object) {
3157    (right ? ownKeys(object).reverse() : ownKeys(object)).forEach(function (key) {
3158      key !== "__proto__" && iteratee(object[key], key);
3159    });
3160  }
3161
3162  return object;
3163}
3164
3165function assign(object) {
3166  slice(arguments, 1).forEach(function (source) {
3167    forOwn(source, function (value, key) {
3168      object[key] = source[key];
3169    });
3170  });
3171  return object;
3172}
3173
3174function merge(object) {
3175  slice(arguments, 1).forEach(function (source) {
3176    forOwn(source, function (value, key) {
3177      if (isArray(value)) {
3178        object[key] = value.slice();
3179      } else if (isObject(value)) {
3180        object[key] = merge({}, isObject(object[key]) ? object[key] : {}, value);
3181      } else {
3182        object[key] = value;
3183      }
3184    });
3185  });
3186  return object;
3187}
3188
3189function omit(object, keys) {
3190  forEach(keys || ownKeys(object), function (key) {
3191    delete object[key];
3192  });
3193}
3194
3195function removeAttribute(elms, attrs) {
3196  forEach(elms, function (elm) {
3197    forEach(attrs, function (attr) {
3198      elm && elm.removeAttribute(attr);
3199    });
3200  });
3201}
3202
3203function setAttribute(elms, attrs, value) {
3204  if (isObject(attrs)) {
3205    forOwn(attrs, function (value2, name) {
3206      setAttribute(elms, name, value2);
3207    });
3208  } else {
3209    forEach(elms, function (elm) {
3210      isNull(value) || value === "" ? removeAttribute(elm, attrs) : elm.setAttribute(attrs, String(value));
3211    });
3212  }
3213}
3214
3215function create(tag, attrs, parent) {
3216  var elm = document.createElement(tag);
3217
3218  if (attrs) {
3219    isString(attrs) ? addClass(elm, attrs) : setAttribute(elm, attrs);
3220  }
3221
3222  parent && append(parent, elm);
3223  return elm;
3224}
3225
3226function style(elm, prop, value) {
3227  if (isUndefined(value)) {
3228    return getComputedStyle(elm)[prop];
3229  }
3230
3231  if (!isNull(value)) {
3232    elm.style[prop] = "" + value;
3233  }
3234}
3235
3236function display(elm, display2) {
3237  style(elm, "display", display2);
3238}
3239
3240function focus(elm) {
3241  elm["setActive"] && elm["setActive"]() || elm.focus({
3242    preventScroll: true
3243  });
3244}
3245
3246function getAttribute(elm, attr) {
3247  return elm.getAttribute(attr);
3248}
3249
3250function hasClass(elm, className) {
3251  return elm && elm.classList.contains(className);
3252}
3253
3254function rect(target) {
3255  return target.getBoundingClientRect();
3256}
3257
3258function remove(nodes) {
3259  forEach(nodes, function (node) {
3260    if (node && node.parentNode) {
3261      node.parentNode.removeChild(node);
3262    }
3263  });
3264}
3265
3266function parseHtml(html) {
3267  return child(new DOMParser().parseFromString(html, "text/html").body);
3268}
3269
3270function prevent(e, stopPropagation) {
3271  e.preventDefault();
3272
3273  if (stopPropagation) {
3274    e.stopPropagation();
3275    e.stopImmediatePropagation();
3276  }
3277}
3278
3279function query(parent, selector) {
3280  return parent && parent.querySelector(selector);
3281}
3282
3283function queryAll(parent, selector) {
3284  return selector ? slice(parent.querySelectorAll(selector)) : [];
3285}
3286
3287function removeClass(elm, classes) {
3288  toggleClass(elm, classes, false);
3289}
3290
3291function timeOf(e) {
3292  return e.timeStamp;
3293}
3294
3295function unit(value) {
3296  return isString(value) ? value : value ? value + "px" : "";
3297}
3298
3299var PROJECT_CODE = "splide";
3300var DATA_ATTRIBUTE = "data-" + PROJECT_CODE;
3301
3302function assert(condition, message) {
3303  if (!condition) {
3304    throw new Error("[" + PROJECT_CODE + "] " + (message || ""));
3305  }
3306}
3307
3308var min = Math.min,
3309    max = Math.max,
3310    floor = Math.floor,
3311    ceil = Math.ceil,
3312    abs = Math.abs;
3313
3314function approximatelyEqual(x, y, epsilon) {
3315  return abs(x - y) < epsilon;
3316}
3317
3318function between(number, x, y, exclusive) {
3319  var minimum = min(x, y);
3320  var maximum = max(x, y);
3321  return exclusive ? minimum < number && number < maximum : minimum <= number && number <= maximum;
3322}
3323
3324function clamp(number, x, y) {
3325  var minimum = min(x, y);
3326  var maximum = max(x, y);
3327  return min(max(minimum, number), maximum);
3328}
3329
3330function sign(x) {
3331  return +(x > 0) - +(x < 0);
3332}
3333
3334function camelToKebab(string) {
3335  return string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
3336}
3337
3338function format(string, replacements) {
3339  forEach(replacements, function (replacement) {
3340    string = string.replace("%s", "" + replacement);
3341  });
3342  return string;
3343}
3344
3345function pad(number) {
3346  return number < 10 ? "0" + number : "" + number;
3347}
3348
3349var ids = {};
3350
3351function uniqueId(prefix) {
3352  return "" + prefix + pad(ids[prefix] = (ids[prefix] || 0) + 1);
3353}
3354
3355function EventBinder() {
3356  var listeners = [];
3357
3358  function bind(targets, events, callback, options) {
3359    forEachEvent(targets, events, function (target, event, namespace) {
3360      var isEventTarget = ("addEventListener" in target);
3361      var remover = isEventTarget ? target.removeEventListener.bind(target, event, callback, options) : target["removeListener"].bind(target, callback);
3362      isEventTarget ? target.addEventListener(event, callback, options) : target["addListener"](callback);
3363      listeners.push([target, event, namespace, callback, remover]);
3364    });
3365  }
3366
3367  function unbind(targets, events, callback) {
3368    forEachEvent(targets, events, function (target, event, namespace) {
3369      listeners = listeners.filter(function (listener) {
3370        if (listener[0] === target && listener[1] === event && listener[2] === namespace && (!callback || listener[3] === callback)) {
3371          listener[4]();
3372          return false;
3373        }
3374
3375        return true;
3376      });
3377    });
3378  }
3379
3380  function dispatch(target, type, detail) {
3381    var e;
3382    var bubbles = true;
3383
3384    if (typeof CustomEvent === "function") {
3385      e = new CustomEvent(type, {
3386        bubbles: bubbles,
3387        detail: detail
3388      });
3389    } else {
3390      e = document.createEvent("CustomEvent");
3391      e.initCustomEvent(type, bubbles, false, detail);
3392    }
3393
3394    target.dispatchEvent(e);
3395    return e;
3396  }
3397
3398  function forEachEvent(targets, events, iteratee) {
3399    forEach(targets, function (target) {
3400      target && forEach(events, function (events2) {
3401        events2.split(" ").forEach(function (eventNS) {
3402          var fragment = eventNS.split(".");
3403          iteratee(target, fragment[0], fragment[1]);
3404        });
3405      });
3406    });
3407  }
3408
3409  function destroy() {
3410    listeners.forEach(function (data) {
3411      data[4]();
3412    });
3413    empty(listeners);
3414  }
3415
3416  return {
3417    bind: bind,
3418    unbind: unbind,
3419    dispatch: dispatch,
3420    destroy: destroy
3421  };
3422}
3423
3424var EVENT_MOUNTED = "mounted";
3425var EVENT_READY = "ready";
3426var EVENT_MOVE = "move";
3427var EVENT_MOVED = "moved";
3428var EVENT_CLICK = "click";
3429var EVENT_ACTIVE = "active";
3430var EVENT_INACTIVE = "inactive";
3431var EVENT_VISIBLE = "visible";
3432var EVENT_HIDDEN = "hidden";
3433var EVENT_REFRESH = "refresh";
3434var EVENT_UPDATED = "updated";
3435var EVENT_RESIZE = "resize";
3436var EVENT_RESIZED = "resized";
3437var EVENT_DRAG = "drag";
3438var EVENT_DRAGGING = "dragging";
3439var EVENT_DRAGGED = "dragged";
3440var EVENT_SCROLL = "scroll";
3441var EVENT_SCROLLED = "scrolled";
3442var EVENT_OVERFLOW = "overflow";
3443var EVENT_DESTROY = "destroy";
3444var EVENT_ARROWS_MOUNTED = "arrows:mounted";
3445var EVENT_ARROWS_UPDATED = "arrows:updated";
3446var EVENT_PAGINATION_MOUNTED = "pagination:mounted";
3447var EVENT_PAGINATION_UPDATED = "pagination:updated";
3448var EVENT_NAVIGATION_MOUNTED = "navigation:mounted";
3449var EVENT_AUTOPLAY_PLAY = "autoplay:play";
3450var EVENT_AUTOPLAY_PLAYING = "autoplay:playing";
3451var EVENT_AUTOPLAY_PAUSE = "autoplay:pause";
3452var EVENT_LAZYLOAD_LOADED = "lazyload:loaded";
3453var EVENT_SLIDE_KEYDOWN = "sk";
3454var EVENT_SHIFTED = "sh";
3455var EVENT_END_INDEX_CHANGED = "ei";
3456
3457function EventInterface(Splide2) {
3458  var bus = Splide2 ? Splide2.event.bus : document.createDocumentFragment();
3459  var binder = EventBinder();
3460
3461  function on(events, callback) {
3462    binder.bind(bus, toArray(events).join(" "), function (e) {
3463      callback.apply(callback, isArray(e.detail) ? e.detail : []);
3464    });
3465  }
3466
3467  function emit(event) {
3468    binder.dispatch(bus, event, slice(arguments, 1));
3469  }
3470
3471  if (Splide2) {
3472    Splide2.event.on(EVENT_DESTROY, binder.destroy);
3473  }
3474
3475  return assign(binder, {
3476    bus: bus,
3477    on: on,
3478    off: apply(binder.unbind, bus),
3479    emit: emit
3480  });
3481}
3482
3483function RequestInterval(interval, onInterval, onUpdate, limit) {
3484  var now = Date.now;
3485  var startTime;
3486  var rate = 0;
3487  var id;
3488  var paused = true;
3489  var count = 0;
3490
3491  function update() {
3492    if (!paused) {
3493      rate = interval ? min((now() - startTime) / interval, 1) : 1;
3494      onUpdate && onUpdate(rate);
3495
3496      if (rate >= 1) {
3497        onInterval();
3498        startTime = now();
3499
3500        if (limit && ++count >= limit) {
3501          return pause();
3502        }
3503      }
3504
3505      id = raf(update);
3506    }
3507  }
3508
3509  function start(resume) {
3510    resume || cancel();
3511    startTime = now() - (resume ? rate * interval : 0);
3512    paused = false;
3513    id = raf(update);
3514  }
3515
3516  function pause() {
3517    paused = true;
3518  }
3519
3520  function rewind() {
3521    startTime = now();
3522    rate = 0;
3523
3524    if (onUpdate) {
3525      onUpdate(rate);
3526    }
3527  }
3528
3529  function cancel() {
3530    id && cancelAnimationFrame(id);
3531    rate = 0;
3532    id = 0;
3533    paused = true;
3534  }
3535
3536  function set(time) {
3537    interval = time;
3538  }
3539
3540  function isPaused() {
3541    return paused;
3542  }
3543
3544  return {
3545    start: start,
3546    rewind: rewind,
3547    pause: pause,
3548    cancel: cancel,
3549    set: set,
3550    isPaused: isPaused
3551  };
3552}
3553
3554function State(initialState) {
3555  var state = initialState;
3556
3557  function set(value) {
3558    state = value;
3559  }
3560
3561  function is(states) {
3562    return includes(toArray(states), state);
3563  }
3564
3565  return {
3566    set: set,
3567    is: is
3568  };
3569}
3570
3571function Throttle(func, duration) {
3572  var interval = RequestInterval(duration || 0, func, null, 1);
3573  return function () {
3574    interval.isPaused() && interval.start();
3575  };
3576}
3577
3578function Media(Splide2, Components2, options) {
3579  var state = Splide2.state;
3580  var breakpoints = options.breakpoints || {};
3581  var reducedMotion = options.reducedMotion || {};
3582  var binder = EventBinder();
3583  var queries = [];
3584
3585  function setup() {
3586    var isMin = options.mediaQuery === "min";
3587    ownKeys(breakpoints).sort(function (n, m) {
3588      return isMin ? +n - +m : +m - +n;
3589    }).forEach(function (key) {
3590      register(breakpoints[key], "(" + (isMin ? "min" : "max") + "-width:" + key + "px)");
3591    });
3592    register(reducedMotion, MEDIA_PREFERS_REDUCED_MOTION);
3593    update();
3594  }
3595
3596  function destroy(completely) {
3597    if (completely) {
3598      binder.destroy();
3599    }
3600  }
3601
3602  function register(options2, query) {
3603    var queryList = matchMedia(query);
3604    binder.bind(queryList, "change", update);
3605    queries.push([options2, queryList]);
3606  }
3607
3608  function update() {
3609    var destroyed = state.is(DESTROYED);
3610    var direction = options.direction;
3611    var merged = queries.reduce(function (merged2, entry) {
3612      return merge(merged2, entry[1].matches ? entry[0] : {});
3613    }, {});
3614    omit(options);
3615    set(merged);
3616
3617    if (options.destroy) {
3618      Splide2.destroy(options.destroy === "completely");
3619    } else if (destroyed) {
3620      destroy(true);
3621      Splide2.mount();
3622    } else {
3623      direction !== options.direction && Splide2.refresh();
3624    }
3625  }
3626
3627  function reduce(enable) {
3628    if (matchMedia(MEDIA_PREFERS_REDUCED_MOTION).matches) {
3629      enable ? merge(options, reducedMotion) : omit(options, ownKeys(reducedMotion));
3630    }
3631  }
3632
3633  function set(opts, base, notify) {
3634    merge(options, opts);
3635    base && merge(Object.getPrototypeOf(options), opts);
3636
3637    if (notify || !state.is(CREATED)) {
3638      Splide2.emit(EVENT_UPDATED, options);
3639    }
3640  }
3641
3642  return {
3643    setup: setup,
3644    destroy: destroy,
3645    reduce: reduce,
3646    set: set
3647  };
3648}
3649
3650var ARROW = "Arrow";
3651var ARROW_LEFT = ARROW + "Left";
3652var ARROW_RIGHT = ARROW + "Right";
3653var ARROW_UP = ARROW + "Up";
3654var ARROW_DOWN = ARROW + "Down";
3655var LTR = "ltr";
3656var RTL = "rtl";
3657var TTB = "ttb";
3658var ORIENTATION_MAP = {
3659  width: ["height"],
3660  left: ["top", "right"],
3661  right: ["bottom", "left"],
3662  x: ["y"],
3663  X: ["Y"],
3664  Y: ["X"],
3665  ArrowLeft: [ARROW_UP, ARROW_RIGHT],
3666  ArrowRight: [ARROW_DOWN, ARROW_LEFT]
3667};
3668
3669function Direction(Splide2, Components2, options) {
3670  function resolve(prop, axisOnly, direction) {
3671    direction = direction || options.direction;
3672    var index = direction === RTL && !axisOnly ? 1 : direction === TTB ? 0 : -1;
3673    return ORIENTATION_MAP[prop] && ORIENTATION_MAP[prop][index] || prop.replace(/width|left|right/i, function (match, offset) {
3674      var replacement = ORIENTATION_MAP[match.toLowerCase()][index] || match;
3675      return offset > 0 ? replacement.charAt(0).toUpperCase() + replacement.slice(1) : replacement;
3676    });
3677  }
3678
3679  function orient(value) {
3680    return value * (options.direction === RTL ? 1 : -1);
3681  }
3682
3683  return {
3684    resolve: resolve,
3685    orient: orient
3686  };
3687}
3688
3689var ROLE = "role";
3690var TAB_INDEX = "tabindex";
3691var DISABLED = "disabled";
3692var ARIA_PREFIX = "aria-";
3693var ARIA_CONTROLS = ARIA_PREFIX + "controls";
3694var ARIA_CURRENT = ARIA_PREFIX + "current";
3695var ARIA_SELECTED = ARIA_PREFIX + "selected";
3696var ARIA_LABEL = ARIA_PREFIX + "label";
3697var ARIA_LABELLEDBY = ARIA_PREFIX + "labelledby";
3698var ARIA_HIDDEN = ARIA_PREFIX + "hidden";
3699var ARIA_ORIENTATION = ARIA_PREFIX + "orientation";
3700var ARIA_ROLEDESCRIPTION = ARIA_PREFIX + "roledescription";
3701var ARIA_LIVE = ARIA_PREFIX + "live";
3702var ARIA_BUSY = ARIA_PREFIX + "busy";
3703var ARIA_ATOMIC = ARIA_PREFIX + "atomic";
3704var ALL_ATTRIBUTES = [ROLE, TAB_INDEX, DISABLED, ARIA_CONTROLS, ARIA_CURRENT, ARIA_LABEL, ARIA_LABELLEDBY, ARIA_HIDDEN, ARIA_ORIENTATION, ARIA_ROLEDESCRIPTION];
3705var CLASS_PREFIX = PROJECT_CODE + "__";
3706var STATUS_CLASS_PREFIX = "is-";
3707var CLASS_ROOT = PROJECT_CODE;
3708var CLASS_TRACK = CLASS_PREFIX + "track";
3709var CLASS_LIST = CLASS_PREFIX + "list";
3710var CLASS_SLIDE = CLASS_PREFIX + "slide";
3711var CLASS_CLONE = CLASS_SLIDE + "--clone";
3712var CLASS_CONTAINER = CLASS_SLIDE + "__container";
3713var CLASS_ARROWS = CLASS_PREFIX + "arrows";
3714var CLASS_ARROW = CLASS_PREFIX + "arrow";
3715var CLASS_ARROW_PREV = CLASS_ARROW + "--prev";
3716var CLASS_ARROW_NEXT = CLASS_ARROW + "--next";
3717var CLASS_PAGINATION = CLASS_PREFIX + "pagination";
3718var CLASS_PAGINATION_PAGE = CLASS_PAGINATION + "__page";
3719var CLASS_PROGRESS = CLASS_PREFIX + "progress";
3720var CLASS_PROGRESS_BAR = CLASS_PROGRESS + "__bar";
3721var CLASS_TOGGLE = CLASS_PREFIX + "toggle";
3722var CLASS_TOGGLE_PLAY = CLASS_TOGGLE + "__play";
3723var CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + "__pause";
3724var CLASS_SPINNER = CLASS_PREFIX + "spinner";
3725var CLASS_SR = CLASS_PREFIX + "sr";
3726var CLASS_INITIALIZED = STATUS_CLASS_PREFIX + "initialized";
3727var CLASS_ACTIVE = STATUS_CLASS_PREFIX + "active";
3728var CLASS_PREV = STATUS_CLASS_PREFIX + "prev";
3729var CLASS_NEXT = STATUS_CLASS_PREFIX + "next";
3730var CLASS_VISIBLE = STATUS_CLASS_PREFIX + "visible";
3731var CLASS_LOADING = STATUS_CLASS_PREFIX + "loading";
3732var CLASS_FOCUS_IN = STATUS_CLASS_PREFIX + "focus-in";
3733var CLASS_OVERFLOW = STATUS_CLASS_PREFIX + "overflow";
3734var STATUS_CLASSES = [CLASS_ACTIVE, CLASS_VISIBLE, CLASS_PREV, CLASS_NEXT, CLASS_LOADING, CLASS_FOCUS_IN, CLASS_OVERFLOW];
3735var CLASSES = {
3736  slide: CLASS_SLIDE,
3737  clone: CLASS_CLONE,
3738  arrows: CLASS_ARROWS,
3739  arrow: CLASS_ARROW,
3740  prev: CLASS_ARROW_PREV,
3741  next: CLASS_ARROW_NEXT,
3742  pagination: CLASS_PAGINATION,
3743  page: CLASS_PAGINATION_PAGE,
3744  spinner: CLASS_SPINNER
3745};
3746
3747function closest(from, selector) {
3748  if (isFunction(from.closest)) {
3749    return from.closest(selector);
3750  }
3751
3752  var elm = from;
3753
3754  while (elm && elm.nodeType === 1) {
3755    if (matches(elm, selector)) {
3756      break;
3757    }
3758
3759    elm = elm.parentElement;
3760  }
3761
3762  return elm;
3763}
3764
3765var FRICTION = 5;
3766var LOG_INTERVAL = 200;
3767var POINTER_DOWN_EVENTS = "touchstart mousedown";
3768var POINTER_MOVE_EVENTS = "touchmove mousemove";
3769var POINTER_UP_EVENTS = "touchend touchcancel mouseup click";
3770
3771function Elements(Splide2, Components2, options) {
3772  var _EventInterface = EventInterface(Splide2),
3773      on = _EventInterface.on,
3774      bind = _EventInterface.bind;
3775
3776  var root = Splide2.root;
3777  var i18n = options.i18n;
3778  var elements = {};
3779  var slides = [];
3780  var rootClasses = [];
3781  var trackClasses = [];
3782  var track;
3783  var list;
3784  var isUsingKey;
3785
3786  function setup() {
3787    collect();
3788    init();
3789    update();
3790  }
3791
3792  function mount() {
3793    on(EVENT_REFRESH, destroy);
3794    on(EVENT_REFRESH, setup);
3795    on(EVENT_UPDATED, update);
3796    bind(document, POINTER_DOWN_EVENTS + " keydown", function (e) {
3797      isUsingKey = e.type === "keydown";
3798    }, {
3799      capture: true
3800    });
3801    bind(root, "focusin", function () {
3802      toggleClass(root, CLASS_FOCUS_IN, !!isUsingKey);
3803    });
3804  }
3805
3806  function destroy(completely) {
3807    var attrs = ALL_ATTRIBUTES.concat("style");
3808    empty(slides);
3809    removeClass(root, rootClasses);
3810    removeClass(track, trackClasses);
3811    removeAttribute([track, list], attrs);
3812    removeAttribute(root, completely ? attrs : ["style", ARIA_ROLEDESCRIPTION]);
3813  }
3814
3815  function update() {
3816    removeClass(root, rootClasses);
3817    removeClass(track, trackClasses);
3818    rootClasses = getClasses(CLASS_ROOT);
3819    trackClasses = getClasses(CLASS_TRACK);
3820    addClass(root, rootClasses);
3821    addClass(track, trackClasses);
3822    setAttribute(root, ARIA_LABEL, options.label);
3823    setAttribute(root, ARIA_LABELLEDBY, options.labelledby);
3824  }
3825
3826  function collect() {
3827    track = find("." + CLASS_TRACK);
3828    list = child(track, "." + CLASS_LIST);
3829    assert(track && list, "A track/list element is missing.");
3830    push(slides, children(list, "." + CLASS_SLIDE + ":not(." + CLASS_CLONE + ")"));
3831    forOwn({
3832      arrows: CLASS_ARROWS,
3833      pagination: CLASS_PAGINATION,
3834      prev: CLASS_ARROW_PREV,
3835      next: CLASS_ARROW_NEXT,
3836      bar: CLASS_PROGRESS_BAR,
3837      toggle: CLASS_TOGGLE
3838    }, function (className, key) {
3839      elements[key] = find("." + className);
3840    });
3841    assign(elements, {
3842      root: root,
3843      track: track,
3844      list: list,
3845      slides: slides
3846    });
3847  }
3848
3849  function init() {
3850    var id = root.id || uniqueId(PROJECT_CODE);
3851    var role = options.role;
3852    root.id = id;
3853    track.id = track.id || id + "-track";
3854    list.id = list.id || id + "-list";
3855
3856    if (!getAttribute(root, ROLE) && root.tagName !== "SECTION" && role) {
3857      setAttribute(root, ROLE, role);
3858    }
3859
3860    setAttribute(root, ARIA_ROLEDESCRIPTION, i18n.carousel);
3861    setAttribute(list, ROLE, "presentation");
3862  }
3863
3864  function find(selector) {
3865    var elm = query(root, selector);
3866    return elm && closest(elm, "." + CLASS_ROOT) === root ? elm : void 0;
3867  }
3868
3869  function getClasses(base) {
3870    return [base + "--" + options.type, base + "--" + options.direction, options.drag && base + "--draggable", options.isNavigation && base + "--nav", base === CLASS_ROOT && CLASS_ACTIVE];
3871  }
3872
3873  return assign(elements, {
3874    setup: setup,
3875    mount: mount,
3876    destroy: destroy
3877  });
3878}
3879
3880var SLIDE = "slide";
3881var LOOP = "loop";
3882var FADE = "fade";
3883
3884function Slide$1(Splide2, index, slideIndex, slide) {
3885  var event = EventInterface(Splide2);
3886  var on = event.on,
3887      emit = event.emit,
3888      bind = event.bind;
3889  var Components = Splide2.Components,
3890      root = Splide2.root,
3891      options = Splide2.options;
3892  var isNavigation = options.isNavigation,
3893      updateOnMove = options.updateOnMove,
3894      i18n = options.i18n,
3895      pagination = options.pagination,
3896      slideFocus = options.slideFocus;
3897  var resolve = Components.Direction.resolve;
3898  var styles = getAttribute(slide, "style");
3899  var label = getAttribute(slide, ARIA_LABEL);
3900  var isClone = slideIndex > -1;
3901  var container = child(slide, "." + CLASS_CONTAINER);
3902  var destroyed;
3903
3904  function mount() {
3905    if (!isClone) {
3906      slide.id = root.id + "-slide" + pad(index + 1);
3907      setAttribute(slide, ROLE, pagination ? "tabpanel" : "group");
3908      setAttribute(slide, ARIA_ROLEDESCRIPTION, i18n.slide);
3909      setAttribute(slide, ARIA_LABEL, label || format(i18n.slideLabel, [index + 1, Splide2.length]));
3910    }
3911
3912    listen();
3913  }
3914
3915  function listen() {
3916    bind(slide, "click", apply(emit, EVENT_CLICK, self));
3917    bind(slide, "keydown", apply(emit, EVENT_SLIDE_KEYDOWN, self));
3918    on([EVENT_MOVED, EVENT_SHIFTED, EVENT_SCROLLED], update);
3919    on(EVENT_NAVIGATION_MOUNTED, initNavigation);
3920
3921    if (updateOnMove) {
3922      on(EVENT_MOVE, onMove);
3923    }
3924  }
3925
3926  function destroy() {
3927    destroyed = true;
3928    event.destroy();
3929    removeClass(slide, STATUS_CLASSES);
3930    removeAttribute(slide, ALL_ATTRIBUTES);
3931    setAttribute(slide, "style", styles);
3932    setAttribute(slide, ARIA_LABEL, label || "");
3933  }
3934
3935  function initNavigation() {
3936    var controls = Splide2.splides.map(function (target) {
3937      var Slide2 = target.splide.Components.Slides.getAt(index);
3938      return Slide2 ? Slide2.slide.id : "";
3939    }).join(" ");
3940    setAttribute(slide, ARIA_LABEL, format(i18n.slideX, (isClone ? slideIndex : index) + 1));
3941    setAttribute(slide, ARIA_CONTROLS, controls);
3942    setAttribute(slide, ROLE, slideFocus ? "button" : "");
3943    slideFocus && removeAttribute(slide, ARIA_ROLEDESCRIPTION);
3944  }
3945
3946  function onMove() {
3947    if (!destroyed) {
3948      update();
3949    }
3950  }
3951
3952  function update() {
3953    if (!destroyed) {
3954      var curr = Splide2.index;
3955      updateActivity();
3956      updateVisibility();
3957      toggleClass(slide, CLASS_PREV, index === curr - 1);
3958      toggleClass(slide, CLASS_NEXT, index === curr + 1);
3959    }
3960  }
3961
3962  function updateActivity() {
3963    var active = isActive();
3964
3965    if (active !== hasClass(slide, CLASS_ACTIVE)) {
3966      toggleClass(slide, CLASS_ACTIVE, active);
3967      setAttribute(slide, ARIA_CURRENT, isNavigation && active || "");
3968      emit(active ? EVENT_ACTIVE : EVENT_INACTIVE, self);
3969    }
3970  }
3971
3972  function updateVisibility() {
3973    var visible = isVisible();
3974    var hidden = !visible && (!isActive() || isClone);
3975
3976    if (!Splide2.state.is([MOVING, SCROLLING])) {
3977      setAttribute(slide, ARIA_HIDDEN, hidden || "");
3978    }
3979
3980    setAttribute(queryAll(slide, options.focusableNodes || ""), TAB_INDEX, hidden ? -1 : "");
3981
3982    if (slideFocus) {
3983      setAttribute(slide, TAB_INDEX, hidden ? -1 : 0);
3984    }
3985
3986    if (visible !== hasClass(slide, CLASS_VISIBLE)) {
3987      toggleClass(slide, CLASS_VISIBLE, visible);
3988      emit(visible ? EVENT_VISIBLE : EVENT_HIDDEN, self);
3989    }
3990
3991    if (!visible && document.activeElement === slide) {
3992      var Slide2 = Components.Slides.getAt(Splide2.index);
3993      Slide2 && focus(Slide2.slide);
3994    }
3995  }
3996
3997  function style$1(prop, value, useContainer) {
3998    style(useContainer && container || slide, prop, value);
3999  }
4000
4001  function isActive() {
4002    var curr = Splide2.index;
4003    return curr === index || options.cloneStatus && curr === slideIndex;
4004  }
4005
4006  function isVisible() {
4007    if (Splide2.is(FADE)) {
4008      return isActive();
4009    }
4010
4011    var trackRect = rect(Components.Elements.track);
4012    var slideRect = rect(slide);
4013    var left = resolve("left", true);
4014    var right = resolve("right", true);
4015    return floor(trackRect[left]) <= ceil(slideRect[left]) && floor(slideRect[right]) <= ceil(trackRect[right]);
4016  }
4017
4018  function isWithin(from, distance) {
4019    var diff = abs(from - index);
4020
4021    if (!isClone && (options.rewind || Splide2.is(LOOP))) {
4022      diff = min(diff, Splide2.length - diff);
4023    }
4024
4025    return diff <= distance;
4026  }
4027
4028  var self = {
4029    index: index,
4030    slideIndex: slideIndex,
4031    slide: slide,
4032    container: container,
4033    isClone: isClone,
4034    mount: mount,
4035    destroy: destroy,
4036    update: update,
4037    style: style$1,
4038    isWithin: isWithin
4039  };
4040  return self;
4041}
4042
4043function Slides(Splide2, Components2, options) {
4044  var _EventInterface2 = EventInterface(Splide2),
4045      on = _EventInterface2.on,
4046      emit = _EventInterface2.emit,
4047      bind = _EventInterface2.bind;
4048
4049  var _Components2$Elements = Components2.Elements,
4050      slides = _Components2$Elements.slides,
4051      list = _Components2$Elements.list;
4052  var Slides2 = [];
4053
4054  function mount() {
4055    init();
4056    on(EVENT_REFRESH, destroy);
4057    on(EVENT_REFRESH, init);
4058  }
4059
4060  function init() {
4061    slides.forEach(function (slide, index) {
4062      register(slide, index, -1);
4063    });
4064  }
4065
4066  function destroy() {
4067    forEach$1(function (Slide2) {
4068      Slide2.destroy();
4069    });
4070    empty(Slides2);
4071  }
4072
4073  function update() {
4074    forEach$1(function (Slide2) {
4075      Slide2.update();
4076    });
4077  }
4078
4079  function register(slide, index, slideIndex) {
4080    var object = Slide$1(Splide2, index, slideIndex, slide);
4081    object.mount();
4082    Slides2.push(object);
4083    Slides2.sort(function (Slide1, Slide2) {
4084      return Slide1.index - Slide2.index;
4085    });
4086  }
4087
4088  function get(excludeClones) {
4089    return excludeClones ? filter(function (Slide2) {
4090      return !Slide2.isClone;
4091    }) : Slides2;
4092  }
4093
4094  function getIn(page) {
4095    var Controller = Components2.Controller;
4096    var index = Controller.toIndex(page);
4097    var max = Controller.hasFocus() ? 1 : options.perPage;
4098    return filter(function (Slide2) {
4099      return between(Slide2.index, index, index + max - 1);
4100    });
4101  }
4102
4103  function getAt(index) {
4104    return filter(index)[0];
4105  }
4106
4107  function add(items, index) {
4108    forEach(items, function (slide) {
4109      if (isString(slide)) {
4110        slide = parseHtml(slide);
4111      }
4112
4113      if (isHTMLElement(slide)) {
4114        var ref = slides[index];
4115        ref ? before(slide, ref) : append(list, slide);
4116        addClass(slide, options.classes.slide);
4117        observeImages(slide, apply(emit, EVENT_RESIZE));
4118      }
4119    });
4120    emit(EVENT_REFRESH);
4121  }
4122
4123  function remove$1(matcher) {
4124    remove(filter(matcher).map(function (Slide2) {
4125      return Slide2.slide;
4126    }));
4127    emit(EVENT_REFRESH);
4128  }
4129
4130  function forEach$1(iteratee, excludeClones) {
4131    get(excludeClones).forEach(iteratee);
4132  }
4133
4134  function filter(matcher) {
4135    return Slides2.filter(isFunction(matcher) ? matcher : function (Slide2) {
4136      return isString(matcher) ? matches(Slide2.slide, matcher) : includes(toArray(matcher), Slide2.index);
4137    });
4138  }
4139
4140  function style(prop, value, useContainer) {
4141    forEach$1(function (Slide2) {
4142      Slide2.style(prop, value, useContainer);
4143    });
4144  }
4145
4146  function observeImages(elm, callback) {
4147    var images = queryAll(elm, "img");
4148    var length = images.length;
4149
4150    if (length) {
4151      images.forEach(function (img) {
4152        bind(img, "load error", function () {
4153          if (! --length) {
4154            callback();
4155          }
4156        });
4157      });
4158    } else {
4159      callback();
4160    }
4161  }
4162
4163  function getLength(excludeClones) {
4164    return excludeClones ? slides.length : Slides2.length;
4165  }
4166
4167  function isEnough() {
4168    return Slides2.length > options.perPage;
4169  }
4170
4171  return {
4172    mount: mount,
4173    destroy: destroy,
4174    update: update,
4175    register: register,
4176    get: get,
4177    getIn: getIn,
4178    getAt: getAt,
4179    add: add,
4180    remove: remove$1,
4181    forEach: forEach$1,
4182    filter: filter,
4183    style: style,
4184    getLength: getLength,
4185    isEnough: isEnough
4186  };
4187}
4188
4189function Layout(Splide2, Components2, options) {
4190  var _EventInterface3 = EventInterface(Splide2),
4191      on = _EventInterface3.on,
4192      bind = _EventInterface3.bind,
4193      emit = _EventInterface3.emit;
4194
4195  var Slides = Components2.Slides;
4196  var resolve = Components2.Direction.resolve;
4197  var _Components2$Elements2 = Components2.Elements,
4198      root = _Components2$Elements2.root,
4199      track = _Components2$Elements2.track,
4200      list = _Components2$Elements2.list;
4201  var getAt = Slides.getAt,
4202      styleSlides = Slides.style;
4203  var vertical;
4204  var rootRect;
4205  var overflow;
4206
4207  function mount() {
4208    init();
4209    bind(window, "resize load", Throttle(apply(emit, EVENT_RESIZE)));
4210    on([EVENT_UPDATED, EVENT_REFRESH], init);
4211    on(EVENT_RESIZE, resize);
4212  }
4213
4214  function init() {
4215    vertical = options.direction === TTB;
4216    style(root, "maxWidth", unit(options.width));
4217    style(track, resolve("paddingLeft"), cssPadding(false));
4218    style(track, resolve("paddingRight"), cssPadding(true));
4219    resize(true);
4220  }
4221
4222  function resize(force) {
4223    var newRect = rect(root);
4224
4225    if (force || rootRect.width !== newRect.width || rootRect.height !== newRect.height) {
4226      style(track, "height", cssTrackHeight());
4227      styleSlides(resolve("marginRight"), unit(options.gap));
4228      styleSlides("width", cssSlideWidth());
4229      styleSlides("height", cssSlideHeight(), true);
4230      rootRect = newRect;
4231      emit(EVENT_RESIZED);
4232
4233      if (overflow !== (overflow = isOverflow())) {
4234        toggleClass(root, CLASS_OVERFLOW, overflow);
4235        emit(EVENT_OVERFLOW, overflow);
4236      }
4237    }
4238  }
4239
4240  function cssPadding(right) {
4241    var padding = options.padding;
4242    var prop = resolve(right ? "right" : "left");
4243    return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || "0px";
4244  }
4245
4246  function cssTrackHeight() {
4247    var height = "";
4248
4249    if (vertical) {
4250      height = cssHeight();
4251      assert(height, "height or heightRatio is missing.");
4252      height = "calc(" + height + " - " + cssPadding(false) + " - " + cssPadding(true) + ")";
4253    }
4254
4255    return height;
4256  }
4257
4258  function cssHeight() {
4259    return unit(options.height || rect(list).width * options.heightRatio);
4260  }
4261
4262  function cssSlideWidth() {
4263    return options.autoWidth ? null : unit(options.fixedWidth) || (vertical ? "" : cssSlideSize());
4264  }
4265
4266  function cssSlideHeight() {
4267    return unit(options.fixedHeight) || (vertical ? options.autoHeight ? null : cssSlideSize() : cssHeight());
4268  }
4269
4270  function cssSlideSize() {
4271    var gap = unit(options.gap);
4272    return "calc((100%" + (gap && " + " + gap) + ")/" + (options.perPage || 1) + (gap && " - " + gap) + ")";
4273  }
4274
4275  function listSize() {
4276    return rect(list)[resolve("width")];
4277  }
4278
4279  function slideSize(index, withoutGap) {
4280    var Slide = getAt(index || 0);
4281    return Slide ? rect(Slide.slide)[resolve("width")] + (withoutGap ? 0 : getGap()) : 0;
4282  }
4283
4284  function totalSize(index, withoutGap) {
4285    var Slide = getAt(index);
4286
4287    if (Slide) {
4288      var right = rect(Slide.slide)[resolve("right")];
4289      var left = rect(list)[resolve("left")];
4290      return abs(right - left) + (withoutGap ? 0 : getGap());
4291    }
4292
4293    return 0;
4294  }
4295
4296  function sliderSize(withoutGap) {
4297    return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);
4298  }
4299
4300  function getGap() {
4301    var Slide = getAt(0);
4302    return Slide && parseFloat(style(Slide.slide, resolve("marginRight"))) || 0;
4303  }
4304
4305  function getPadding(right) {
4306    return parseFloat(style(track, resolve("padding" + (right ? "Right" : "Left")))) || 0;
4307  }
4308
4309  function isOverflow() {
4310    return Splide2.is(FADE) || sliderSize(true) > listSize();
4311  }
4312
4313  return {
4314    mount: mount,
4315    resize: resize,
4316    listSize: listSize,
4317    slideSize: slideSize,
4318    sliderSize: sliderSize,
4319    totalSize: totalSize,
4320    getPadding: getPadding,
4321    isOverflow: isOverflow
4322  };
4323}
4324
4325var MULTIPLIER = 2;
4326
4327function Clones(Splide2, Components2, options) {
4328  var event = EventInterface(Splide2);
4329  var on = event.on;
4330  var Elements = Components2.Elements,
4331      Slides = Components2.Slides;
4332  var resolve = Components2.Direction.resolve;
4333  var clones = [];
4334  var cloneCount;
4335
4336  function mount() {
4337    on(EVENT_REFRESH, remount);
4338    on([EVENT_UPDATED, EVENT_RESIZE], observe);
4339
4340    if (cloneCount = computeCloneCount()) {
4341      generate(cloneCount);
4342      Components2.Layout.resize(true);
4343    }
4344  }
4345
4346  function remount() {
4347    destroy();
4348    mount();
4349  }
4350
4351  function destroy() {
4352    remove(clones);
4353    empty(clones);
4354    event.destroy();
4355  }
4356
4357  function observe() {
4358    var count = computeCloneCount();
4359
4360    if (cloneCount !== count) {
4361      if (cloneCount < count || !count) {
4362        event.emit(EVENT_REFRESH);
4363      }
4364    }
4365  }
4366
4367  function generate(count) {
4368    var slides = Slides.get().slice();
4369    var length = slides.length;
4370
4371    if (length) {
4372      while (slides.length < count) {
4373        push(slides, slides);
4374      }
4375
4376      push(slides.slice(-count), slides.slice(0, count)).forEach(function (Slide, index) {
4377        var isHead = index < count;
4378        var clone = cloneDeep(Slide.slide, index);
4379        isHead ? before(clone, slides[0].slide) : append(Elements.list, clone);
4380        push(clones, clone);
4381        Slides.register(clone, index - count + (isHead ? 0 : length), Slide.index);
4382      });
4383    }
4384  }
4385
4386  function cloneDeep(elm, index) {
4387    var clone = elm.cloneNode(true);
4388    addClass(clone, options.classes.clone);
4389    clone.id = Splide2.root.id + "-clone" + pad(index + 1);
4390    return clone;
4391  }
4392
4393  function computeCloneCount() {
4394    var clones2 = options.clones;
4395
4396    if (!Splide2.is(LOOP)) {
4397      clones2 = 0;
4398    } else if (isUndefined(clones2)) {
4399      var fixedSize = options[resolve("fixedWidth")] && Components2.Layout.slideSize(0);
4400      var fixedCount = fixedSize && ceil(rect(Elements.track)[resolve("width")] / fixedSize);
4401      clones2 = fixedCount || options[resolve("autoWidth")] && Splide2.length || options.perPage * MULTIPLIER;
4402    }
4403
4404    return clones2;
4405  }
4406
4407  return {
4408    mount: mount,
4409    destroy: destroy
4410  };
4411}
4412
4413function Move(Splide2, Components2, options) {
4414  var _EventInterface4 = EventInterface(Splide2),
4415      on = _EventInterface4.on,
4416      emit = _EventInterface4.emit;
4417
4418  var set = Splide2.state.set;
4419  var _Components2$Layout = Components2.Layout,
4420      slideSize = _Components2$Layout.slideSize,
4421      getPadding = _Components2$Layout.getPadding,
4422      totalSize = _Components2$Layout.totalSize,
4423      listSize = _Components2$Layout.listSize,
4424      sliderSize = _Components2$Layout.sliderSize;
4425  var _Components2$Directio = Components2.Direction,
4426      resolve = _Components2$Directio.resolve,
4427      orient = _Components2$Directio.orient;
4428  var _Components2$Elements3 = Components2.Elements,
4429      list = _Components2$Elements3.list,
4430      track = _Components2$Elements3.track;
4431  var Transition;
4432
4433  function mount() {
4434    Transition = Components2.Transition;
4435    on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);
4436  }
4437
4438  function reposition() {
4439    if (!Components2.Controller.isBusy()) {
4440      Components2.Scroll.cancel();
4441      jump(Splide2.index);
4442      Components2.Slides.update();
4443    }
4444  }
4445
4446  function move(dest, index, prev, callback) {
4447    if (dest !== index && canShift(dest > prev)) {
4448      cancel();
4449      translate(shift(getPosition(), dest > prev), true);
4450    }
4451
4452    set(MOVING);
4453    emit(EVENT_MOVE, index, prev, dest);
4454    Transition.start(index, function () {
4455      set(IDLE);
4456      emit(EVENT_MOVED, index, prev, dest);
4457      callback && callback();
4458    });
4459  }
4460
4461  function jump(index) {
4462    translate(toPosition(index, true));
4463  }
4464
4465  function translate(position, preventLoop) {
4466    if (!Splide2.is(FADE)) {
4467      var destination = preventLoop ? position : loop(position);
4468      style(list, "transform", "translate" + resolve("X") + "(" + destination + "px)");
4469      position !== destination && emit(EVENT_SHIFTED);
4470    }
4471  }
4472
4473  function loop(position) {
4474    if (Splide2.is(LOOP)) {
4475      var index = toIndex(position);
4476      var exceededMax = index > Components2.Controller.getEnd();
4477      var exceededMin = index < 0;
4478
4479      if (exceededMin || exceededMax) {
4480        position = shift(position, exceededMax);
4481      }
4482    }
4483
4484    return position;
4485  }
4486
4487  function shift(position, backwards) {
4488    var excess = position - getLimit(backwards);
4489    var size = sliderSize();
4490    position -= orient(size * (ceil(abs(excess) / size) || 1)) * (backwards ? 1 : -1);
4491    return position;
4492  }
4493
4494  function cancel() {
4495    translate(getPosition(), true);
4496    Transition.cancel();
4497  }
4498
4499  function toIndex(position) {
4500    var Slides = Components2.Slides.get();
4501    var index = 0;
4502    var minDistance = Infinity;
4503
4504    for (var i = 0; i < Slides.length; i++) {
4505      var slideIndex = Slides[i].index;
4506      var distance = abs(toPosition(slideIndex, true) - position);
4507
4508      if (distance <= minDistance) {
4509        minDistance = distance;
4510        index = slideIndex;
4511      } else {
4512        break;
4513      }
4514    }
4515
4516    return index;
4517  }
4518
4519  function toPosition(index, trimming) {
4520    var position = orient(totalSize(index - 1) - offset(index));
4521    return trimming ? trim(position) : position;
4522  }
4523
4524  function getPosition() {
4525    var left = resolve("left");
4526    return rect(list)[left] - rect(track)[left] + orient(getPadding(false));
4527  }
4528
4529  function trim(position) {
4530    if (options.trimSpace && Splide2.is(SLIDE)) {
4531      position = clamp(position, 0, orient(sliderSize(true) - listSize()));
4532    }
4533
4534    return position;
4535  }
4536
4537  function offset(index) {
4538    var focus = options.focus;
4539    return focus === "center" ? (listSize() - slideSize(index, true)) / 2 : +focus * slideSize(index) || 0;
4540  }
4541
4542  function getLimit(max) {
4543    return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);
4544  }
4545
4546  function canShift(backwards) {
4547    var shifted = orient(shift(getPosition(), backwards));
4548    return backwards ? shifted >= 0 : shifted <= list[resolve("scrollWidth")] - rect(track)[resolve("width")];
4549  }
4550
4551  function exceededLimit(max, position) {
4552    position = isUndefined(position) ? getPosition() : position;
4553    var exceededMin = max !== true && orient(position) < orient(getLimit(false));
4554    var exceededMax = max !== false && orient(position) > orient(getLimit(true));
4555    return exceededMin || exceededMax;
4556  }
4557
4558  return {
4559    mount: mount,
4560    move: move,
4561    jump: jump,
4562    translate: translate,
4563    shift: shift,
4564    cancel: cancel,
4565    toIndex: toIndex,
4566    toPosition: toPosition,
4567    getPosition: getPosition,
4568    getLimit: getLimit,
4569    exceededLimit: exceededLimit,
4570    reposition: reposition
4571  };
4572}
4573
4574function Controller(Splide2, Components2, options) {
4575  var _EventInterface5 = EventInterface(Splide2),
4576      on = _EventInterface5.on,
4577      emit = _EventInterface5.emit;
4578
4579  var Move = Components2.Move;
4580  var getPosition = Move.getPosition,
4581      getLimit = Move.getLimit,
4582      toPosition = Move.toPosition;
4583  var _Components2$Slides = Components2.Slides,
4584      isEnough = _Components2$Slides.isEnough,
4585      getLength = _Components2$Slides.getLength;
4586  var omitEnd = options.omitEnd;
4587  var isLoop = Splide2.is(LOOP);
4588  var isSlide = Splide2.is(SLIDE);
4589  var getNext = apply(getAdjacent, false);
4590  var getPrev = apply(getAdjacent, true);
4591  var currIndex = options.start || 0;
4592  var endIndex;
4593  var prevIndex = currIndex;
4594  var slideCount;
4595  var perMove;
4596  var perPage;
4597
4598  function mount() {
4599    init();
4600    on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], init);
4601    on(EVENT_RESIZED, onResized);
4602  }
4603
4604  function init() {
4605    slideCount = getLength(true);
4606    perMove = options.perMove;
4607    perPage = options.perPage;
4608    endIndex = getEnd();
4609    var index = clamp(currIndex, 0, omitEnd ? endIndex : slideCount - 1);
4610
4611    if (index !== currIndex) {
4612      currIndex = index;
4613      Move.reposition();
4614    }
4615  }
4616
4617  function onResized() {
4618    if (endIndex !== getEnd()) {
4619      emit(EVENT_END_INDEX_CHANGED);
4620    }
4621  }
4622
4623  function go(control, allowSameIndex, callback) {
4624    if (!isBusy()) {
4625      var dest = parse(control);
4626      var index = loop(dest);
4627
4628      if (index > -1 && (allowSameIndex || index !== currIndex)) {
4629        setIndex(index);
4630        Move.move(dest, index, prevIndex, callback);
4631      }
4632    }
4633  }
4634
4635  function scroll(destination, duration, snap, callback) {
4636    Components2.Scroll.scroll(destination, duration, snap, function () {
4637      var index = loop(Move.toIndex(getPosition()));
4638      setIndex(omitEnd ? min(index, endIndex) : index);
4639      callback && callback();
4640    });
4641  }
4642
4643  function parse(control) {
4644    var index = currIndex;
4645
4646    if (isString(control)) {
4647      var _ref = control.match(/([+\-<>])(\d+)?/) || [],
4648          indicator = _ref[1],
4649          number = _ref[2];
4650
4651      if (indicator === "+" || indicator === "-") {
4652        index = computeDestIndex(currIndex + +("" + indicator + (+number || 1)), currIndex);
4653      } else if (indicator === ">") {
4654        index = number ? toIndex(+number) : getNext(true);
4655      } else if (indicator === "<") {
4656        index = getPrev(true);
4657      }
4658    } else {
4659      index = isLoop ? control : clamp(control, 0, endIndex);
4660    }
4661
4662    return index;
4663  }
4664
4665  function getAdjacent(prev, destination) {
4666    var number = perMove || (hasFocus() ? 1 : perPage);
4667    var dest = computeDestIndex(currIndex + number * (prev ? -1 : 1), currIndex, !(perMove || hasFocus()));
4668
4669    if (dest === -1 && isSlide) {
4670      if (!approximatelyEqual(getPosition(), getLimit(!prev), 1)) {
4671        return prev ? 0 : endIndex;
4672      }
4673    }
4674
4675    return destination ? dest : loop(dest);
4676  }
4677
4678  function computeDestIndex(dest, from, snapPage) {
4679    if (isEnough() || hasFocus()) {
4680      var index = computeMovableDestIndex(dest);
4681
4682      if (index !== dest) {
4683        from = dest;
4684        dest = index;
4685        snapPage = false;
4686      }
4687
4688      if (dest < 0 || dest > endIndex) {
4689        if (!perMove && (between(0, dest, from, true) || between(endIndex, from, dest, true))) {
4690          dest = toIndex(toPage(dest));
4691        } else {
4692          if (isLoop) {
4693            dest = snapPage ? dest < 0 ? -(slideCount % perPage || perPage) : slideCount : dest;
4694          } else if (options.rewind) {
4695            dest = dest < 0 ? endIndex : 0;
4696          } else {
4697            dest = -1;
4698          }
4699        }
4700      } else {
4701        if (snapPage && dest !== from) {
4702          dest = toIndex(toPage(from) + (dest < from ? -1 : 1));
4703        }
4704      }
4705    } else {
4706      dest = -1;
4707    }
4708
4709    return dest;
4710  }
4711
4712  function computeMovableDestIndex(dest) {
4713    if (isSlide && options.trimSpace === "move" && dest !== currIndex) {
4714      var position = getPosition();
4715
4716      while (position === toPosition(dest, true) && between(dest, 0, Splide2.length - 1, !options.rewind)) {
4717        dest < currIndex ? --dest : ++dest;
4718      }
4719    }
4720
4721    return dest;
4722  }
4723
4724  function loop(index) {
4725    return isLoop ? (index + slideCount) % slideCount || 0 : index;
4726  }
4727
4728  function getEnd() {
4729    var end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);
4730
4731    while (omitEnd && end-- > 0) {
4732      if (toPosition(slideCount - 1, true) !== toPosition(end, true)) {
4733        end++;
4734        break;
4735      }
4736    }
4737
4738    return clamp(end, 0, slideCount - 1);
4739  }
4740
4741  function toIndex(page) {
4742    return clamp(hasFocus() ? page : perPage * page, 0, endIndex);
4743  }
4744
4745  function toPage(index) {
4746    return hasFocus() ? min(index, endIndex) : floor((index >= endIndex ? slideCount - 1 : index) / perPage);
4747  }
4748
4749  function toDest(destination) {
4750    var closest = Move.toIndex(destination);
4751    return isSlide ? clamp(closest, 0, endIndex) : closest;
4752  }
4753
4754  function setIndex(index) {
4755    if (index !== currIndex) {
4756      prevIndex = currIndex;
4757      currIndex = index;
4758    }
4759  }
4760
4761  function getIndex(prev) {
4762    return prev ? prevIndex : currIndex;
4763  }
4764
4765  function hasFocus() {
4766    return !isUndefined(options.focus) || options.isNavigation;
4767  }
4768
4769  function isBusy() {
4770    return Splide2.state.is([MOVING, SCROLLING]) && !!options.waitForTransition;
4771  }
4772
4773  return {
4774    mount: mount,
4775    go: go,
4776    scroll: scroll,
4777    getNext: getNext,
4778    getPrev: getPrev,
4779    getAdjacent: getAdjacent,
4780    getEnd: getEnd,
4781    setIndex: setIndex,
4782    getIndex: getIndex,
4783    toIndex: toIndex,
4784    toPage: toPage,
4785    toDest: toDest,
4786    hasFocus: hasFocus,
4787    isBusy: isBusy
4788  };
4789}
4790
4791var XML_NAME_SPACE = "http://www.w3.org/2000/svg";
4792var PATH = "m15.5 0.932-4.3 4.38 14.5 14.6-14.5 14.5 4.3 4.4 14.6-14.6 4.4-4.3-4.4-4.4-14.6-14.6z";
4793var SIZE = 40;
4794
4795function Arrows(Splide2, Components2, options) {
4796  var event = EventInterface(Splide2);
4797  var on = event.on,
4798      bind = event.bind,
4799      emit = event.emit;
4800  var classes = options.classes,
4801      i18n = options.i18n;
4802  var Elements = Components2.Elements,
4803      Controller = Components2.Controller;
4804  var placeholder = Elements.arrows,
4805      track = Elements.track;
4806  var wrapper = placeholder;
4807  var prev = Elements.prev;
4808  var next = Elements.next;
4809  var created;
4810  var wrapperClasses;
4811  var arrows = {};
4812
4813  function mount() {
4814    init();
4815    on(EVENT_UPDATED, remount);
4816  }
4817
4818  function remount() {
4819    destroy();
4820    mount();
4821  }
4822
4823  function init() {
4824    var enabled = options.arrows;
4825
4826    if (enabled && !(prev && next)) {
4827      createArrows();
4828    }
4829
4830    if (prev && next) {
4831      assign(arrows, {
4832        prev: prev,
4833        next: next
4834      });
4835      display(wrapper, enabled ? "" : "none");
4836      addClass(wrapper, wrapperClasses = CLASS_ARROWS + "--" + options.direction);
4837
4838      if (enabled) {
4839        listen();
4840        update();
4841        setAttribute([prev, next], ARIA_CONTROLS, track.id);
4842        emit(EVENT_ARROWS_MOUNTED, prev, next);
4843      }
4844    }
4845  }
4846
4847  function destroy() {
4848    event.destroy();
4849    removeClass(wrapper, wrapperClasses);
4850
4851    if (created) {
4852      remove(placeholder ? [prev, next] : wrapper);
4853      prev = next = null;
4854    } else {
4855      removeAttribute([prev, next], ALL_ATTRIBUTES);
4856    }
4857  }
4858
4859  function listen() {
4860    on([EVENT_MOUNTED, EVENT_MOVED, EVENT_REFRESH, EVENT_SCROLLED, EVENT_END_INDEX_CHANGED], update);
4861    bind(next, "click", apply(go, ">"));
4862    bind(prev, "click", apply(go, "<"));
4863  }
4864
4865  function go(control) {
4866    Controller.go(control, true);
4867  }
4868
4869  function createArrows() {
4870    wrapper = placeholder || create("div", classes.arrows);
4871    prev = createArrow(true);
4872    next = createArrow(false);
4873    created = true;
4874    append(wrapper, [prev, next]);
4875    !placeholder && before(wrapper, track);
4876  }
4877
4878  function createArrow(prev2) {
4879    var arrow = "<button class=\"" + classes.arrow + " " + (prev2 ? classes.prev : classes.next) + "\" type=\"button\"><svg xmlns=\"" + XML_NAME_SPACE + "\" viewBox=\"0 0 " + SIZE + " " + SIZE + "\" width=\"" + SIZE + "\" height=\"" + SIZE + "\" focusable=\"false\"><path d=\"" + (options.arrowPath || PATH) + "\" />";
4880    return parseHtml(arrow);
4881  }
4882
4883  function update() {
4884    if (prev && next) {
4885      var index = Splide2.index;
4886      var prevIndex = Controller.getPrev();
4887      var nextIndex = Controller.getNext();
4888      var prevLabel = prevIndex > -1 && index < prevIndex ? i18n.last : i18n.prev;
4889      var nextLabel = nextIndex > -1 && index > nextIndex ? i18n.first : i18n.next;
4890      prev.disabled = prevIndex < 0;
4891      next.disabled = nextIndex < 0;
4892      setAttribute(prev, ARIA_LABEL, prevLabel);
4893      setAttribute(next, ARIA_LABEL, nextLabel);
4894      emit(EVENT_ARROWS_UPDATED, prev, next, prevIndex, nextIndex);
4895    }
4896  }
4897
4898  return {
4899    arrows: arrows,
4900    mount: mount,
4901    destroy: destroy,
4902    update: update
4903  };
4904}
4905
4906var INTERVAL_DATA_ATTRIBUTE = DATA_ATTRIBUTE + "-interval";
4907
4908function Autoplay(Splide2, Components2, options) {
4909  var _EventInterface6 = EventInterface(Splide2),
4910      on = _EventInterface6.on,
4911      bind = _EventInterface6.bind,
4912      emit = _EventInterface6.emit;
4913
4914  var interval = RequestInterval(options.interval, Splide2.go.bind(Splide2, ">"), onAnimationFrame);
4915  var isPaused = interval.isPaused;
4916  var Elements = Components2.Elements,
4917      _Components2$Elements4 = Components2.Elements,
4918      root = _Components2$Elements4.root,
4919      toggle = _Components2$Elements4.toggle;
4920  var autoplay = options.autoplay;
4921  var hovered;
4922  var focused;
4923  var stopped = autoplay === "pause";
4924
4925  function mount() {
4926    if (autoplay) {
4927      listen();
4928      toggle && setAttribute(toggle, ARIA_CONTROLS, Elements.track.id);
4929      stopped || play();
4930      update();
4931    }
4932  }
4933
4934  function listen() {
4935    if (options.pauseOnHover) {
4936      bind(root, "mouseenter mouseleave", function (e) {
4937        hovered = e.type === "mouseenter";
4938        autoToggle();
4939      });
4940    }
4941
4942    if (options.pauseOnFocus) {
4943      bind(root, "focusin focusout", function (e) {
4944        focused = e.type === "focusin";
4945        autoToggle();
4946      });
4947    }
4948
4949    if (toggle) {
4950      bind(toggle, "click", function () {
4951        stopped ? play() : pause(true);
4952      });
4953    }
4954
4955    on([EVENT_MOVE, EVENT_SCROLL, EVENT_REFRESH], interval.rewind);
4956    on(EVENT_MOVE, onMove);
4957  }
4958
4959  function play() {
4960    if (isPaused() && Components2.Slides.isEnough()) {
4961      interval.start(!options.resetProgress);
4962      focused = hovered = stopped = false;
4963      update();
4964      emit(EVENT_AUTOPLAY_PLAY);
4965    }
4966  }
4967
4968  function pause(stop) {
4969    if (stop === void 0) {
4970      stop = true;
4971    }
4972
4973    stopped = !!stop;
4974    update();
4975
4976    if (!isPaused()) {
4977      interval.pause();
4978      emit(EVENT_AUTOPLAY_PAUSE);
4979    }
4980  }
4981
4982  function autoToggle() {
4983    if (!stopped) {
4984      hovered || focused ? pause(false) : play();
4985    }
4986  }
4987
4988  function update() {
4989    if (toggle) {
4990      toggleClass(toggle, CLASS_ACTIVE, !stopped);
4991      setAttribute(toggle, ARIA_LABEL, options.i18n[stopped ? "play" : "pause"]);
4992    }
4993  }
4994
4995  function onAnimationFrame(rate) {
4996    var bar = Elements.bar;
4997    bar && style(bar, "width", rate * 100 + "%");
4998    emit(EVENT_AUTOPLAY_PLAYING, rate);
4999  }
5000
5001  function onMove(index) {
5002    var Slide = Components2.Slides.getAt(index);
5003    interval.set(Slide && +getAttribute(Slide.slide, INTERVAL_DATA_ATTRIBUTE) || options.interval);
5004  }
5005
5006  return {
5007    mount: mount,
5008    destroy: interval.cancel,
5009    play: play,
5010    pause: pause,
5011    isPaused: isPaused
5012  };
5013}
5014
5015function Cover(Splide2, Components2, options) {
5016  var _EventInterface7 = EventInterface(Splide2),
5017      on = _EventInterface7.on;
5018
5019  function mount() {
5020    if (options.cover) {
5021      on(EVENT_LAZYLOAD_LOADED, apply(toggle, true));
5022      on([EVENT_MOUNTED, EVENT_UPDATED, EVENT_REFRESH], apply(cover, true));
5023    }
5024  }
5025
5026  function cover(cover2) {
5027    Components2.Slides.forEach(function (Slide) {
5028      var img = child(Slide.container || Slide.slide, "img");
5029
5030      if (img && img.src) {
5031        toggle(cover2, img, Slide);
5032      }
5033    });
5034  }
5035
5036  function toggle(cover2, img, Slide) {
5037    Slide.style("background", cover2 ? "center/cover no-repeat url(\"" + img.src + "\")" : "", true);
5038    display(img, cover2 ? "none" : "");
5039  }
5040
5041  return {
5042    mount: mount,
5043    destroy: apply(cover, false)
5044  };
5045}
5046
5047var BOUNCE_DIFF_THRESHOLD = 10;
5048var BOUNCE_DURATION = 600;
5049var FRICTION_FACTOR = 0.6;
5050var BASE_VELOCITY = 1.5;
5051var MIN_DURATION = 800;
5052
5053function Scroll(Splide2, Components2, options) {
5054  var _EventInterface8 = EventInterface(Splide2),
5055      on = _EventInterface8.on,
5056      emit = _EventInterface8.emit;
5057
5058  var set = Splide2.state.set;
5059  var Move = Components2.Move;
5060  var getPosition = Move.getPosition,
5061      getLimit = Move.getLimit,
5062      exceededLimit = Move.exceededLimit,
5063      translate = Move.translate;
5064  var isSlide = Splide2.is(SLIDE);
5065  var interval;
5066  var callback;
5067  var friction = 1;
5068
5069  function mount() {
5070    on(EVENT_MOVE, clear);
5071    on([EVENT_UPDATED, EVENT_REFRESH], cancel);
5072  }
5073
5074  function scroll(destination, duration, snap, onScrolled, noConstrain) {
5075    var from = getPosition();
5076    clear();
5077
5078    if (snap && (!isSlide || !exceededLimit())) {
5079      var size = Components2.Layout.sliderSize();
5080      var offset = sign(destination) * size * floor(abs(destination) / size) || 0;
5081      destination = Move.toPosition(Components2.Controller.toDest(destination % size)) + offset;
5082    }
5083
5084    var noDistance = approximatelyEqual(from, destination, 1);
5085    friction = 1;
5086    duration = noDistance ? 0 : duration || max(abs(destination - from) / BASE_VELOCITY, MIN_DURATION);
5087    callback = onScrolled;
5088    interval = RequestInterval(duration, onEnd, apply(update, from, destination, noConstrain), 1);
5089    set(SCROLLING);
5090    emit(EVENT_SCROLL);
5091    interval.start();
5092  }
5093
5094  function onEnd() {
5095    set(IDLE);
5096    callback && callback();
5097    emit(EVENT_SCROLLED);
5098  }
5099
5100  function update(from, to, noConstrain, rate) {
5101    var position = getPosition();
5102    var target = from + (to - from) * easing(rate);
5103    var diff = (target - position) * friction;
5104    translate(position + diff);
5105
5106    if (isSlide && !noConstrain && exceededLimit()) {
5107      friction *= FRICTION_FACTOR;
5108
5109      if (abs(diff) < BOUNCE_DIFF_THRESHOLD) {
5110        scroll(getLimit(exceededLimit(true)), BOUNCE_DURATION, false, callback, true);
5111      }
5112    }
5113  }
5114
5115  function clear() {
5116    if (interval) {
5117      interval.cancel();
5118    }
5119  }
5120
5121  function cancel() {
5122    if (interval && !interval.isPaused()) {
5123      clear();
5124      onEnd();
5125    }
5126  }
5127
5128  function easing(t) {
5129    var easingFunc = options.easingFunc;
5130    return easingFunc ? easingFunc(t) : 1 - Math.pow(1 - t, 4);
5131  }
5132
5133  return {
5134    mount: mount,
5135    destroy: clear,
5136    scroll: scroll,
5137    cancel: cancel
5138  };
5139}
5140
5141var SCROLL_LISTENER_OPTIONS = {
5142  passive: false,
5143  capture: true
5144};
5145
5146function Drag(Splide2, Components2, options) {
5147  var _EventInterface9 = EventInterface(Splide2),
5148      on = _EventInterface9.on,
5149      emit = _EventInterface9.emit,
5150      bind = _EventInterface9.bind,
5151      unbind = _EventInterface9.unbind;
5152
5153  var state = Splide2.state;
5154  var Move = Components2.Move,
5155      Scroll = Components2.Scroll,
5156      Controller = Components2.Controller,
5157      track = Components2.Elements.track,
5158      reduce = Components2.Media.reduce;
5159  var _Components2$Directio2 = Components2.Direction,
5160      resolve = _Components2$Directio2.resolve,
5161      orient = _Components2$Directio2.orient;
5162  var getPosition = Move.getPosition,
5163      exceededLimit = Move.exceededLimit;
5164  var basePosition;
5165  var baseEvent;
5166  var prevBaseEvent;
5167  var isFree;
5168  var dragging;
5169  var exceeded = false;
5170  var clickPrevented;
5171  var disabled;
5172  var target;
5173
5174  function mount() {
5175    bind(track, POINTER_MOVE_EVENTS, noop, SCROLL_LISTENER_OPTIONS);
5176    bind(track, POINTER_UP_EVENTS, noop, SCROLL_LISTENER_OPTIONS);
5177    bind(track, POINTER_DOWN_EVENTS, onPointerDown, SCROLL_LISTENER_OPTIONS);
5178    bind(track, "click", onClick, {
5179      capture: true
5180    });
5181    bind(track, "dragstart", prevent);
5182    on([EVENT_MOUNTED, EVENT_UPDATED], init);
5183  }
5184
5185  function init() {
5186    var drag = options.drag;
5187    disable(!drag);
5188    isFree = drag === "free";
5189  }
5190
5191  function onPointerDown(e) {
5192    clickPrevented = false;
5193
5194    if (!disabled) {
5195      var isTouch = isTouchEvent(e);
5196
5197      if (isDraggable(e.target) && (isTouch || !e.button)) {
5198        if (!Controller.isBusy()) {
5199          target = isTouch ? track : window;
5200          dragging = state.is([MOVING, SCROLLING]);
5201          prevBaseEvent = null;
5202          bind(target, POINTER_MOVE_EVENTS, onPointerMove, SCROLL_LISTENER_OPTIONS);
5203          bind(target, POINTER_UP_EVENTS, onPointerUp, SCROLL_LISTENER_OPTIONS);
5204          Move.cancel();
5205          Scroll.cancel();
5206          save(e);
5207        } else {
5208          prevent(e, true);
5209        }
5210      }
5211    }
5212  }
5213
5214  function onPointerMove(e) {
5215    if (!state.is(DRAGGING)) {
5216      state.set(DRAGGING);
5217      emit(EVENT_DRAG);
5218    }
5219
5220    if (e.cancelable) {
5221      if (dragging) {
5222        Move.translate(basePosition + constrain(diffCoord(e)));
5223        var expired = diffTime(e) > LOG_INTERVAL;
5224        var hasExceeded = exceeded !== (exceeded = exceededLimit());
5225
5226        if (expired || hasExceeded) {
5227          save(e);
5228        }
5229
5230        clickPrevented = true;
5231        emit(EVENT_DRAGGING);
5232        prevent(e);
5233      } else if (isSliderDirection(e)) {
5234        dragging = shouldStart(e);
5235        prevent(e);
5236      }
5237    }
5238  }
5239
5240  function onPointerUp(e) {
5241    if (state.is(DRAGGING)) {
5242      state.set(IDLE);
5243      emit(EVENT_DRAGGED);
5244    }
5245
5246    if (dragging) {
5247      move(e);
5248      prevent(e);
5249    }
5250
5251    unbind(target, POINTER_MOVE_EVENTS, onPointerMove);
5252    unbind(target, POINTER_UP_EVENTS, onPointerUp);
5253    dragging = false;
5254  }
5255
5256  function onClick(e) {
5257    if (!disabled && clickPrevented) {
5258      prevent(e, true);
5259    }
5260  }
5261
5262  function save(e) {
5263    prevBaseEvent = baseEvent;
5264    baseEvent = e;
5265    basePosition = getPosition();
5266  }
5267
5268  function move(e) {
5269    var velocity = computeVelocity(e);
5270    var destination = computeDestination(velocity);
5271    var rewind = options.rewind && options.rewindByDrag;
5272    reduce(false);
5273
5274    if (isFree) {
5275      Controller.scroll(destination, 0, options.snap);
5276    } else if (Splide2.is(FADE)) {
5277      Controller.go(orient(sign(velocity)) < 0 ? rewind ? "<" : "-" : rewind ? ">" : "+");
5278    } else if (Splide2.is(SLIDE) && exceeded && rewind) {
5279      Controller.go(exceededLimit(true) ? ">" : "<");
5280    } else {
5281      Controller.go(Controller.toDest(destination), true);
5282    }
5283
5284    reduce(true);
5285  }
5286
5287  function shouldStart(e) {
5288    var thresholds = options.dragMinThreshold;
5289    var isObj = isObject(thresholds);
5290    var mouse = isObj && thresholds.mouse || 0;
5291    var touch = (isObj ? thresholds.touch : +thresholds) || 10;
5292    return abs(diffCoord(e)) > (isTouchEvent(e) ? touch : mouse);
5293  }
5294
5295  function isSliderDirection(e) {
5296    return abs(diffCoord(e)) > abs(diffCoord(e, true));
5297  }
5298
5299  function computeVelocity(e) {
5300    if (Splide2.is(LOOP) || !exceeded) {
5301      var time = diffTime(e);
5302
5303      if (time && time < LOG_INTERVAL) {
5304        return diffCoord(e) / time;
5305      }
5306    }
5307
5308    return 0;
5309  }
5310
5311  function computeDestination(velocity) {
5312    return getPosition() + sign(velocity) * min(abs(velocity) * (options.flickPower || 600), isFree ? Infinity : Components2.Layout.listSize() * (options.flickMaxPages || 1));
5313  }
5314
5315  function diffCoord(e, orthogonal) {
5316    return coordOf(e, orthogonal) - coordOf(getBaseEvent(e), orthogonal);
5317  }
5318
5319  function diffTime(e) {
5320    return timeOf(e) - timeOf(getBaseEvent(e));
5321  }
5322
5323  function getBaseEvent(e) {
5324    return baseEvent === e && prevBaseEvent || baseEvent;
5325  }
5326
5327  function coordOf(e, orthogonal) {
5328    return (isTouchEvent(e) ? e.changedTouches[0] : e)["page" + resolve(orthogonal ? "Y" : "X")];
5329  }
5330
5331  function constrain(diff) {
5332    return diff / (exceeded && Splide2.is(SLIDE) ? FRICTION : 1);
5333  }
5334
5335  function isDraggable(target2) {
5336    var noDrag = options.noDrag;
5337    return !matches(target2, "." + CLASS_PAGINATION_PAGE + ", ." + CLASS_ARROW) && (!noDrag || !matches(target2, noDrag));
5338  }
5339
5340  function isTouchEvent(e) {
5341    return typeof TouchEvent !== "undefined" && e instanceof TouchEvent;
5342  }
5343
5344  function isDragging() {
5345    return dragging;
5346  }
5347
5348  function disable(value) {
5349    disabled = value;
5350  }
5351
5352  return {
5353    mount: mount,
5354    disable: disable,
5355    isDragging: isDragging
5356  };
5357}
5358
5359var NORMALIZATION_MAP = {
5360  Spacebar: " ",
5361  Right: ARROW_RIGHT,
5362  Left: ARROW_LEFT,
5363  Up: ARROW_UP,
5364  Down: ARROW_DOWN
5365};
5366
5367function normalizeKey(key) {
5368  key = isString(key) ? key : key.key;
5369  return NORMALIZATION_MAP[key] || key;
5370}
5371
5372var KEYBOARD_EVENT = "keydown";
5373
5374function Keyboard(Splide2, Components2, options) {
5375  var _EventInterface10 = EventInterface(Splide2),
5376      on = _EventInterface10.on,
5377      bind = _EventInterface10.bind,
5378      unbind = _EventInterface10.unbind;
5379
5380  var root = Splide2.root;
5381  var resolve = Components2.Direction.resolve;
5382  var target;
5383  var disabled;
5384
5385  function mount() {
5386    init();
5387    on(EVENT_UPDATED, destroy);
5388    on(EVENT_UPDATED, init);
5389    on(EVENT_MOVE, onMove);
5390  }
5391
5392  function init() {
5393    var keyboard = options.keyboard;
5394
5395    if (keyboard) {
5396      target = keyboard === "global" ? window : root;
5397      bind(target, KEYBOARD_EVENT, onKeydown);
5398    }
5399  }
5400
5401  function destroy() {
5402    unbind(target, KEYBOARD_EVENT);
5403  }
5404
5405  function disable(value) {
5406    disabled = value;
5407  }
5408
5409  function onMove() {
5410    var _disabled = disabled;
5411    disabled = true;
5412    nextTick(function () {
5413      disabled = _disabled;
5414    });
5415  }
5416
5417  function onKeydown(e) {
5418    if (!disabled) {
5419      var key = normalizeKey(e);
5420
5421      if (key === resolve(ARROW_LEFT)) {
5422        Splide2.go("<");
5423      } else if (key === resolve(ARROW_RIGHT)) {
5424        Splide2.go(">");
5425      }
5426    }
5427  }
5428
5429  return {
5430    mount: mount,
5431    destroy: destroy,
5432    disable: disable
5433  };
5434}
5435
5436var SRC_DATA_ATTRIBUTE = DATA_ATTRIBUTE + "-lazy";
5437var SRCSET_DATA_ATTRIBUTE = SRC_DATA_ATTRIBUTE + "-srcset";
5438var IMAGE_SELECTOR = "[" + SRC_DATA_ATTRIBUTE + "], [" + SRCSET_DATA_ATTRIBUTE + "]";
5439
5440function LazyLoad(Splide2, Components2, options) {
5441  var _EventInterface11 = EventInterface(Splide2),
5442      on = _EventInterface11.on,
5443      off = _EventInterface11.off,
5444      bind = _EventInterface11.bind,
5445      emit = _EventInterface11.emit;
5446
5447  var isSequential = options.lazyLoad === "sequential";
5448  var events = [EVENT_MOVED, EVENT_SCROLLED];
5449  var entries = [];
5450
5451  function mount() {
5452    if (options.lazyLoad) {
5453      init();
5454      on(EVENT_REFRESH, init);
5455    }
5456  }
5457
5458  function init() {
5459    empty(entries);
5460    register();
5461
5462    if (isSequential) {
5463      loadNext();
5464    } else {
5465      off(events);
5466      on(events, check);
5467      check();
5468    }
5469  }
5470
5471  function register() {
5472    Components2.Slides.forEach(function (Slide) {
5473      queryAll(Slide.slide, IMAGE_SELECTOR).forEach(function (img) {
5474        var src = getAttribute(img, SRC_DATA_ATTRIBUTE);
5475        var srcset = getAttribute(img, SRCSET_DATA_ATTRIBUTE);
5476
5477        if (src !== img.src || srcset !== img.srcset) {
5478          var className = options.classes.spinner;
5479          var parent = img.parentElement;
5480          var spinner = child(parent, "." + className) || create("span", className, parent);
5481          entries.push([img, Slide, spinner]);
5482          img.src || display(img, "none");
5483        }
5484      });
5485    });
5486  }
5487
5488  function check() {
5489    entries = entries.filter(function (data) {
5490      var distance = options.perPage * ((options.preloadPages || 1) + 1) - 1;
5491      return data[1].isWithin(Splide2.index, distance) ? load(data) : true;
5492    });
5493    entries.length || off(events);
5494  }
5495
5496  function load(data) {
5497    var img = data[0];
5498    addClass(data[1].slide, CLASS_LOADING);
5499    bind(img, "load error", apply(onLoad, data));
5500    setAttribute(img, "src", getAttribute(img, SRC_DATA_ATTRIBUTE));
5501    setAttribute(img, "srcset", getAttribute(img, SRCSET_DATA_ATTRIBUTE));
5502    removeAttribute(img, SRC_DATA_ATTRIBUTE);
5503    removeAttribute(img, SRCSET_DATA_ATTRIBUTE);
5504  }
5505
5506  function onLoad(data, e) {
5507    var img = data[0],
5508        Slide = data[1];
5509    removeClass(Slide.slide, CLASS_LOADING);
5510
5511    if (e.type !== "error") {
5512      remove(data[2]);
5513      display(img, "");
5514      emit(EVENT_LAZYLOAD_LOADED, img, Slide);
5515      emit(EVENT_RESIZE);
5516    }
5517
5518    isSequential && loadNext();
5519  }
5520
5521  function loadNext() {
5522    entries.length && load(entries.shift());
5523  }
5524
5525  return {
5526    mount: mount,
5527    destroy: apply(empty, entries),
5528    check: check
5529  };
5530}
5531
5532function Pagination(Splide2, Components2, options) {
5533  var event = EventInterface(Splide2);
5534  var on = event.on,
5535      emit = event.emit,
5536      bind = event.bind;
5537  var Slides = Components2.Slides,
5538      Elements = Components2.Elements,
5539      Controller = Components2.Controller;
5540  var hasFocus = Controller.hasFocus,
5541      getIndex = Controller.getIndex,
5542      go = Controller.go;
5543  var resolve = Components2.Direction.resolve;
5544  var placeholder = Elements.pagination;
5545  var items = [];
5546  var list;
5547  var paginationClasses;
5548
5549  function mount() {
5550    destroy();
5551    on([EVENT_UPDATED, EVENT_REFRESH, EVENT_END_INDEX_CHANGED], mount);
5552    var enabled = options.pagination;
5553    placeholder && display(placeholder, enabled ? "" : "none");
5554
5555    if (enabled) {
5556      on([EVENT_MOVE, EVENT_SCROLL, EVENT_SCROLLED], update);
5557      createPagination();
5558      update();
5559      emit(EVENT_PAGINATION_MOUNTED, {
5560        list: list,
5561        items: items
5562      }, getAt(Splide2.index));
5563    }
5564  }
5565
5566  function destroy() {
5567    if (list) {
5568      remove(placeholder ? slice(list.children) : list);
5569      removeClass(list, paginationClasses);
5570      empty(items);
5571      list = null;
5572    }
5573
5574    event.destroy();
5575  }
5576
5577  function createPagination() {
5578    var length = Splide2.length;
5579    var classes = options.classes,
5580        i18n = options.i18n,
5581        perPage = options.perPage;
5582    var max = hasFocus() ? Controller.getEnd() + 1 : ceil(length / perPage);
5583    list = placeholder || create("ul", classes.pagination, Elements.track.parentElement);
5584    addClass(list, paginationClasses = CLASS_PAGINATION + "--" + getDirection());
5585    setAttribute(list, ROLE, "tablist");
5586    setAttribute(list, ARIA_LABEL, i18n.select);
5587    setAttribute(list, ARIA_ORIENTATION, getDirection() === TTB ? "vertical" : "");
5588
5589    for (var i = 0; i < max; i++) {
5590      var li = create("li", null, list);
5591      var button = create("button", {
5592        class: classes.page,
5593        type: "button"
5594      }, li);
5595      var controls = Slides.getIn(i).map(function (Slide) {
5596        return Slide.slide.id;
5597      });
5598      var text = !hasFocus() && perPage > 1 ? i18n.pageX : i18n.slideX;
5599      bind(button, "click", apply(onClick, i));
5600
5601      if (options.paginationKeyboard) {
5602        bind(button, "keydown", apply(onKeydown, i));
5603      }
5604
5605      setAttribute(li, ROLE, "presentation");
5606      setAttribute(button, ROLE, "tab");
5607      setAttribute(button, ARIA_CONTROLS, controls.join(" "));
5608      setAttribute(button, ARIA_LABEL, format(text, i + 1));
5609      setAttribute(button, TAB_INDEX, -1);
5610      items.push({
5611        li: li,
5612        button: button,
5613        page: i
5614      });
5615    }
5616  }
5617
5618  function onClick(page) {
5619    go(">" + page, true);
5620  }
5621
5622  function onKeydown(page, e) {
5623    var length = items.length;
5624    var key = normalizeKey(e);
5625    var dir = getDirection();
5626    var nextPage = -1;
5627
5628    if (key === resolve(ARROW_RIGHT, false, dir)) {
5629      nextPage = ++page % length;
5630    } else if (key === resolve(ARROW_LEFT, false, dir)) {
5631      nextPage = (--page + length) % length;
5632    } else if (key === "Home") {
5633      nextPage = 0;
5634    } else if (key === "End") {
5635      nextPage = length - 1;
5636    }
5637
5638    var item = items[nextPage];
5639
5640    if (item) {
5641      focus(item.button);
5642      go(">" + nextPage);
5643      prevent(e, true);
5644    }
5645  }
5646
5647  function getDirection() {
5648    return options.paginationDirection || options.direction;
5649  }
5650
5651  function getAt(index) {
5652    return items[Controller.toPage(index)];
5653  }
5654
5655  function update() {
5656    var prev = getAt(getIndex(true));
5657    var curr = getAt(getIndex());
5658
5659    if (prev) {
5660      var button = prev.button;
5661      removeClass(button, CLASS_ACTIVE);
5662      removeAttribute(button, ARIA_SELECTED);
5663      setAttribute(button, TAB_INDEX, -1);
5664    }
5665
5666    if (curr) {
5667      var _button = curr.button;
5668      addClass(_button, CLASS_ACTIVE);
5669      setAttribute(_button, ARIA_SELECTED, true);
5670      setAttribute(_button, TAB_INDEX, "");
5671    }
5672
5673    emit(EVENT_PAGINATION_UPDATED, {
5674      list: list,
5675      items: items
5676    }, prev, curr);
5677  }
5678
5679  return {
5680    items: items,
5681    mount: mount,
5682    destroy: destroy,
5683    getAt: getAt,
5684    update: update
5685  };
5686}
5687
5688var TRIGGER_KEYS = [" ", "Enter"];
5689
5690function Sync(Splide2, Components2, options) {
5691  var isNavigation = options.isNavigation,
5692      slideFocus = options.slideFocus;
5693  var events = [];
5694
5695  function mount() {
5696    Splide2.splides.forEach(function (target) {
5697      if (!target.isParent) {
5698        sync(Splide2, target.splide);
5699        sync(target.splide, Splide2);
5700      }
5701    });
5702
5703    if (isNavigation) {
5704      navigate();
5705    }
5706  }
5707
5708  function destroy() {
5709    events.forEach(function (event) {
5710      event.destroy();
5711    });
5712    empty(events);
5713  }
5714
5715  function remount() {
5716    destroy();
5717    mount();
5718  }
5719
5720  function sync(splide, target) {
5721    var event = EventInterface(splide);
5722    event.on(EVENT_MOVE, function (index, prev, dest) {
5723      target.go(target.is(LOOP) ? dest : index);
5724    });
5725    events.push(event);
5726  }
5727
5728  function navigate() {
5729    var event = EventInterface(Splide2);
5730    var on = event.on;
5731    on(EVENT_CLICK, onClick);
5732    on(EVENT_SLIDE_KEYDOWN, onKeydown);
5733    on([EVENT_MOUNTED, EVENT_UPDATED], update);
5734    events.push(event);
5735    event.emit(EVENT_NAVIGATION_MOUNTED, Splide2.splides);
5736  }
5737
5738  function update() {
5739    setAttribute(Components2.Elements.list, ARIA_ORIENTATION, options.direction === TTB ? "vertical" : "");
5740  }
5741
5742  function onClick(Slide) {
5743    Splide2.go(Slide.index);
5744  }
5745
5746  function onKeydown(Slide, e) {
5747    if (includes(TRIGGER_KEYS, normalizeKey(e))) {
5748      onClick(Slide);
5749      prevent(e);
5750    }
5751  }
5752
5753  return {
5754    setup: apply(Components2.Media.set, {
5755      slideFocus: isUndefined(slideFocus) ? isNavigation : slideFocus
5756    }, true),
5757    mount: mount,
5758    destroy: destroy,
5759    remount: remount
5760  };
5761}
5762
5763function Wheel(Splide2, Components2, options) {
5764  var _EventInterface12 = EventInterface(Splide2),
5765      bind = _EventInterface12.bind;
5766
5767  var lastTime = 0;
5768
5769  function mount() {
5770    if (options.wheel) {
5771      bind(Components2.Elements.track, "wheel", onWheel, SCROLL_LISTENER_OPTIONS);
5772    }
5773  }
5774
5775  function onWheel(e) {
5776    if (e.cancelable) {
5777      var deltaY = e.deltaY;
5778      var backwards = deltaY < 0;
5779      var timeStamp = timeOf(e);
5780
5781      var _min = options.wheelMinThreshold || 0;
5782
5783      var sleep = options.wheelSleep || 0;
5784
5785      if (abs(deltaY) > _min && timeStamp - lastTime > sleep) {
5786        Splide2.go(backwards ? "<" : ">");
5787        lastTime = timeStamp;
5788      }
5789
5790      shouldPrevent(backwards) && prevent(e);
5791    }
5792  }
5793
5794  function shouldPrevent(backwards) {
5795    return !options.releaseWheel || Splide2.state.is(MOVING) || Components2.Controller.getAdjacent(backwards) !== -1;
5796  }
5797
5798  return {
5799    mount: mount
5800  };
5801}
5802
5803var SR_REMOVAL_DELAY = 90;
5804
5805function Live(Splide2, Components2, options) {
5806  var _EventInterface13 = EventInterface(Splide2),
5807      on = _EventInterface13.on;
5808
5809  var track = Components2.Elements.track;
5810  var enabled = options.live && !options.isNavigation;
5811  var sr = create("span", CLASS_SR);
5812  var interval = RequestInterval(SR_REMOVAL_DELAY, apply(toggle, false));
5813
5814  function mount() {
5815    if (enabled) {
5816      disable(!Components2.Autoplay.isPaused());
5817      setAttribute(track, ARIA_ATOMIC, true);
5818      sr.textContent = "\u2026";
5819      on(EVENT_AUTOPLAY_PLAY, apply(disable, true));
5820      on(EVENT_AUTOPLAY_PAUSE, apply(disable, false));
5821      on([EVENT_MOVED, EVENT_SCROLLED], apply(toggle, true));
5822    }
5823  }
5824
5825  function toggle(active) {
5826    setAttribute(track, ARIA_BUSY, active);
5827
5828    if (active) {
5829      append(track, sr);
5830      interval.start();
5831    } else {
5832      remove(sr);
5833      interval.cancel();
5834    }
5835  }
5836
5837  function destroy() {
5838    removeAttribute(track, [ARIA_LIVE, ARIA_ATOMIC, ARIA_BUSY]);
5839    remove(sr);
5840  }
5841
5842  function disable(disabled) {
5843    if (enabled) {
5844      setAttribute(track, ARIA_LIVE, disabled ? "off" : "polite");
5845    }
5846  }
5847
5848  return {
5849    mount: mount,
5850    disable: disable,
5851    destroy: destroy
5852  };
5853}
5854
5855var ComponentConstructors = /*#__PURE__*/Object.freeze({
5856  __proto__: null,
5857  Media: Media,
5858  Direction: Direction,
5859  Elements: Elements,
5860  Slides: Slides,
5861  Layout: Layout,
5862  Clones: Clones,
5863  Move: Move,
5864  Controller: Controller,
5865  Arrows: Arrows,
5866  Autoplay: Autoplay,
5867  Cover: Cover,
5868  Scroll: Scroll,
5869  Drag: Drag,
5870  Keyboard: Keyboard,
5871  LazyLoad: LazyLoad,
5872  Pagination: Pagination,
5873  Sync: Sync,
5874  Wheel: Wheel,
5875  Live: Live
5876});
5877var I18N = {
5878  prev: "Previous slide",
5879  next: "Next slide",
5880  first: "Go to first slide",
5881  last: "Go to last slide",
5882  slideX: "Go to slide %s",
5883  pageX: "Go to page %s",
5884  play: "Start autoplay",
5885  pause: "Pause autoplay",
5886  carousel: "carousel",
5887  slide: "slide",
5888  select: "Select a slide to show",
5889  slideLabel: "%s of %s"
5890};
5891var DEFAULTS = {
5892  type: "slide",
5893  role: "region",
5894  speed: 400,
5895  perPage: 1,
5896  cloneStatus: true,
5897  arrows: true,
5898  pagination: true,
5899  paginationKeyboard: true,
5900  interval: 5e3,
5901  pauseOnHover: true,
5902  pauseOnFocus: true,
5903  resetProgress: true,
5904  easing: "cubic-bezier(0.25, 1, 0.5, 1)",
5905  drag: true,
5906  direction: "ltr",
5907  trimSpace: true,
5908  focusableNodes: "a, button, textarea, input, select, iframe",
5909  live: true,
5910  classes: CLASSES,
5911  i18n: I18N,
5912  reducedMotion: {
5913    speed: 0,
5914    rewindSpeed: 0,
5915    autoplay: "pause"
5916  }
5917};
5918
5919function Fade(Splide2, Components2, options) {
5920  var Slides = Components2.Slides;
5921
5922  function mount() {
5923    EventInterface(Splide2).on([EVENT_MOUNTED, EVENT_REFRESH], init);
5924  }
5925
5926  function init() {
5927    Slides.forEach(function (Slide) {
5928      Slide.style("transform", "translateX(-" + 100 * Slide.index + "%)");
5929    });
5930  }
5931
5932  function start(index, done) {
5933    Slides.style("transition", "opacity " + options.speed + "ms " + options.easing);
5934    nextTick(done);
5935  }
5936
5937  return {
5938    mount: mount,
5939    start: start,
5940    cancel: noop
5941  };
5942}
5943
5944function Slide(Splide2, Components2, options) {
5945  var Move = Components2.Move,
5946      Controller = Components2.Controller,
5947      Scroll = Components2.Scroll;
5948  var list = Components2.Elements.list;
5949  var transition = apply(style, list, "transition");
5950  var endCallback;
5951
5952  function mount() {
5953    EventInterface(Splide2).bind(list, "transitionend", function (e) {
5954      if (e.target === list && endCallback) {
5955        cancel();
5956        endCallback();
5957      }
5958    });
5959  }
5960
5961  function start(index, done) {
5962    var destination = Move.toPosition(index, true);
5963    var position = Move.getPosition();
5964    var speed = getSpeed(index);
5965
5966    if (abs(destination - position) >= 1 && speed >= 1) {
5967      if (options.useScroll) {
5968        Scroll.scroll(destination, speed, false, done);
5969      } else {
5970        transition("transform " + speed + "ms " + options.easing);
5971        Move.translate(destination, true);
5972        endCallback = done;
5973      }
5974    } else {
5975      Move.jump(index);
5976      done();
5977    }
5978  }
5979
5980  function cancel() {
5981    transition("");
5982    Scroll.cancel();
5983  }
5984
5985  function getSpeed(index) {
5986    var rewindSpeed = options.rewindSpeed;
5987
5988    if (Splide2.is(SLIDE) && rewindSpeed) {
5989      var prev = Controller.getIndex(true);
5990      var end = Controller.getEnd();
5991
5992      if (prev === 0 && index >= end || prev >= end && index === 0) {
5993        return rewindSpeed;
5994      }
5995    }
5996
5997    return options.speed;
5998  }
5999
6000  return {
6001    mount: mount,
6002    start: start,
6003    cancel: cancel
6004  };
6005}
6006
6007var _Splide = /*#__PURE__*/function () {
6008  function _Splide(target, options) {
6009    this.event = EventInterface();
6010    this.Components = {};
6011    this.state = State(CREATED);
6012    this.splides = [];
6013    this._o = {};
6014    this._E = {};
6015    var root = isString(target) ? query(document, target) : target;
6016    assert(root, root + " is invalid.");
6017    this.root = root;
6018    options = merge({
6019      label: getAttribute(root, ARIA_LABEL) || "",
6020      labelledby: getAttribute(root, ARIA_LABELLEDBY) || ""
6021    }, DEFAULTS, _Splide.defaults, options || {});
6022
6023    try {
6024      merge(options, JSON.parse(getAttribute(root, DATA_ATTRIBUTE)));
6025    } catch (e) {
6026      assert(false, "Invalid JSON");
6027    }
6028
6029    this._o = Object.create(merge({}, options));
6030  }
6031
6032  var _proto = _Splide.prototype;
6033
6034  _proto.mount = function mount(Extensions, Transition) {
6035    var _this = this;
6036
6037    var state = this.state,
6038        Components2 = this.Components;
6039    assert(state.is([CREATED, DESTROYED]), "Already mounted!");
6040    state.set(CREATED);
6041    this._C = Components2;
6042    this._T = Transition || this._T || (this.is(FADE) ? Fade : Slide);
6043    this._E = Extensions || this._E;
6044    var Constructors = assign({}, ComponentConstructors, this._E, {
6045      Transition: this._T
6046    });
6047    forOwn(Constructors, function (Component, key) {
6048      var component = Component(_this, Components2, _this._o);
6049      Components2[key] = component;
6050      component.setup && component.setup();
6051    });
6052    forOwn(Components2, function (component) {
6053      component.mount && component.mount();
6054    });
6055    this.emit(EVENT_MOUNTED);
6056    addClass(this.root, CLASS_INITIALIZED);
6057    state.set(IDLE);
6058    this.emit(EVENT_READY);
6059    return this;
6060  };
6061
6062  _proto.sync = function sync(splide) {
6063    this.splides.push({
6064      splide: splide
6065    });
6066    splide.splides.push({
6067      splide: this,
6068      isParent: true
6069    });
6070
6071    if (this.state.is(IDLE)) {
6072      this._C.Sync.remount();
6073
6074      splide.Components.Sync.remount();
6075    }
6076
6077    return this;
6078  };
6079
6080  _proto.go = function go(control) {
6081    this._C.Controller.go(control);
6082
6083    return this;
6084  };
6085
6086  _proto.on = function on(events, callback) {
6087    this.event.on(events, callback);
6088    return this;
6089  };
6090
6091  _proto.off = function off(events) {
6092    this.event.off(events);
6093    return this;
6094  };
6095
6096  _proto.emit = function emit(event) {
6097    var _this$event;
6098
6099    (_this$event = this.event).emit.apply(_this$event, [event].concat(slice(arguments, 1)));
6100
6101    return this;
6102  };
6103
6104  _proto.add = function add(slides, index) {
6105    this._C.Slides.add(slides, index);
6106
6107    return this;
6108  };
6109
6110  _proto.remove = function remove(matcher) {
6111    this._C.Slides.remove(matcher);
6112
6113    return this;
6114  };
6115
6116  _proto.is = function is(type) {
6117    return this._o.type === type;
6118  };
6119
6120  _proto.refresh = function refresh() {
6121    this.emit(EVENT_REFRESH);
6122    return this;
6123  };
6124
6125  _proto.destroy = function destroy(completely) {
6126    if (completely === void 0) {
6127      completely = true;
6128    }
6129
6130    var event = this.event,
6131        state = this.state;
6132
6133    if (state.is(CREATED)) {
6134      EventInterface(this).on(EVENT_READY, this.destroy.bind(this, completely));
6135    } else {
6136      forOwn(this._C, function (component) {
6137        component.destroy && component.destroy(completely);
6138      }, true);
6139      event.emit(EVENT_DESTROY);
6140      event.destroy();
6141      completely && empty(this.splides);
6142      state.set(DESTROYED);
6143    }
6144
6145    return this;
6146  };
6147
6148  _createClass(_Splide, [{
6149    key: "options",
6150    get: function get() {
6151      return this._o;
6152    },
6153    set: function set(options) {
6154      this._C.Media.set(options, true, true);
6155    }
6156  }, {
6157    key: "length",
6158    get: function get() {
6159      return this._C.Slides.getLength(true);
6160    }
6161  }, {
6162    key: "index",
6163    get: function get() {
6164      return this._C.Controller.getIndex();
6165    }
6166  }]);
6167
6168  return _Splide;
6169}();
6170
6171var Splide = _Splide;
6172Splide.defaults = {};
6173Splide.STATES = STATES;
6174var CLASS_RENDERED = "is-rendered";
6175var RENDERER_DEFAULT_CONFIG = {
6176  listTag: "ul",
6177  slideTag: "li"
6178};
6179
6180var Style = /*#__PURE__*/function () {
6181  function Style(id, options) {
6182    this.styles = {};
6183    this.id = id;
6184    this.options = options;
6185  }
6186
6187  var _proto2 = Style.prototype;
6188
6189  _proto2.rule = function rule(selector, prop, value, breakpoint) {
6190    breakpoint = breakpoint || "default";
6191    var selectors = this.styles[breakpoint] = this.styles[breakpoint] || {};
6192    var styles = selectors[selector] = selectors[selector] || {};
6193    styles[prop] = value;
6194  };
6195
6196  _proto2.build = function build() {
6197    var _this2 = this;
6198
6199    var css = "";
6200
6201    if (this.styles.default) {
6202      css += this.buildSelectors(this.styles.default);
6203    }
6204
6205    Object.keys(this.styles).sort(function (n, m) {
6206      return _this2.options.mediaQuery === "min" ? +n - +m : +m - +n;
6207    }).forEach(function (breakpoint) {
6208      if (breakpoint !== "default") {
6209        css += "@media screen and (max-width: " + breakpoint + "px) {";
6210        css += _this2.buildSelectors(_this2.styles[breakpoint]);
6211        css += "}";
6212      }
6213    });
6214    return css;
6215  };
6216
6217  _proto2.buildSelectors = function buildSelectors(selectors) {
6218    var _this3 = this;
6219
6220    var css = "";
6221    forOwn(selectors, function (styles, selector) {
6222      selector = ("#" + _this3.id + " " + selector).trim();
6223      css += selector + " {";
6224      forOwn(styles, function (value, prop) {
6225        if (value || value === 0) {
6226          css += prop + ": " + value + ";";
6227        }
6228      });
6229      css += "}";
6230    });
6231    return css;
6232  };
6233
6234  return Style;
6235}();
6236
6237var SplideRenderer = /*#__PURE__*/function () {
6238  function SplideRenderer(contents, options, config, defaults) {
6239    this.slides = [];
6240    this.options = {};
6241    this.breakpoints = [];
6242    merge(DEFAULTS, defaults || {});
6243    merge(merge(this.options, DEFAULTS), options || {});
6244    this.contents = contents;
6245    this.config = assign({}, RENDERER_DEFAULT_CONFIG, config || {});
6246    this.id = this.config.id || uniqueId("splide");
6247    this.Style = new Style(this.id, this.options);
6248    this.Direction = Direction(null, null, this.options);
6249    assert(this.contents.length, "Provide at least 1 content.");
6250    this.init();
6251  }
6252
6253  SplideRenderer.clean = function clean(splide) {
6254    var _EventInterface14 = EventInterface(splide),
6255        on = _EventInterface14.on;
6256
6257    var root = splide.root;
6258    var clones = queryAll(root, "." + CLASS_CLONE);
6259    on(EVENT_MOUNTED, function () {
6260      remove(child(root, "style"));
6261    });
6262    remove(clones);
6263  };
6264
6265  var _proto3 = SplideRenderer.prototype;
6266
6267  _proto3.init = function init() {
6268    this.parseBreakpoints();
6269    this.initSlides();
6270    this.registerRootStyles();
6271    this.registerTrackStyles();
6272    this.registerSlideStyles();
6273    this.registerListStyles();
6274  };
6275
6276  _proto3.initSlides = function initSlides() {
6277    var _this4 = this;
6278
6279    push(this.slides, this.contents.map(function (content, index) {
6280      content = isString(content) ? {
6281        html: content
6282      } : content;
6283      content.styles = content.styles || {};
6284      content.attrs = content.attrs || {};
6285
6286      _this4.cover(content);
6287
6288      var classes = _this4.options.classes.slide + " " + (index === 0 ? CLASS_ACTIVE : "");
6289      assign(content.attrs, {
6290        class: (classes + " " + (content.attrs.class || "")).trim(),
6291        style: _this4.buildStyles(content.styles)
6292      });
6293      return content;
6294    }));
6295
6296    if (this.isLoop()) {
6297      this.generateClones(this.slides);
6298    }
6299  };
6300
6301  _proto3.registerRootStyles = function registerRootStyles() {
6302    var _this5 = this;
6303
6304    this.breakpoints.forEach(function (_ref2) {
6305      var width = _ref2[0],
6306          options = _ref2[1];
6307
6308      _this5.Style.rule(" ", "max-width", unit(options.width), width);
6309    });
6310  };
6311
6312  _proto3.registerTrackStyles = function registerTrackStyles() {
6313    var _this6 = this;
6314
6315    var Style2 = this.Style;
6316    var selector = "." + CLASS_TRACK;
6317    this.breakpoints.forEach(function (_ref3) {
6318      var width = _ref3[0],
6319          options = _ref3[1];
6320      Style2.rule(selector, _this6.resolve("paddingLeft"), _this6.cssPadding(options, false), width);
6321      Style2.rule(selector, _this6.resolve("paddingRight"), _this6.cssPadding(options, true), width);
6322      Style2.rule(selector, "height", _this6.cssTrackHeight(options), width);
6323    });
6324  };
6325
6326  _proto3.registerListStyles = function registerListStyles() {
6327    var _this7 = this;
6328
6329    var Style2 = this.Style;
6330    var selector = "." + CLASS_LIST;
6331    this.breakpoints.forEach(function (_ref4) {
6332      var width = _ref4[0],
6333          options = _ref4[1];
6334      Style2.rule(selector, "transform", _this7.buildTranslate(options), width);
6335
6336      if (!_this7.cssSlideHeight(options)) {
6337        Style2.rule(selector, "aspect-ratio", _this7.cssAspectRatio(options), width);
6338      }
6339    });
6340  };
6341
6342  _proto3.registerSlideStyles = function registerSlideStyles() {
6343    var _this8 = this;
6344
6345    var Style2 = this.Style;
6346    var selector = "." + CLASS_SLIDE;
6347    this.breakpoints.forEach(function (_ref5) {
6348      var width = _ref5[0],
6349          options = _ref5[1];
6350      Style2.rule(selector, "width", _this8.cssSlideWidth(options), width);
6351      Style2.rule(selector, "height", _this8.cssSlideHeight(options) || "100%", width);
6352      Style2.rule(selector, _this8.resolve("marginRight"), unit(options.gap) || "0px", width);
6353      Style2.rule(selector + " > img", "display", options.cover ? "none" : "inline", width);
6354    });
6355  };
6356
6357  _proto3.buildTranslate = function buildTranslate(options) {
6358    var _this$Direction = this.Direction,
6359        resolve = _this$Direction.resolve,
6360        orient = _this$Direction.orient;
6361    var values = [];
6362    values.push(this.cssOffsetClones(options));
6363    values.push(this.cssOffsetGaps(options));
6364
6365    if (this.isCenter(options)) {
6366      values.push(this.buildCssValue(orient(-50), "%"));
6367      values.push.apply(values, this.cssOffsetCenter(options));
6368    }
6369
6370    return values.filter(Boolean).map(function (value) {
6371      return "translate" + resolve("X") + "(" + value + ")";
6372    }).join(" ");
6373  };
6374
6375  _proto3.cssOffsetClones = function cssOffsetClones(options) {
6376    var _this$Direction2 = this.Direction,
6377        resolve = _this$Direction2.resolve,
6378        orient = _this$Direction2.orient;
6379    var cloneCount = this.getCloneCount();
6380
6381    if (this.isFixedWidth(options)) {
6382      var _this$parseCssValue = this.parseCssValue(options[resolve("fixedWidth")]),
6383          value = _this$parseCssValue.value,
6384          unit2 = _this$parseCssValue.unit;
6385
6386      return this.buildCssValue(orient(value) * cloneCount, unit2);
6387    }
6388
6389    var percent = 100 * cloneCount / options.perPage;
6390    return orient(percent) + "%";
6391  };
6392
6393  _proto3.cssOffsetCenter = function cssOffsetCenter(options) {
6394    var _this$Direction3 = this.Direction,
6395        resolve = _this$Direction3.resolve,
6396        orient = _this$Direction3.orient;
6397
6398    if (this.isFixedWidth(options)) {
6399      var _this$parseCssValue2 = this.parseCssValue(options[resolve("fixedWidth")]),
6400          value = _this$parseCssValue2.value,
6401          unit2 = _this$parseCssValue2.unit;
6402
6403      return [this.buildCssValue(orient(value / 2), unit2)];
6404    }
6405
6406    var values = [];
6407    var perPage = options.perPage,
6408        gap = options.gap;
6409    values.push(orient(50 / perPage) + "%");
6410
6411    if (gap) {
6412      var _this$parseCssValue3 = this.parseCssValue(gap),
6413          _value = _this$parseCssValue3.value,
6414          _unit = _this$parseCssValue3.unit;
6415
6416      var gapOffset = (_value / perPage - _value) / 2;
6417      values.push(this.buildCssValue(orient(gapOffset), _unit));
6418    }
6419
6420    return values;
6421  };
6422
6423  _proto3.cssOffsetGaps = function cssOffsetGaps(options) {
6424    var cloneCount = this.getCloneCount();
6425
6426    if (cloneCount && options.gap) {
6427      var orient = this.Direction.orient;
6428
6429      var _this$parseCssValue4 = this.parseCssValue(options.gap),
6430          value = _this$parseCssValue4.value,
6431          unit2 = _this$parseCssValue4.unit;
6432
6433      if (this.isFixedWidth(options)) {
6434        return this.buildCssValue(orient(value * cloneCount), unit2);
6435      }
6436
6437      var perPage = options.perPage;
6438      var gaps = cloneCount / perPage;
6439      return this.buildCssValue(orient(gaps * value), unit2);
6440    }
6441
6442    return "";
6443  };
6444
6445  _proto3.resolve = function resolve(prop) {
6446    return camelToKebab(this.Direction.resolve(prop));
6447  };
6448
6449  _proto3.cssPadding = function cssPadding(options, right) {
6450    var padding = options.padding;
6451    var prop = this.Direction.resolve(right ? "right" : "left", true);
6452    return padding && unit(padding[prop] || (isObject(padding) ? 0 : padding)) || "0px";
6453  };
6454
6455  _proto3.cssTrackHeight = function cssTrackHeight(options) {
6456    var height = "";
6457
6458    if (this.isVertical()) {
6459      height = this.cssHeight(options);
6460      assert(height, '"height" is missing.');
6461      height = "calc(" + height + " - " + this.cssPadding(options, false) + " - " + this.cssPadding(options, true) + ")";
6462    }
6463
6464    return height;
6465  };
6466
6467  _proto3.cssHeight = function cssHeight(options) {
6468    return unit(options.height);
6469  };
6470
6471  _proto3.cssSlideWidth = function cssSlideWidth(options) {
6472    return options.autoWidth ? "" : unit(options.fixedWidth) || (this.isVertical() ? "" : this.cssSlideSize(options));
6473  };
6474
6475  _proto3.cssSlideHeight = function cssSlideHeight(options) {
6476    return unit(options.fixedHeight) || (this.isVertical() ? options.autoHeight ? "" : this.cssSlideSize(options) : this.cssHeight(options));
6477  };
6478
6479  _proto3.cssSlideSize = function cssSlideSize(options) {
6480    var gap = unit(options.gap);
6481    return "calc((100%" + (gap && " + " + gap) + ")/" + (options.perPage || 1) + (gap && " - " + gap) + ")";
6482  };
6483
6484  _proto3.cssAspectRatio = function cssAspectRatio(options) {
6485    var heightRatio = options.heightRatio;
6486    return heightRatio ? "" + 1 / heightRatio : "";
6487  };
6488
6489  _proto3.buildCssValue = function buildCssValue(value, unit2) {
6490    return "" + value + unit2;
6491  };
6492
6493  _proto3.parseCssValue = function parseCssValue(value) {
6494    if (isString(value)) {
6495      var number = parseFloat(value) || 0;
6496      var unit2 = value.replace(/\d*(\.\d*)?/, "") || "px";
6497      return {
6498        value: number,
6499        unit: unit2
6500      };
6501    }
6502
6503    return {
6504      value: value,
6505      unit: "px"
6506    };
6507  };
6508
6509  _proto3.parseBreakpoints = function parseBreakpoints() {
6510    var _this9 = this;
6511
6512    var breakpoints = this.options.breakpoints;
6513    this.breakpoints.push(["default", this.options]);
6514
6515    if (breakpoints) {
6516      forOwn(breakpoints, function (options, width) {
6517        _this9.breakpoints.push([width, merge(merge({}, _this9.options), options)]);
6518      });
6519    }
6520  };
6521
6522  _proto3.isFixedWidth = function isFixedWidth(options) {
6523    return !!options[this.Direction.resolve("fixedWidth")];
6524  };
6525
6526  _proto3.isLoop = function isLoop() {
6527    return this.options.type === LOOP;
6528  };
6529
6530  _proto3.isCenter = function isCenter(options) {
6531    if (options.focus === "center") {
6532      if (this.isLoop()) {
6533        return true;
6534      }
6535
6536      if (this.options.type === SLIDE) {
6537        return !this.options.trimSpace;
6538      }
6539    }
6540
6541    return false;
6542  };
6543
6544  _proto3.isVertical = function isVertical() {
6545    return this.options.direction === TTB;
6546  };
6547
6548  _proto3.buildClasses = function buildClasses() {
6549    var options = this.options;
6550    return [CLASS_ROOT, CLASS_ROOT + "--" + options.type, CLASS_ROOT + "--" + options.direction, options.drag && CLASS_ROOT + "--draggable", options.isNavigation && CLASS_ROOT + "--nav", CLASS_ACTIVE, !this.config.hidden && CLASS_RENDERED].filter(Boolean).join(" ");
6551  };
6552
6553  _proto3.buildAttrs = function buildAttrs(attrs) {
6554    var attr = "";
6555    forOwn(attrs, function (value, key) {
6556      attr += value ? " " + camelToKebab(key) + "=\"" + value + "\"" : "";
6557    });
6558    return attr.trim();
6559  };
6560
6561  _proto3.buildStyles = function buildStyles(styles) {
6562    var style = "";
6563    forOwn(styles, function (value, key) {
6564      style += " " + camelToKebab(key) + ":" + value + ";";
6565    });
6566    return style.trim();
6567  };
6568
6569  _proto3.renderSlides = function renderSlides() {
6570    var _this10 = this;
6571
6572    var tag = this.config.slideTag;
6573    return this.slides.map(function (content) {
6574      return "<" + tag + " " + _this10.buildAttrs(content.attrs) + ">" + (content.html || "") + "</" + tag + ">";
6575    }).join("");
6576  };
6577
6578  _proto3.cover = function cover(content) {
6579    var styles = content.styles,
6580        _content$html = content.html,
6581        html = _content$html === void 0 ? "" : _content$html;
6582
6583    if (this.options.cover && !this.options.lazyLoad) {
6584      var src = html.match(/<img.*?src\s*=\s*(['"])(.+?)\1.*?>/);
6585
6586      if (src && src[2]) {
6587        styles.background = "center/cover no-repeat url('" + src[2] + "')";
6588      }
6589    }
6590  };
6591
6592  _proto3.generateClones = function generateClones(contents) {
6593    var classes = this.options.classes;
6594    var count = this.getCloneCount();
6595    var slides = contents.slice();
6596
6597    while (slides.length < count) {
6598      push(slides, slides);
6599    }
6600
6601    push(slides.slice(-count).reverse(), slides.slice(0, count)).forEach(function (content, index) {
6602      var attrs = assign({}, content.attrs, {
6603        class: content.attrs.class + " " + classes.clone
6604      });
6605      var clone = assign({}, content, {
6606        attrs: attrs
6607      });
6608      index < count ? contents.unshift(clone) : contents.push(clone);
6609    });
6610  };
6611
6612  _proto3.getCloneCount = function getCloneCount() {
6613    if (this.isLoop()) {
6614      var options = this.options;
6615
6616      if (options.clones) {
6617        return options.clones;
6618      }
6619
6620      var perPage = max.apply(void 0, this.breakpoints.map(function (_ref6) {
6621        var options2 = _ref6[1];
6622        return options2.perPage;
6623      }));
6624      return perPage * ((options.flickMaxPages || 1) + 1);
6625    }
6626
6627    return 0;
6628  };
6629
6630  _proto3.renderArrows = function renderArrows() {
6631    var html = "";
6632    html += "<div class=\"" + this.options.classes.arrows + "\">";
6633    html += this.renderArrow(true);
6634    html += this.renderArrow(false);
6635    html += "</div>";
6636    return html;
6637  };
6638
6639  _proto3.renderArrow = function renderArrow(prev) {
6640    var _this$options = this.options,
6641        classes = _this$options.classes,
6642        i18n = _this$options.i18n;
6643    var attrs = {
6644      class: classes.arrow + " " + (prev ? classes.prev : classes.next),
6645      type: "button",
6646      ariaLabel: prev ? i18n.prev : i18n.next
6647    };
6648    return "<button " + this.buildAttrs(attrs) + "><svg xmlns=\"" + XML_NAME_SPACE + "\" viewBox=\"0 0 " + SIZE + " " + SIZE + "\" width=\"" + SIZE + "\" height=\"" + SIZE + "\"><path d=\"" + (this.options.arrowPath || PATH) + "\" /></svg></button>";
6649  };
6650
6651  _proto3.html = function html() {
6652    var _this$config = this.config,
6653        rootClass = _this$config.rootClass,
6654        listTag = _this$config.listTag,
6655        arrows = _this$config.arrows,
6656        beforeTrack = _this$config.beforeTrack,
6657        afterTrack = _this$config.afterTrack,
6658        slider = _this$config.slider,
6659        beforeSlider = _this$config.beforeSlider,
6660        afterSlider = _this$config.afterSlider;
6661    var html = "";
6662    html += "<div id=\"" + this.id + "\" class=\"" + this.buildClasses() + " " + (rootClass || "") + "\">";
6663    html += "<style>" + this.Style.build() + "</style>";
6664
6665    if (slider) {
6666      html += beforeSlider || "";
6667      html += "<div class=\"splide__slider\">";
6668    }
6669
6670    html += beforeTrack || "";
6671
6672    if (arrows) {
6673      html += this.renderArrows();
6674    }
6675
6676    html += "<div class=\"splide__track\">";
6677    html += "<" + listTag + " class=\"splide__list\">";
6678    html += this.renderSlides();
6679    html += "</" + listTag + ">";
6680    html += "</div>";
6681    html += afterTrack || "";
6682
6683    if (slider) {
6684      html += "</div>";
6685      html += afterSlider || "";
6686    }
6687
6688    html += "</div>";
6689    return html;
6690  };
6691
6692  return SplideRenderer;
6693}();
6694
6695
6696
6697
6698/***/ }),
6699
6700/***/ "./src/js/app.js":
6701/*!***********************!*\
6702  !*** ./src/js/app.js ***!
6703  \***********************/
6704/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6705
6706__webpack_require__.r(__webpack_exports__);
6707/* harmony import */ var _header_opener_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./header-opener.js */ "./src/js/header-opener.js");
6708/* harmony import */ var _testimonials_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./testimonials.js */ "./src/js/testimonials.js");
6709/* harmony import */ var _progress_stars_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./progress-stars.js */ "./src/js/progress-stars.js");
6710/* harmony import */ var bootstrap__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! bootstrap */ "./node_modules/bootstrap/dist/js/bootstrap.esm.js");
6711/* harmony import */ var _swiper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./swiper.js */ "./src/js/swiper.js");
6712/**
6713 * Main app
6714 *
6715 */
6716
6717
6718
6719function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
6720function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
6721function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
6722function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6723function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
6724function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6725function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6726function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6727function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6728function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6729function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6730function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6731
6732
6733
6734
6735
6736var App = /*#__PURE__*/function () {
6737  function App() {
6738    _classCallCheck(this, App);
6739    this.init_menu();
6740    this.init_custom_events();
6741    this.init_popovers();
6742    var header_opener = new _header_opener_js__WEBPACK_IMPORTED_MODULE_0__.HeaderOpener();
6743    var testimonial = new _testimonials_js__WEBPACK_IMPORTED_MODULE_1__.Testimonial();
6744    var progress_stars = new _progress_stars_js__WEBPACK_IMPORTED_MODULE_2__.ProgressStars();
6745    var swiper_controls = new _swiper_js__WEBPACK_IMPORTED_MODULE_4__.SwiperControls();
6746  }
6747
6748  /**
6749   * Add hover to menu dropdowns
6750   * 
6751   */
6752  return _createClass(App, [{
6753    key: "init_menu",
6754    value: function init_menu() {
6755      var _document$querySelect;
6756      (_document$querySelect = document.querySelectorAll('header ul.navbar-nav li.dropdown')) === null || _document$querySelect === void 0 || _document$querySelect.forEach(function (item) {
6757        item.addEventListener('mouseenter', function () {
6758          if (window.innerWidth >= 992) {
6759            item.lastElementChild.classList.add('show');
6760          }
6761        });
6762        item.addEventListener('mouseleave', function () {
6763          if (window.innerWidth >= 992) {
6764            item.lastElementChild.classList.remove('show');
6765          }
6766        });
6767        item.addEventListener('click', function () {
6768          if (window.innerWidth < 992) {
6769            item.lastElementChild.toggle();
6770          }
6771        });
6772      });
6773    }
6774
6775    /**
6776     * Init custom events
6777     * 
6778     */
6779  }, {
6780    key: "init_custom_events",
6781    value: function init_custom_events() {
6782      window.dataLayer = window.dataLayer || [];
6783      var progress_bar = document.querySelector('.progress-bar');
6784
6785      // Toggle the form progress bar
6786      document.addEventListener('form:stepChange', function (e) {
6787        var _e$detail, _e$detail2;
6788        console.log('form:stepChange');
6789        console.log(e);
6790        if (((_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.form_details.nextStep) == 'contact-step') {
6791          progress_bar === null || progress_bar === void 0 || progress_bar.setAttribute('style', 'width: 50%');
6792        }
6793        if (((_e$detail2 = e.detail) === null || _e$detail2 === void 0 ? void 0 : _e$detail2.form_details.nextStep) == 'address-step') {
6794          progress_bar === null || progress_bar === void 0 || progress_bar.setAttribute('style', 'width: 80%');
6795        }
6796      });
6797
6798      // Fire dataLayer events
6799      document.addEventListener('form:aftersubmit', function (e) {
6800        console.log(e);
6801        if (e && e.detail.form_details && e.detail.response) {
6802          var form_details = e.detail.form_details;
6803          var response = e.detail.response;
6804          if (!response.status || response.status == 200) {
6805            // Step 1 - Mailer Code
6806            if (form_details.leadAction == 'offer_code') {
6807              window.dataLayer.push({
6808                event: "mailer_code",
6809                lead_id: response.uuid
6810              });
6811            }
6812
6813            // Step 2 - Debt Amount
6814            if (form_details.currentStep == 'debt-step') {
6815              window.dataLayer.push({
6816                event: "leadDebtAmount",
6817                debt: response.debt
6818              });
6819            }
6820            if (form_details.currentStep == 'contact-step') {
6821              window.dataLayer.push({
6822                event: "leadInfo",
6823                lead_id: response.uuid
6824              });
6825            }
6826            if (form_details.currentStep == 'zip-step') {
6827              window.dataLayer.push({
6828                event: "zipcode",
6829                zip: response.zip
6830              });
6831            }
6832            if (form_details.isCompleted) {
6833              window.dataLayer.push({
6834                event: "leadGenerated",
6835                lead_id: response.uuid,
6836                firstName: response.firstName,
6837                lastName: response.lastName,
6838                phoneNumber: response.phone,
6839                leadStatus: response.quality,
6840                email: response.email,
6841                city: response.city,
6842                zip: response.zip,
6843                debt_amount: response.debt,
6844                credit_pull: response.debtCreditReport ? parseFloat(response.debtCreditReport) : 0.00
6845              });
6846            }
6847          }
6848        }
6849      });
6850    }
6851  }, {
6852    key: "init_popovers",
6853    value: function init_popovers() {
6854      window.Popover = bootstrap__WEBPACK_IMPORTED_MODULE_3__.Popover;
6855      var popoverTriggerList = document.querySelectorAll('[data-bs-toggle="popover"]');
6856      var popoverList = _toConsumableArray(popoverTriggerList).map(function (popoverTriggerEl) {
6857        return new bootstrap__WEBPACK_IMPORTED_MODULE_3__.Popover(popoverTriggerEl, {
6858          html: true,
6859          sanitize: false
6860        });
6861      });
6862    }
6863  }]);
6864}();
6865var app = new App();
6866
6867/***/ }),
6868
6869/***/ "./src/js/header-opener.js":
6870/*!*********************************!*\
6871  !*** ./src/js/header-opener.js ***!
6872  \*********************************/
6873/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6874
6875__webpack_require__.r(__webpack_exports__);
6876/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6877/* harmony export */   HeaderOpener: function() { return /* binding */ HeaderOpener; }
6878/* harmony export */ });
6879/**
6880 * Header Opener
6881 * 
6882 */
6883
6884
6885function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
6886function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6887function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6888function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6889function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6890function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6891function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6892var HeaderOpener = /*#__PURE__*/function () {
6893  function HeaderOpener() {
6894    _classCallCheck(this, HeaderOpener);
6895    this.init();
6896  }
6897  return _createClass(HeaderOpener, [{
6898    key: "init",
6899    value: function init() {
6900      var _this = this;
6901      if (!HeaderOpener.wrapper) return;
6902      HeaderOpener.wrapper.forEach(function (opener) {
6903        var imgOpener = opener.querySelector("#img-opener");
6904        var closer = opener.querySelector("#closer");
6905        _this.add_listeners(opener, imgOpener, closer);
6906      });
6907    }
6908  }, {
6909    key: "add_listeners",
6910    value: function add_listeners(opener, imgOpener, closer) {
6911      imgOpener.addEventListener('click', function () {
6912        opener.classList.add('active');
6913      });
6914      closer.addEventListener('click', function () {
6915        opener.classList.remove('active');
6916      });
6917    }
6918  }]);
6919}();
6920/**
6921 * Wrapper
6922 * 
6923 * @var object
6924 */
6925_defineProperty(HeaderOpener, "wrapper", document.querySelectorAll("header > .container > .opener"));
6926
6927/***/ }),
6928
6929/***/ "./src/js/progress-stars.js":
6930/*!**********************************!*\
6931  !*** ./src/js/progress-stars.js ***!
6932  \**********************************/
6933/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6934
6935__webpack_require__.r(__webpack_exports__);
6936/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6937/* harmony export */   ProgressStars: function() { return /* binding */ ProgressStars; }
6938/* harmony export */ });
6939/**
6940 * Progress Stars
6941 * 
6942 */
6943
6944
6945function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
6946function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6947function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
6948function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
6949function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6950function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6951var ProgressStars = /*#__PURE__*/function () {
6952  function ProgressStars() {
6953    _classCallCheck(this, ProgressStars);
6954    this.init();
6955  }
6956  return _createClass(ProgressStars, [{
6957    key: "init",
6958    value: function init() {
6959      var progress_stars = document.querySelectorAll('.progress-stars');
6960      progress_stars === null || progress_stars === void 0 || progress_stars.forEach(function (progress_star, key) {
6961        var _progress_star$getAtt, _progress_star$getAtt2;
6962        var value = progress_star.getAttribute('data-value');
6963        var fillColor = progress_star.getAttribute('data-fill-color');
6964        var strokeColor = (_progress_star$getAtt = progress_star.getAttribute('data-stroke-color')) !== null && _progress_star$getAtt !== void 0 ? _progress_star$getAtt : '';
6965        var emptyColor = progress_star.getAttribute('data-empty-color');
6966        var size = (_progress_star$getAtt2 = progress_star.getAttribute('data-size')) !== null && _progress_star$getAtt2 !== void 0 ? _progress_star$getAtt2 : '20';
6967        var stars = [1, 2, 3, 4, 5].map(function (i) {
6968          // Default is filled star
6969          var offset = '100';
6970          if (i - 1 >= value) {
6971            offset = 0;
6972          } else if (value < i) {
6973            offset = Math.floor(Math.abs(i - value - 1) * 100);
6974          }
6975          return "<svg width=\"".concat(size, "\" height=\"").concat(size, "\" viewBox=\"0 0 20 20\" stroke=\"").concat(strokeColor, "\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n          <defs>\n            <linearGradient id=\"grad").concat(key, "-").concat(i, "\">\n              <stop offset=\"").concat(offset, "%\" stop-color=\"").concat(fillColor, "\"/>\n              <stop offset=\"").concat(offset, "%\" stop-color=\"").concat(emptyColor, "\"/>\n            </linearGradient>\n          </defs>\n          <path d=\"M9.99982 0.954895L12.9387 6.90981L19.5104 7.86473L14.7551 12.5L15.8777 19.0451L9.99982 15.9549L4.12197 19.0451L5.24454 12.5L0.489258 7.86473L7.0609 6.90981L9.99982 0.954895Z\" fill=\"url(#grad").concat(key, "-").concat(i, ")\"/>\n        </svg>");
6976        }).join('');
6977        progress_star.innerHTML = stars;
6978      });
6979    }
6980  }]);
6981}();
6982
6983/***/ }),
6984
6985/***/ "./src/js/swiper.js":
6986/*!**************************!*\
6987  !*** ./src/js/swiper.js ***!
6988  \**************************/
6989/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
6990
6991__webpack_require__.r(__webpack_exports__);
6992/* harmony export */ __webpack_require__.d(__webpack_exports__, {
6993/* harmony export */   SwiperControls: function() { return /* binding */ SwiperControls; }
6994/* harmony export */ });
6995/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.mjs");
6996/* harmony import */ var swiper_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/modules */ "./node_modules/swiper/modules/index.mjs");
6997/**
6998 * Swiper
6999 */
7000
7001
7002
7003function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7004function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7005function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7006function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7007function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7008function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7009
7010
7011var SwiperControls = /*#__PURE__*/_createClass(
7012/**
7013 * Constructor 
7014 */
7015function SwiperControls() {
7016  _classCallCheck(this, SwiperControls);
7017  window.addEventListener('load', function () {
7018    document.querySelectorAll('.swiper').forEach(function (item) {
7019      var _item$dataset$slidesT, _item$dataset$Mobiles;
7020      var loop = item.dataset.loop === 'true' ? true : false;
7021      var slides = (_item$dataset$slidesT = item.dataset.slidesToShow) !== null && _item$dataset$slidesT !== void 0 ? _item$dataset$slidesT : 1;
7022      var mobileSlides = (_item$dataset$Mobiles = item.dataset.MobileslidesToShow) !== null && _item$dataset$Mobiles !== void 0 ? _item$dataset$Mobiles : 1;
7023      new swiper__WEBPACK_IMPORTED_MODULE_0__["default"](item, {
7024        modules: [swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Navigation, swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Pagination, swiper_modules__WEBPACK_IMPORTED_MODULE_1__.Autoplay],
7025        slidesPerView: mobileSlides,
7026        spaceBetween: 20,
7027        loop: loop,
7028        navigation: {
7029          nextEl: '.swiper-button-next',
7030          prevEl: '.swiper-button-prev'
7031        },
7032        pagination: {
7033          el: '.swiper-pagination',
7034          type: 'bullets',
7035          clickable: true
7036        },
7037        breakpoints: {
7038          768: {
7039            slidesPerView: slides
7040          }
7041        }
7042      });
7043    });
7044  });
7045});
7046
7047/***/ }),
7048
7049/***/ "./src/js/testimonials.js":
7050/*!********************************!*\
7051  !*** ./src/js/testimonials.js ***!
7052  \********************************/
7053/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7054
7055__webpack_require__.r(__webpack_exports__);
7056/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7057/* harmony export */   Testimonial: function() { return /* binding */ Testimonial; }
7058/* harmony export */ });
7059/* harmony import */ var _splidejs_splide__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @splidejs/splide */ "./node_modules/@splidejs/splide/dist/js/splide.esm.js");
7060/**
7061 * Testimonials
7062 * 
7063 */
7064
7065
7066function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
7067function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7068function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7069function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
7070function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
7071function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7072function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7073
7074var Testimonial = /*#__PURE__*/function () {
7075  function Testimonial() {
7076    _classCallCheck(this, Testimonial);
7077    this.init();
7078  }
7079  return _createClass(Testimonial, [{
7080    key: "init",
7081    value: function init() {
7082      if (!Testimonial.wrapper) return;
7083      Testimonial.wrapper.forEach(function (slider) {
7084        var splide = new _splidejs_splide__WEBPACK_IMPORTED_MODULE_0__["default"](slider, {
7085          type: 'loop',
7086          arrows: false,
7087          perPage: '3',
7088          width: '100%',
7089          gap: '1rem',
7090          pagination: true,
7091          breakpoints: {
7092            1024: {
7093              perPage: '2'
7094            },
7095            768: {
7096              perPage: '1',
7097              padding: {
7098                left: 0,
7099                right: 50
7100              }
7101            }
7102          }
7103        });
7104        splide.mount();
7105      });
7106    }
7107  }]);
7108}();
7109/**
7110 * Wrapper
7111 * 
7112 * @var object
7113 */
7114_defineProperty(Testimonial, "wrapper", document.querySelectorAll("section.splide"));
7115
7116/***/ }),
7117
vendor: 137,551 bytes, lines 7118-11591
7118/***/ "./node_modules/bootstrap/dist/js/bootstrap.esm.js":
7119/*!*********************************************************!*\
7120  !*** ./node_modules/bootstrap/dist/js/bootstrap.esm.js ***!
7121  \*********************************************************/
7122/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
7123
7124__webpack_require__.r(__webpack_exports__);
7125/* harmony export */ __webpack_require__.d(__webpack_exports__, {
7126/* harmony export */   Alert: function() { return /* binding */ Alert; },
7127/* harmony export */   Button: function() { return /* binding */ Button; },
7128/* harmony export */   Carousel: function() { return /* binding */ Carousel; },
7129/* harmony export */   Collapse: function() { return /* binding */ Collapse; },
7130/* harmony export */   Dropdown: function() { return /* binding */ Dropdown; },
7131/* harmony export */   Modal: function() { return /* binding */ Modal; },
7132/* harmony export */   Offcanvas: function() { return /* binding */ Offcanvas; },
7133/* harmony export */   Popover: function() { return /* binding */ Popover; },
7134/* harmony export */   ScrollSpy: function() { return /* binding */ ScrollSpy; },
7135/* harmony export */   Tab: function() { return /* binding */ Tab; },
7136/* harmony export */   Toast: function() { return /* binding */ Toast; },
7137/* harmony export */   Tooltip: function() { return /* binding */ Tooltip; }
7138/* harmony export */ });
7139/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/index.js");
7140/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/popper.js");
7141/*!
7142  * Bootstrap v5.3.3 (https://getbootstrap.com/)
7143  * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
7144  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7145  */
7146
7147
7148/**
7149 * --------------------------------------------------------------------------
7150 * Bootstrap dom/data.js
7151 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7152 * --------------------------------------------------------------------------
7153 */
7154
7155/**
7156 * Constants
7157 */
7158
7159const elementMap = new Map();
7160const Data = {
7161  set(element, key, instance) {
7162    if (!elementMap.has(element)) {
7163      elementMap.set(element, new Map());
7164    }
7165    const instanceMap = elementMap.get(element);
7166
7167    // make it clear we only want one instance per element
7168    // can be removed later when multiple key/instances are fine to be used
7169    if (!instanceMap.has(key) && instanceMap.size !== 0) {
7170      // eslint-disable-next-line no-console
7171      console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`);
7172      return;
7173    }
7174    instanceMap.set(key, instance);
7175  },
7176  get(element, key) {
7177    if (elementMap.has(element)) {
7178      return elementMap.get(element).get(key) || null;
7179    }
7180    return null;
7181  },
7182  remove(element, key) {
7183    if (!elementMap.has(element)) {
7184      return;
7185    }
7186    const instanceMap = elementMap.get(element);
7187    instanceMap.delete(key);
7188
7189    // free up element references if there are no instances left for an element
7190    if (instanceMap.size === 0) {
7191      elementMap.delete(element);
7192    }
7193  }
7194};
7195
7196/**
7197 * --------------------------------------------------------------------------
7198 * Bootstrap util/index.js
7199 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7200 * --------------------------------------------------------------------------
7201 */
7202
7203const MAX_UID = 1000000;
7204const MILLISECONDS_MULTIPLIER = 1000;
7205const TRANSITION_END = 'transitionend';
7206
7207/**
7208 * Properly escape IDs selectors to handle weird IDs
7209 * @param {string} selector
7210 * @returns {string}
7211 */
7212const parseSelector = selector => {
7213  if (selector && window.CSS && window.CSS.escape) {
7214    // document.querySelector needs escaping to handle IDs (html5+) containing for instance /
7215    selector = selector.replace(/#([^\s"#']+)/g, (match, id) => `#${CSS.escape(id)}`);
7216  }
7217  return selector;
7218};
7219
7220// Shout-out Angus Croll (https://goo.gl/pxwQGp)
7221const toType = object => {
7222  if (object === null || object === undefined) {
7223    return `${object}`;
7224  }
7225  return Object.prototype.toString.call(object).match(/\s([a-z]+)/i)[1].toLowerCase();
7226};
7227
7228/**
7229 * Public Util API
7230 */
7231
7232const getUID = prefix => {
7233  do {
7234    prefix += Math.floor(Math.random() * MAX_UID);
7235  } while (document.getElementById(prefix));
7236  return prefix;
7237};
7238const getTransitionDurationFromElement = element => {
7239  if (!element) {
7240    return 0;
7241  }
7242
7243  // Get transition-duration of the element
7244  let {
7245    transitionDuration,
7246    transitionDelay
7247  } = window.getComputedStyle(element);
7248  const floatTransitionDuration = Number.parseFloat(transitionDuration);
7249  const floatTransitionDelay = Number.parseFloat(transitionDelay);
7250
7251  // Return 0 if element or transition duration is not found
7252  if (!floatTransitionDuration && !floatTransitionDelay) {
7253    return 0;
7254  }
7255
7256  // If multiple durations are defined, take the first
7257  transitionDuration = transitionDuration.split(',')[0];
7258  transitionDelay = transitionDelay.split(',')[0];
7259  return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
7260};
7261const triggerTransitionEnd = element => {
7262  element.dispatchEvent(new Event(TRANSITION_END));
7263};
7264const isElement = object => {
7265  if (!object || typeof object !== 'object') {
7266    return false;
7267  }
7268  if (typeof object.jquery !== 'undefined') {
7269    object = object[0];
7270  }
7271  return typeof object.nodeType !== 'undefined';
7272};
7273const getElement = object => {
7274  // it's a jQuery object or a node element
7275  if (isElement(object)) {
7276    return object.jquery ? object[0] : object;
7277  }
7278  if (typeof object === 'string' && object.length > 0) {
7279    return document.querySelector(parseSelector(object));
7280  }
7281  return null;
7282};
7283const isVisible = element => {
7284  if (!isElement(element) || element.getClientRects().length === 0) {
7285    return false;
7286  }
7287  const elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible';
7288  // Handle `details` element as its content may falsie appear visible when it is closed
7289  const closedDetails = element.closest('details:not([open])');
7290  if (!closedDetails) {
7291    return elementIsVisible;
7292  }
7293  if (closedDetails !== element) {
7294    const summary = element.closest('summary');
7295    if (summary && summary.parentNode !== closedDetails) {
7296      return false;
7297    }
7298    if (summary === null) {
7299      return false;
7300    }
7301  }
7302  return elementIsVisible;
7303};
7304const isDisabled = element => {
7305  if (!element || element.nodeType !== Node.ELEMENT_NODE) {
7306    return true;
7307  }
7308  if (element.classList.contains('disabled')) {
7309    return true;
7310  }
7311  if (typeof element.disabled !== 'undefined') {
7312    return element.disabled;
7313  }
7314  return element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false';
7315};
7316const findShadowRoot = element => {
7317  if (!document.documentElement.attachShadow) {
7318    return null;
7319  }
7320
7321  // Can find the shadow root otherwise it'll return the document
7322  if (typeof element.getRootNode === 'function') {
7323    const root = element.getRootNode();
7324    return root instanceof ShadowRoot ? root : null;
7325  }
7326  if (element instanceof ShadowRoot) {
7327    return element;
7328  }
7329
7330  // when we don't find a shadow root
7331  if (!element.parentNode) {
7332    return null;
7333  }
7334  return findShadowRoot(element.parentNode);
7335};
7336const noop = () => {};
7337
7338/**
7339 * Trick to restart an element's animation
7340 *
7341 * @param {HTMLElement} element
7342 * @return void
7343 *
7344 * @see https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation
7345 */
7346const reflow = element => {
7347  element.offsetHeight; // eslint-disable-line no-unused-expressions
7348};
7349const getjQuery = () => {
7350  if (window.jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {
7351    return window.jQuery;
7352  }
7353  return null;
7354};
7355const DOMContentLoadedCallbacks = [];
7356const onDOMContentLoaded = callback => {
7357  if (document.readyState === 'loading') {
7358    // add listener on the first call when the document is in loading state
7359    if (!DOMContentLoadedCallbacks.length) {
7360      document.addEventListener('DOMContentLoaded', () => {
7361        for (const callback of DOMContentLoadedCallbacks) {
7362          callback();
7363        }
7364      });
7365    }
7366    DOMContentLoadedCallbacks.push(callback);
7367  } else {
7368    callback();
7369  }
7370};
7371const isRTL = () => document.documentElement.dir === 'rtl';
7372const defineJQueryPlugin = plugin => {
7373  onDOMContentLoaded(() => {
7374    const $ = getjQuery();
7375    /* istanbul ignore if */
7376    if ($) {
7377      const name = plugin.NAME;
7378      const JQUERY_NO_CONFLICT = $.fn[name];
7379      $.fn[name] = plugin.jQueryInterface;
7380      $.fn[name].Constructor = plugin;
7381      $.fn[name].noConflict = () => {
7382        $.fn[name] = JQUERY_NO_CONFLICT;
7383        return plugin.jQueryInterface;
7384      };
7385    }
7386  });
7387};
7388const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => {
7389  return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue;
7390};
7391const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => {
7392  if (!waitForTransition) {
7393    execute(callback);
7394    return;
7395  }
7396  const durationPadding = 5;
7397  const emulatedDuration = getTransitionDurationFromElement(transitionElement) + durationPadding;
7398  let called = false;
7399  const handler = ({
7400    target
7401  }) => {
7402    if (target !== transitionElement) {
7403      return;
7404    }
7405    called = true;
7406    transitionElement.removeEventListener(TRANSITION_END, handler);
7407    execute(callback);
7408  };
7409  transitionElement.addEventListener(TRANSITION_END, handler);
7410  setTimeout(() => {
7411    if (!called) {
7412      triggerTransitionEnd(transitionElement);
7413    }
7414  }, emulatedDuration);
7415};
7416
7417/**
7418 * Return the previous/next element of a list.
7419 *
7420 * @param {array} list    The list of elements
7421 * @param activeElement   The active element
7422 * @param shouldGetNext   Choose to get next or previous element
7423 * @param isCycleAllowed
7424 * @return {Element|elem} The proper element
7425 */
7426const getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {
7427  const listLength = list.length;
7428  let index = list.indexOf(activeElement);
7429
7430  // if the element does not exist in the list return an element
7431  // depending on the direction and if cycle is allowed
7432  if (index === -1) {
7433    return !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0];
7434  }
7435  index += shouldGetNext ? 1 : -1;
7436  if (isCycleAllowed) {
7437    index = (index + listLength) % listLength;
7438  }
7439  return list[Math.max(0, Math.min(index, listLength - 1))];
7440};
7441
7442/**
7443 * --------------------------------------------------------------------------
7444 * Bootstrap dom/event-handler.js
7445 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7446 * --------------------------------------------------------------------------
7447 */
7448
7449
7450/**
7451 * Constants
7452 */
7453
7454const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
7455const stripNameRegex = /\..*/;
7456const stripUidRegex = /::\d+$/;
7457const eventRegistry = {}; // Events storage
7458let uidEvent = 1;
7459const customEvents = {
7460  mouseenter: 'mouseover',
7461  mouseleave: 'mouseout'
7462};
7463const nativeEvents = new Set(['click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu', 'mousewheel', 'DOMMouseScroll', 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend', 'keydown', 'keypress', 'keyup', 'orientationchange', 'touchstart', 'touchmove', 'touchend', 'touchcancel', 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel', 'gesturestart', 'gesturechange', 'gestureend', 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout', 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange', 'error', 'abort', 'scroll']);
7464
7465/**
7466 * Private methods
7467 */
7468
7469function makeEventUid(element, uid) {
7470  return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
7471}
7472function getElementEvents(element) {
7473  const uid = makeEventUid(element);
7474  element.uidEvent = uid;
7475  eventRegistry[uid] = eventRegistry[uid] || {};
7476  return eventRegistry[uid];
7477}
7478function bootstrapHandler(element, fn) {
7479  return function handler(event) {
7480    hydrateObj(event, {
7481      delegateTarget: element
7482    });
7483    if (handler.oneOff) {
7484      EventHandler.off(element, event.type, fn);
7485    }
7486    return fn.apply(element, [event]);
7487  };
7488}
7489function bootstrapDelegationHandler(element, selector, fn) {
7490  return function handler(event) {
7491    const domElements = element.querySelectorAll(selector);
7492    for (let {
7493      target
7494    } = event; target && target !== this; target = target.parentNode) {
7495      for (const domElement of domElements) {
7496        if (domElement !== target) {
7497          continue;
7498        }
7499        hydrateObj(event, {
7500          delegateTarget: target
7501        });
7502        if (handler.oneOff) {
7503          EventHandler.off(element, event.type, selector, fn);
7504        }
7505        return fn.apply(target, [event]);
7506      }
7507    }
7508  };
7509}
7510function findHandler(events, callable, delegationSelector = null) {
7511  return Object.values(events).find(event => event.callable === callable && event.delegationSelector === delegationSelector);
7512}
7513function normalizeParameters(originalTypeEvent, handler, delegationFunction) {
7514  const isDelegated = typeof handler === 'string';
7515  // TODO: tooltip passes `false` instead of selector, so we need to check
7516  const callable = isDelegated ? delegationFunction : handler || delegationFunction;
7517  let typeEvent = getTypeEvent(originalTypeEvent);
7518  if (!nativeEvents.has(typeEvent)) {
7519    typeEvent = originalTypeEvent;
7520  }
7521  return [isDelegated, callable, typeEvent];
7522}
7523function addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {
7524  if (typeof originalTypeEvent !== 'string' || !element) {
7525    return;
7526  }
7527  let [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
7528
7529  // in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position
7530  // this prevents the handler from being dispatched the same way as mouseover or mouseout does
7531  if (originalTypeEvent in customEvents) {
7532    const wrapFunction = fn => {
7533      return function (event) {
7534        if (!event.relatedTarget || event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget)) {
7535          return fn.call(this, event);
7536        }
7537      };
7538    };
7539    callable = wrapFunction(callable);
7540  }
7541  const events = getElementEvents(element);
7542  const handlers = events[typeEvent] || (events[typeEvent] = {});
7543  const previousFunction = findHandler(handlers, callable, isDelegated ? handler : null);
7544  if (previousFunction) {
7545    previousFunction.oneOff = previousFunction.oneOff && oneOff;
7546    return;
7547  }
7548  const uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''));
7549  const fn = isDelegated ? bootstrapDelegationHandler(element, handler, callable) : bootstrapHandler(element, callable);
7550  fn.delegationSelector = isDelegated ? handler : null;
7551  fn.callable = callable;
7552  fn.oneOff = oneOff;
7553  fn.uidEvent = uid;
7554  handlers[uid] = fn;
7555  element.addEventListener(typeEvent, fn, isDelegated);
7556}
7557function removeHandler(element, events, typeEvent, handler, delegationSelector) {
7558  const fn = findHandler(events[typeEvent], handler, delegationSelector);
7559  if (!fn) {
7560    return;
7561  }
7562  element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
7563  delete events[typeEvent][fn.uidEvent];
7564}
7565function removeNamespacedHandlers(element, events, typeEvent, namespace) {
7566  const storeElementEvent = events[typeEvent] || {};
7567  for (const [handlerKey, event] of Object.entries(storeElementEvent)) {
7568    if (handlerKey.includes(namespace)) {
7569      removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
7570    }
7571  }
7572}
7573function getTypeEvent(event) {
7574  // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
7575  event = event.replace(stripNameRegex, '');
7576  return customEvents[event] || event;
7577}
7578const EventHandler = {
7579  on(element, event, handler, delegationFunction) {
7580    addHandler(element, event, handler, delegationFunction, false);
7581  },
7582  one(element, event, handler, delegationFunction) {
7583    addHandler(element, event, handler, delegationFunction, true);
7584  },
7585  off(element, originalTypeEvent, handler, delegationFunction) {
7586    if (typeof originalTypeEvent !== 'string' || !element) {
7587      return;
7588    }
7589    const [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction);
7590    const inNamespace = typeEvent !== originalTypeEvent;
7591    const events = getElementEvents(element);
7592    const storeElementEvent = events[typeEvent] || {};
7593    const isNamespace = originalTypeEvent.startsWith('.');
7594    if (typeof callable !== 'undefined') {
7595      // Simplest case: handler is passed, remove that listener ONLY.
7596      if (!Object.keys(storeElementEvent).length) {
7597        return;
7598      }
7599      removeHandler(element, events, typeEvent, callable, isDelegated ? handler : null);
7600      return;
7601    }
7602    if (isNamespace) {
7603      for (const elementEvent of Object.keys(events)) {
7604        removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1));
7605      }
7606    }
7607    for (const [keyHandlers, event] of Object.entries(storeElementEvent)) {
7608      const handlerKey = keyHandlers.replace(stripUidRegex, '');
7609      if (!inNamespace || originalTypeEvent.includes(handlerKey)) {
7610        removeHandler(element, events, typeEvent, event.callable, event.delegationSelector);
7611      }
7612    }
7613  },
7614  trigger(element, event, args) {
7615    if (typeof event !== 'string' || !element) {
7616      return null;
7617    }
7618    const $ = getjQuery();
7619    const typeEvent = getTypeEvent(event);
7620    const inNamespace = event !== typeEvent;
7621    let jQueryEvent = null;
7622    let bubbles = true;
7623    let nativeDispatch = true;
7624    let defaultPrevented = false;
7625    if (inNamespace && $) {
7626      jQueryEvent = $.Event(event, args);
7627      $(element).trigger(jQueryEvent);
7628      bubbles = !jQueryEvent.isPropagationStopped();
7629      nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
7630      defaultPrevented = jQueryEvent.isDefaultPrevented();
7631    }
7632    const evt = hydrateObj(new Event(event, {
7633      bubbles,
7634      cancelable: true
7635    }), args);
7636    if (defaultPrevented) {
7637      evt.preventDefault();
7638    }
7639    if (nativeDispatch) {
7640      element.dispatchEvent(evt);
7641    }
7642    if (evt.defaultPrevented && jQueryEvent) {
7643      jQueryEvent.preventDefault();
7644    }
7645    return evt;
7646  }
7647};
7648function hydrateObj(obj, meta = {}) {
7649  for (const [key, value] of Object.entries(meta)) {
7650    try {
7651      obj[key] = value;
7652    } catch (_unused) {
7653      Object.defineProperty(obj, key, {
7654        configurable: true,
7655        get() {
7656          return value;
7657        }
7658      });
7659    }
7660  }
7661  return obj;
7662}
7663
7664/**
7665 * --------------------------------------------------------------------------
7666 * Bootstrap dom/manipulator.js
7667 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7668 * --------------------------------------------------------------------------
7669 */
7670
7671function normalizeData(value) {
7672  if (value === 'true') {
7673    return true;
7674  }
7675  if (value === 'false') {
7676    return false;
7677  }
7678  if (value === Number(value).toString()) {
7679    return Number(value);
7680  }
7681  if (value === '' || value === 'null') {
7682    return null;
7683  }
7684  if (typeof value !== 'string') {
7685    return value;
7686  }
7687  try {
7688    return JSON.parse(decodeURIComponent(value));
7689  } catch (_unused) {
7690    return value;
7691  }
7692}
7693function normalizeDataKey(key) {
7694  return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`);
7695}
7696const Manipulator = {
7697  setDataAttribute(element, key, value) {
7698    element.setAttribute(`data-bs-${normalizeDataKey(key)}`, value);
7699  },
7700  removeDataAttribute(element, key) {
7701    element.removeAttribute(`data-bs-${normalizeDataKey(key)}`);
7702  },
7703  getDataAttributes(element) {
7704    if (!element) {
7705      return {};
7706    }
7707    const attributes = {};
7708    const bsKeys = Object.keys(element.dataset).filter(key => key.startsWith('bs') && !key.startsWith('bsConfig'));
7709    for (const key of bsKeys) {
7710      let pureKey = key.replace(/^bs/, '');
7711      pureKey = pureKey.charAt(0).toLowerCase() + pureKey.slice(1, pureKey.length);
7712      attributes[pureKey] = normalizeData(element.dataset[key]);
7713    }
7714    return attributes;
7715  },
7716  getDataAttribute(element, key) {
7717    return normalizeData(element.getAttribute(`data-bs-${normalizeDataKey(key)}`));
7718  }
7719};
7720
7721/**
7722 * --------------------------------------------------------------------------
7723 * Bootstrap util/config.js
7724 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7725 * --------------------------------------------------------------------------
7726 */
7727
7728
7729/**
7730 * Class definition
7731 */
7732
7733class Config {
7734  // Getters
7735  static get Default() {
7736    return {};
7737  }
7738  static get DefaultType() {
7739    return {};
7740  }
7741  static get NAME() {
7742    throw new Error('You have to implement the static method "NAME", for each component!');
7743  }
7744  _getConfig(config) {
7745    config = this._mergeConfigObj(config);
7746    config = this._configAfterMerge(config);
7747    this._typeCheckConfig(config);
7748    return config;
7749  }
7750  _configAfterMerge(config) {
7751    return config;
7752  }
7753  _mergeConfigObj(config, element) {
7754    const jsonConfig = isElement(element) ? Manipulator.getDataAttribute(element, 'config') : {}; // try to parse
7755
7756    return {
7757      ...this.constructor.Default,
7758      ...(typeof jsonConfig === 'object' ? jsonConfig : {}),
7759      ...(isElement(element) ? Manipulator.getDataAttributes(element) : {}),
7760      ...(typeof config === 'object' ? config : {})
7761    };
7762  }
7763  _typeCheckConfig(config, configTypes = this.constructor.DefaultType) {
7764    for (const [property, expectedTypes] of Object.entries(configTypes)) {
7765      const value = config[property];
7766      const valueType = isElement(value) ? 'element' : toType(value);
7767      if (!new RegExp(expectedTypes).test(valueType)) {
7768        throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${property}" provided type "${valueType}" but expected type "${expectedTypes}".`);
7769      }
7770    }
7771  }
7772}
7773
7774/**
7775 * --------------------------------------------------------------------------
7776 * Bootstrap base-component.js
7777 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7778 * --------------------------------------------------------------------------
7779 */
7780
7781
7782/**
7783 * Constants
7784 */
7785
7786const VERSION = '5.3.3';
7787
7788/**
7789 * Class definition
7790 */
7791
7792class BaseComponent extends Config {
7793  constructor(element, config) {
7794    super();
7795    element = getElement(element);
7796    if (!element) {
7797      return;
7798    }
7799    this._element = element;
7800    this._config = this._getConfig(config);
7801    Data.set(this._element, this.constructor.DATA_KEY, this);
7802  }
7803
7804  // Public
7805  dispose() {
7806    Data.remove(this._element, this.constructor.DATA_KEY);
7807    EventHandler.off(this._element, this.constructor.EVENT_KEY);
7808    for (const propertyName of Object.getOwnPropertyNames(this)) {
7809      this[propertyName] = null;
7810    }
7811  }
7812  _queueCallback(callback, element, isAnimated = true) {
7813    executeAfterTransition(callback, element, isAnimated);
7814  }
7815  _getConfig(config) {
7816    config = this._mergeConfigObj(config, this._element);
7817    config = this._configAfterMerge(config);
7818    this._typeCheckConfig(config);
7819    return config;
7820  }
7821
7822  // Static
7823  static getInstance(element) {
7824    return Data.get(getElement(element), this.DATA_KEY);
7825  }
7826  static getOrCreateInstance(element, config = {}) {
7827    return this.getInstance(element) || new this(element, typeof config === 'object' ? config : null);
7828  }
7829  static get VERSION() {
7830    return VERSION;
7831  }
7832  static get DATA_KEY() {
7833    return `bs.${this.NAME}`;
7834  }
7835  static get EVENT_KEY() {
7836    return `.${this.DATA_KEY}`;
7837  }
7838  static eventName(name) {
7839    return `${name}${this.EVENT_KEY}`;
7840  }
7841}
7842
7843/**
7844 * --------------------------------------------------------------------------
7845 * Bootstrap dom/selector-engine.js
7846 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7847 * --------------------------------------------------------------------------
7848 */
7849
7850const getSelector = element => {
7851  let selector = element.getAttribute('data-bs-target');
7852  if (!selector || selector === '#') {
7853    let hrefAttribute = element.getAttribute('href');
7854
7855    // The only valid content that could double as a selector are IDs or classes,
7856    // so everything starting with `#` or `.`. If a "real" URL is used as the selector,
7857    // `document.querySelector` will rightfully complain it is invalid.
7858    // See https://github.com/twbs/bootstrap/issues/32273
7859    if (!hrefAttribute || !hrefAttribute.includes('#') && !hrefAttribute.startsWith('.')) {
7860      return null;
7861    }
7862
7863    // Just in case some CMS puts out a full URL with the anchor appended
7864    if (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {
7865      hrefAttribute = `#${hrefAttribute.split('#')[1]}`;
7866    }
7867    selector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;
7868  }
7869  return selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;
7870};
7871const SelectorEngine = {
7872  find(selector, element = document.documentElement) {
7873    return [].concat(...Element.prototype.querySelectorAll.call(element, selector));
7874  },
7875  findOne(selector, element = document.documentElement) {
7876    return Element.prototype.querySelector.call(element, selector);
7877  },
7878  children(element, selector) {
7879    return [].concat(...element.children).filter(child => child.matches(selector));
7880  },
7881  parents(element, selector) {
7882    const parents = [];
7883    let ancestor = element.parentNode.closest(selector);
7884    while (ancestor) {
7885      parents.push(ancestor);
7886      ancestor = ancestor.parentNode.closest(selector);
7887    }
7888    return parents;
7889  },
7890  prev(element, selector) {
7891    let previous = element.previousElementSibling;
7892    while (previous) {
7893      if (previous.matches(selector)) {
7894        return [previous];
7895      }
7896      previous = previous.previousElementSibling;
7897    }
7898    return [];
7899  },
7900  // TODO: this is now unused; remove later along with prev()
7901  next(element, selector) {
7902    let next = element.nextElementSibling;
7903    while (next) {
7904      if (next.matches(selector)) {
7905        return [next];
7906      }
7907      next = next.nextElementSibling;
7908    }
7909    return [];
7910  },
7911  focusableChildren(element) {
7912    const focusables = ['a', 'button', 'input', 'textarea', 'select', 'details', '[tabindex]', '[contenteditable="true"]'].map(selector => `${selector}:not([tabindex^="-"])`).join(',');
7913    return this.find(focusables, element).filter(el => !isDisabled(el) && isVisible(el));
7914  },
7915  getSelectorFromElement(element) {
7916    const selector = getSelector(element);
7917    if (selector) {
7918      return SelectorEngine.findOne(selector) ? selector : null;
7919    }
7920    return null;
7921  },
7922  getElementFromSelector(element) {
7923    const selector = getSelector(element);
7924    return selector ? SelectorEngine.findOne(selector) : null;
7925  },
7926  getMultipleElementsFromSelector(element) {
7927    const selector = getSelector(element);
7928    return selector ? SelectorEngine.find(selector) : [];
7929  }
7930};
7931
7932/**
7933 * --------------------------------------------------------------------------
7934 * Bootstrap util/component-functions.js
7935 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7936 * --------------------------------------------------------------------------
7937 */
7938
7939const enableDismissTrigger = (component, method = 'hide') => {
7940  const clickEvent = `click.dismiss${component.EVENT_KEY}`;
7941  const name = component.NAME;
7942  EventHandler.on(document, clickEvent, `[data-bs-dismiss="${name}"]`, function (event) {
7943    if (['A', 'AREA'].includes(this.tagName)) {
7944      event.preventDefault();
7945    }
7946    if (isDisabled(this)) {
7947      return;
7948    }
7949    const target = SelectorEngine.getElementFromSelector(this) || this.closest(`.${name}`);
7950    const instance = component.getOrCreateInstance(target);
7951
7952    // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method
7953    instance[method]();
7954  });
7955};
7956
7957/**
7958 * --------------------------------------------------------------------------
7959 * Bootstrap alert.js
7960 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
7961 * --------------------------------------------------------------------------
7962 */
7963
7964
7965/**
7966 * Constants
7967 */
7968
7969const NAME$f = 'alert';
7970const DATA_KEY$a = 'bs.alert';
7971const EVENT_KEY$b = `.${DATA_KEY$a}`;
7972const EVENT_CLOSE = `close${EVENT_KEY$b}`;
7973const EVENT_CLOSED = `closed${EVENT_KEY$b}`;
7974const CLASS_NAME_FADE$5 = 'fade';
7975const CLASS_NAME_SHOW$8 = 'show';
7976
7977/**
7978 * Class definition
7979 */
7980
7981class Alert extends BaseComponent {
7982  // Getters
7983  static get NAME() {
7984    return NAME$f;
7985  }
7986
7987  // Public
7988  close() {
7989    const closeEvent = EventHandler.trigger(this._element, EVENT_CLOSE);
7990    if (closeEvent.defaultPrevented) {
7991      return;
7992    }
7993    this._element.classList.remove(CLASS_NAME_SHOW$8);
7994    const isAnimated = this._element.classList.contains(CLASS_NAME_FADE$5);
7995    this._queueCallback(() => this._destroyElement(), this._element, isAnimated);
7996  }
7997
7998  // Private
7999  _destroyElement() {
8000    this._element.remove();
8001    EventHandler.trigger(this._element, EVENT_CLOSED);
8002    this.dispose();
8003  }
8004
8005  // Static
8006  static jQueryInterface(config) {
8007    return this.each(function () {
8008      const data = Alert.getOrCreateInstance(this);
8009      if (typeof config !== 'string') {
8010        return;
8011      }
8012      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
8013        throw new TypeError(`No method named "${config}"`);
8014      }
8015      data[config](this);
8016    });
8017  }
8018}
8019
8020/**
8021 * Data API implementation
8022 */
8023
8024enableDismissTrigger(Alert, 'close');
8025
8026/**
8027 * jQuery
8028 */
8029
8030defineJQueryPlugin(Alert);
8031
8032/**
8033 * --------------------------------------------------------------------------
8034 * Bootstrap button.js
8035 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8036 * --------------------------------------------------------------------------
8037 */
8038
8039
8040/**
8041 * Constants
8042 */
8043
8044const NAME$e = 'button';
8045const DATA_KEY$9 = 'bs.button';
8046const EVENT_KEY$a = `.${DATA_KEY$9}`;
8047const DATA_API_KEY$6 = '.data-api';
8048const CLASS_NAME_ACTIVE$3 = 'active';
8049const SELECTOR_DATA_TOGGLE$5 = '[data-bs-toggle="button"]';
8050const EVENT_CLICK_DATA_API$6 = `click${EVENT_KEY$a}${DATA_API_KEY$6}`;
8051
8052/**
8053 * Class definition
8054 */
8055
8056class Button extends BaseComponent {
8057  // Getters
8058  static get NAME() {
8059    return NAME$e;
8060  }
8061
8062  // Public
8063  toggle() {
8064    // Toggle class and sync the `aria-pressed` attribute with the return value of the `.toggle()` method
8065    this._element.setAttribute('aria-pressed', this._element.classList.toggle(CLASS_NAME_ACTIVE$3));
8066  }
8067
8068  // Static
8069  static jQueryInterface(config) {
8070    return this.each(function () {
8071      const data = Button.getOrCreateInstance(this);
8072      if (config === 'toggle') {
8073        data[config]();
8074      }
8075    });
8076  }
8077}
8078
8079/**
8080 * Data API implementation
8081 */
8082
8083EventHandler.on(document, EVENT_CLICK_DATA_API$6, SELECTOR_DATA_TOGGLE$5, event => {
8084  event.preventDefault();
8085  const button = event.target.closest(SELECTOR_DATA_TOGGLE$5);
8086  const data = Button.getOrCreateInstance(button);
8087  data.toggle();
8088});
8089
8090/**
8091 * jQuery
8092 */
8093
8094defineJQueryPlugin(Button);
8095
8096/**
8097 * --------------------------------------------------------------------------
8098 * Bootstrap util/swipe.js
8099 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8100 * --------------------------------------------------------------------------
8101 */
8102
8103
8104/**
8105 * Constants
8106 */
8107
8108const NAME$d = 'swipe';
8109const EVENT_KEY$9 = '.bs.swipe';
8110const EVENT_TOUCHSTART = `touchstart${EVENT_KEY$9}`;
8111const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY$9}`;
8112const EVENT_TOUCHEND = `touchend${EVENT_KEY$9}`;
8113const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY$9}`;
8114const EVENT_POINTERUP = `pointerup${EVENT_KEY$9}`;
8115const POINTER_TYPE_TOUCH = 'touch';
8116const POINTER_TYPE_PEN = 'pen';
8117const CLASS_NAME_POINTER_EVENT = 'pointer-event';
8118const SWIPE_THRESHOLD = 40;
8119const Default$c = {
8120  endCallback: null,
8121  leftCallback: null,
8122  rightCallback: null
8123};
8124const DefaultType$c = {
8125  endCallback: '(function|null)',
8126  leftCallback: '(function|null)',
8127  rightCallback: '(function|null)'
8128};
8129
8130/**
8131 * Class definition
8132 */
8133
8134class Swipe extends Config {
8135  constructor(element, config) {
8136    super();
8137    this._element = element;
8138    if (!element || !Swipe.isSupported()) {
8139      return;
8140    }
8141    this._config = this._getConfig(config);
8142    this._deltaX = 0;
8143    this._supportPointerEvents = Boolean(window.PointerEvent);
8144    this._initEvents();
8145  }
8146
8147  // Getters
8148  static get Default() {
8149    return Default$c;
8150  }
8151  static get DefaultType() {
8152    return DefaultType$c;
8153  }
8154  static get NAME() {
8155    return NAME$d;
8156  }
8157
8158  // Public
8159  dispose() {
8160    EventHandler.off(this._element, EVENT_KEY$9);
8161  }
8162
8163  // Private
8164  _start(event) {
8165    if (!this._supportPointerEvents) {
8166      this._deltaX = event.touches[0].clientX;
8167      return;
8168    }
8169    if (this._eventIsPointerPenTouch(event)) {
8170      this._deltaX = event.clientX;
8171    }
8172  }
8173  _end(event) {
8174    if (this._eventIsPointerPenTouch(event)) {
8175      this._deltaX = event.clientX - this._deltaX;
8176    }
8177    this._handleSwipe();
8178    execute(this._config.endCallback);
8179  }
8180  _move(event) {
8181    this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;
8182  }
8183  _handleSwipe() {
8184    const absDeltaX = Math.abs(this._deltaX);
8185    if (absDeltaX <= SWIPE_THRESHOLD) {
8186      return;
8187    }
8188    const direction = absDeltaX / this._deltaX;
8189    this._deltaX = 0;
8190    if (!direction) {
8191      return;
8192    }
8193    execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);
8194  }
8195  _initEvents() {
8196    if (this._supportPointerEvents) {
8197      EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));
8198      EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));
8199      this._element.classList.add(CLASS_NAME_POINTER_EVENT);
8200    } else {
8201      EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));
8202      EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));
8203      EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));
8204    }
8205  }
8206  _eventIsPointerPenTouch(event) {
8207    return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);
8208  }
8209
8210  // Static
8211  static isSupported() {
8212    return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
8213  }
8214}
8215
8216/**
8217 * --------------------------------------------------------------------------
8218 * Bootstrap carousel.js
8219 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8220 * --------------------------------------------------------------------------
8221 */
8222
8223
8224/**
8225 * Constants
8226 */
8227
8228const NAME$c = 'carousel';
8229const DATA_KEY$8 = 'bs.carousel';
8230const EVENT_KEY$8 = `.${DATA_KEY$8}`;
8231const DATA_API_KEY$5 = '.data-api';
8232const ARROW_LEFT_KEY$1 = 'ArrowLeft';
8233const ARROW_RIGHT_KEY$1 = 'ArrowRight';
8234const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
8235
8236const ORDER_NEXT = 'next';
8237const ORDER_PREV = 'prev';
8238const DIRECTION_LEFT = 'left';
8239const DIRECTION_RIGHT = 'right';
8240const EVENT_SLIDE = `slide${EVENT_KEY$8}`;
8241const EVENT_SLID = `slid${EVENT_KEY$8}`;
8242const EVENT_KEYDOWN$1 = `keydown${EVENT_KEY$8}`;
8243const EVENT_MOUSEENTER$1 = `mouseenter${EVENT_KEY$8}`;
8244const EVENT_MOUSELEAVE$1 = `mouseleave${EVENT_KEY$8}`;
8245const EVENT_DRAG_START = `dragstart${EVENT_KEY$8}`;
8246const EVENT_LOAD_DATA_API$3 = `load${EVENT_KEY$8}${DATA_API_KEY$5}`;
8247const EVENT_CLICK_DATA_API$5 = `click${EVENT_KEY$8}${DATA_API_KEY$5}`;
8248const CLASS_NAME_CAROUSEL = 'carousel';
8249const CLASS_NAME_ACTIVE$2 = 'active';
8250const CLASS_NAME_SLIDE = 'slide';
8251const CLASS_NAME_END = 'carousel-item-end';
8252const CLASS_NAME_START = 'carousel-item-start';
8253const CLASS_NAME_NEXT = 'carousel-item-next';
8254const CLASS_NAME_PREV = 'carousel-item-prev';
8255const SELECTOR_ACTIVE = '.active';
8256const SELECTOR_ITEM = '.carousel-item';
8257const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;
8258const SELECTOR_ITEM_IMG = '.carousel-item img';
8259const SELECTOR_INDICATORS = '.carousel-indicators';
8260const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';
8261const SELECTOR_DATA_RIDE = '[data-bs-ride="carousel"]';
8262const KEY_TO_DIRECTION = {
8263  [ARROW_LEFT_KEY$1]: DIRECTION_RIGHT,
8264  [ARROW_RIGHT_KEY$1]: DIRECTION_LEFT
8265};
8266const Default$b = {
8267  interval: 5000,
8268  keyboard: true,
8269  pause: 'hover',
8270  ride: false,
8271  touch: true,
8272  wrap: true
8273};
8274const DefaultType$b = {
8275  interval: '(number|boolean)',
8276  // TODO:v6 remove boolean support
8277  keyboard: 'boolean',
8278  pause: '(string|boolean)',
8279  ride: '(boolean|string)',
8280  touch: 'boolean',
8281  wrap: 'boolean'
8282};
8283
8284/**
8285 * Class definition
8286 */
8287
8288class Carousel extends BaseComponent {
8289  constructor(element, config) {
8290    super(element, config);
8291    this._interval = null;
8292    this._activeElement = null;
8293    this._isSliding = false;
8294    this.touchTimeout = null;
8295    this._swipeHelper = null;
8296    this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
8297    this._addEventListeners();
8298    if (this._config.ride === CLASS_NAME_CAROUSEL) {
8299      this.cycle();
8300    }
8301  }
8302
8303  // Getters
8304  static get Default() {
8305    return Default$b;
8306  }
8307  static get DefaultType() {
8308    return DefaultType$b;
8309  }
8310  static get NAME() {
8311    return NAME$c;
8312  }
8313
8314  // Public
8315  next() {
8316    this._slide(ORDER_NEXT);
8317  }
8318  nextWhenVisible() {
8319    // FIXME TODO use `document.visibilityState`
8320    // Don't call next when the page isn't visible
8321    // or the carousel or its parent isn't visible
8322    if (!document.hidden && isVisible(this._element)) {
8323      this.next();
8324    }
8325  }
8326  prev() {
8327    this._slide(ORDER_PREV);
8328  }
8329  pause() {
8330    if (this._isSliding) {
8331      triggerTransitionEnd(this._element);
8332    }
8333    this._clearInterval();
8334  }
8335  cycle() {
8336    this._clearInterval();
8337    this._updateInterval();
8338    this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);
8339  }
8340  _maybeEnableCycle() {
8341    if (!this._config.ride) {
8342      return;
8343    }
8344    if (this._isSliding) {
8345      EventHandler.one(this._element, EVENT_SLID, () => this.cycle());
8346      return;
8347    }
8348    this.cycle();
8349  }
8350  to(index) {
8351    const items = this._getItems();
8352    if (index > items.length - 1 || index < 0) {
8353      return;
8354    }
8355    if (this._isSliding) {
8356      EventHandler.one(this._element, EVENT_SLID, () => this.to(index));
8357      return;
8358    }
8359    const activeIndex = this._getItemIndex(this._getActive());
8360    if (activeIndex === index) {
8361      return;
8362    }
8363    const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;
8364    this._slide(order, items[index]);
8365  }
8366  dispose() {
8367    if (this._swipeHelper) {
8368      this._swipeHelper.dispose();
8369    }
8370    super.dispose();
8371  }
8372
8373  // Private
8374  _configAfterMerge(config) {
8375    config.defaultInterval = config.interval;
8376    return config;
8377  }
8378  _addEventListeners() {
8379    if (this._config.keyboard) {
8380      EventHandler.on(this._element, EVENT_KEYDOWN$1, event => this._keydown(event));
8381    }
8382    if (this._config.pause === 'hover') {
8383      EventHandler.on(this._element, EVENT_MOUSEENTER$1, () => this.pause());
8384      EventHandler.on(this._element, EVENT_MOUSELEAVE$1, () => this._maybeEnableCycle());
8385    }
8386    if (this._config.touch && Swipe.isSupported()) {
8387      this._addTouchEventListeners();
8388    }
8389  }
8390  _addTouchEventListeners() {
8391    for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {
8392      EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());
8393    }
8394    const endCallBack = () => {
8395      if (this._config.pause !== 'hover') {
8396        return;
8397      }
8398
8399      // If it's a touch-enabled device, mouseenter/leave are fired as
8400      // part of the mouse compatibility events on first tap - the carousel
8401      // would stop cycling until user tapped out of it;
8402      // here, we listen for touchend, explicitly pause the carousel
8403      // (as if it's the second time we tap on it, mouseenter compat event
8404      // is NOT fired) and after a timeout (to allow for mouse compatibility
8405      // events to fire) we explicitly restart cycling
8406
8407      this.pause();
8408      if (this.touchTimeout) {
8409        clearTimeout(this.touchTimeout);
8410      }
8411      this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
8412    };
8413    const swipeConfig = {
8414      leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),
8415      rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),
8416      endCallback: endCallBack
8417    };
8418    this._swipeHelper = new Swipe(this._element, swipeConfig);
8419  }
8420  _keydown(event) {
8421    if (/input|textarea/i.test(event.target.tagName)) {
8422      return;
8423    }
8424    const direction = KEY_TO_DIRECTION[event.key];
8425    if (direction) {
8426      event.preventDefault();
8427      this._slide(this._directionToOrder(direction));
8428    }
8429  }
8430  _getItemIndex(element) {
8431    return this._getItems().indexOf(element);
8432  }
8433  _setActiveIndicatorElement(index) {
8434    if (!this._indicatorsElement) {
8435      return;
8436    }
8437    const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);
8438    activeIndicator.classList.remove(CLASS_NAME_ACTIVE$2);
8439    activeIndicator.removeAttribute('aria-current');
8440    const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to="${index}"]`, this._indicatorsElement);
8441    if (newActiveIndicator) {
8442      newActiveIndicator.classList.add(CLASS_NAME_ACTIVE$2);
8443      newActiveIndicator.setAttribute('aria-current', 'true');
8444    }
8445  }
8446  _updateInterval() {
8447    const element = this._activeElement || this._getActive();
8448    if (!element) {
8449      return;
8450    }
8451    const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);
8452    this._config.interval = elementInterval || this._config.defaultInterval;
8453  }
8454  _slide(order, element = null) {
8455    if (this._isSliding) {
8456      return;
8457    }
8458    const activeElement = this._getActive();
8459    const isNext = order === ORDER_NEXT;
8460    const nextElement = element || getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);
8461    if (nextElement === activeElement) {
8462      return;
8463    }
8464    const nextElementIndex = this._getItemIndex(nextElement);
8465    const triggerEvent = eventName => {
8466      return EventHandler.trigger(this._element, eventName, {
8467        relatedTarget: nextElement,
8468        direction: this._orderToDirection(order),
8469        from: this._getItemIndex(activeElement),
8470        to: nextElementIndex
8471      });
8472    };
8473    const slideEvent = triggerEvent(EVENT_SLIDE);
8474    if (slideEvent.defaultPrevented) {
8475      return;
8476    }
8477    if (!activeElement || !nextElement) {
8478      // Some weirdness is happening, so we bail
8479      // TODO: change tests that use empty divs to avoid this check
8480      return;
8481    }
8482    const isCycling = Boolean(this._interval);
8483    this.pause();
8484    this._isSliding = true;
8485    this._setActiveIndicatorElement(nextElementIndex);
8486    this._activeElement = nextElement;
8487    const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;
8488    const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;
8489    nextElement.classList.add(orderClassName);
8490    reflow(nextElement);
8491    activeElement.classList.add(directionalClassName);
8492    nextElement.classList.add(directionalClassName);
8493    const completeCallBack = () => {
8494      nextElement.classList.remove(directionalClassName, orderClassName);
8495      nextElement.classList.add(CLASS_NAME_ACTIVE$2);
8496      activeElement.classList.remove(CLASS_NAME_ACTIVE$2, orderClassName, directionalClassName);
8497      this._isSliding = false;
8498      triggerEvent(EVENT_SLID);
8499    };
8500    this._queueCallback(completeCallBack, activeElement, this._isAnimated());
8501    if (isCycling) {
8502      this.cycle();
8503    }
8504  }
8505  _isAnimated() {
8506    return this._element.classList.contains(CLASS_NAME_SLIDE);
8507  }
8508  _getActive() {
8509    return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);
8510  }
8511  _getItems() {
8512    return SelectorEngine.find(SELECTOR_ITEM, this._element);
8513  }
8514  _clearInterval() {
8515    if (this._interval) {
8516      clearInterval(this._interval);
8517      this._interval = null;
8518    }
8519  }
8520  _directionToOrder(direction) {
8521    if (isRTL()) {
8522      return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;
8523    }
8524    return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;
8525  }
8526  _orderToDirection(order) {
8527    if (isRTL()) {
8528      return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;
8529    }
8530    return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;
8531  }
8532
8533  // Static
8534  static jQueryInterface(config) {
8535    return this.each(function () {
8536      const data = Carousel.getOrCreateInstance(this, config);
8537      if (typeof config === 'number') {
8538        data.to(config);
8539        return;
8540      }
8541      if (typeof config === 'string') {
8542        if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
8543          throw new TypeError(`No method named "${config}"`);
8544        }
8545        data[config]();
8546      }
8547    });
8548  }
8549}
8550
8551/**
8552 * Data API implementation
8553 */
8554
8555EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_SLIDE, function (event) {
8556  const target = SelectorEngine.getElementFromSelector(this);
8557  if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {
8558    return;
8559  }
8560  event.preventDefault();
8561  const carousel = Carousel.getOrCreateInstance(target);
8562  const slideIndex = this.getAttribute('data-bs-slide-to');
8563  if (slideIndex) {
8564    carousel.to(slideIndex);
8565    carousel._maybeEnableCycle();
8566    return;
8567  }
8568  if (Manipulator.getDataAttribute(this, 'slide') === 'next') {
8569    carousel.next();
8570    carousel._maybeEnableCycle();
8571    return;
8572  }
8573  carousel.prev();
8574  carousel._maybeEnableCycle();
8575});
8576EventHandler.on(window, EVENT_LOAD_DATA_API$3, () => {
8577  const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);
8578  for (const carousel of carousels) {
8579    Carousel.getOrCreateInstance(carousel);
8580  }
8581});
8582
8583/**
8584 * jQuery
8585 */
8586
8587defineJQueryPlugin(Carousel);
8588
8589/**
8590 * --------------------------------------------------------------------------
8591 * Bootstrap collapse.js
8592 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8593 * --------------------------------------------------------------------------
8594 */
8595
8596
8597/**
8598 * Constants
8599 */
8600
8601const NAME$b = 'collapse';
8602const DATA_KEY$7 = 'bs.collapse';
8603const EVENT_KEY$7 = `.${DATA_KEY$7}`;
8604const DATA_API_KEY$4 = '.data-api';
8605const EVENT_SHOW$6 = `show${EVENT_KEY$7}`;
8606const EVENT_SHOWN$6 = `shown${EVENT_KEY$7}`;
8607const EVENT_HIDE$6 = `hide${EVENT_KEY$7}`;
8608const EVENT_HIDDEN$6 = `hidden${EVENT_KEY$7}`;
8609const EVENT_CLICK_DATA_API$4 = `click${EVENT_KEY$7}${DATA_API_KEY$4}`;
8610const CLASS_NAME_SHOW$7 = 'show';
8611const CLASS_NAME_COLLAPSE = 'collapse';
8612const CLASS_NAME_COLLAPSING = 'collapsing';
8613const CLASS_NAME_COLLAPSED = 'collapsed';
8614const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;
8615const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';
8616const WIDTH = 'width';
8617const HEIGHT = 'height';
8618const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';
8619const SELECTOR_DATA_TOGGLE$4 = '[data-bs-toggle="collapse"]';
8620const Default$a = {
8621  parent: null,
8622  toggle: true
8623};
8624const DefaultType$a = {
8625  parent: '(null|element)',
8626  toggle: 'boolean'
8627};
8628
8629/**
8630 * Class definition
8631 */
8632
8633class Collapse extends BaseComponent {
8634  constructor(element, config) {
8635    super(element, config);
8636    this._isTransitioning = false;
8637    this._triggerArray = [];
8638    const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE$4);
8639    for (const elem of toggleList) {
8640      const selector = SelectorEngine.getSelectorFromElement(elem);
8641      const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);
8642      if (selector !== null && filterElement.length) {
8643        this._triggerArray.push(elem);
8644      }
8645    }
8646    this._initializeChildren();
8647    if (!this._config.parent) {
8648      this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());
8649    }
8650    if (this._config.toggle) {
8651      this.toggle();
8652    }
8653  }
8654
8655  // Getters
8656  static get Default() {
8657    return Default$a;
8658  }
8659  static get DefaultType() {
8660    return DefaultType$a;
8661  }
8662  static get NAME() {
8663    return NAME$b;
8664  }
8665
8666  // Public
8667  toggle() {
8668    if (this._isShown()) {
8669      this.hide();
8670    } else {
8671      this.show();
8672    }
8673  }
8674  show() {
8675    if (this._isTransitioning || this._isShown()) {
8676      return;
8677    }
8678    let activeChildren = [];
8679
8680    // find active children
8681    if (this._config.parent) {
8682      activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {
8683        toggle: false
8684      }));
8685    }
8686    if (activeChildren.length && activeChildren[0]._isTransitioning) {
8687      return;
8688    }
8689    const startEvent = EventHandler.trigger(this._element, EVENT_SHOW$6);
8690    if (startEvent.defaultPrevented) {
8691      return;
8692    }
8693    for (const activeInstance of activeChildren) {
8694      activeInstance.hide();
8695    }
8696    const dimension = this._getDimension();
8697    this._element.classList.remove(CLASS_NAME_COLLAPSE);
8698    this._element.classList.add(CLASS_NAME_COLLAPSING);
8699    this._element.style[dimension] = 0;
8700    this._addAriaAndCollapsedClass(this._triggerArray, true);
8701    this._isTransitioning = true;
8702    const complete = () => {
8703      this._isTransitioning = false;
8704      this._element.classList.remove(CLASS_NAME_COLLAPSING);
8705      this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
8706      this._element.style[dimension] = '';
8707      EventHandler.trigger(this._element, EVENT_SHOWN$6);
8708    };
8709    const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
8710    const scrollSize = `scroll${capitalizedDimension}`;
8711    this._queueCallback(complete, this._element, true);
8712    this._element.style[dimension] = `${this._element[scrollSize]}px`;
8713  }
8714  hide() {
8715    if (this._isTransitioning || !this._isShown()) {
8716      return;
8717    }
8718    const startEvent = EventHandler.trigger(this._element, EVENT_HIDE$6);
8719    if (startEvent.defaultPrevented) {
8720      return;
8721    }
8722    const dimension = this._getDimension();
8723    this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
8724    reflow(this._element);
8725    this._element.classList.add(CLASS_NAME_COLLAPSING);
8726    this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW$7);
8727    for (const trigger of this._triggerArray) {
8728      const element = SelectorEngine.getElementFromSelector(trigger);
8729      if (element && !this._isShown(element)) {
8730        this._addAriaAndCollapsedClass([trigger], false);
8731      }
8732    }
8733    this._isTransitioning = true;
8734    const complete = () => {
8735      this._isTransitioning = false;
8736      this._element.classList.remove(CLASS_NAME_COLLAPSING);
8737      this._element.classList.add(CLASS_NAME_COLLAPSE);
8738      EventHandler.trigger(this._element, EVENT_HIDDEN$6);
8739    };
8740    this._element.style[dimension] = '';
8741    this._queueCallback(complete, this._element, true);
8742  }
8743  _isShown(element = this._element) {
8744    return element.classList.contains(CLASS_NAME_SHOW$7);
8745  }
8746
8747  // Private
8748  _configAfterMerge(config) {
8749    config.toggle = Boolean(config.toggle); // Coerce string values
8750    config.parent = getElement(config.parent);
8751    return config;
8752  }
8753  _getDimension() {
8754    return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;
8755  }
8756  _initializeChildren() {
8757    if (!this._config.parent) {
8758      return;
8759    }
8760    const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE$4);
8761    for (const element of children) {
8762      const selected = SelectorEngine.getElementFromSelector(element);
8763      if (selected) {
8764        this._addAriaAndCollapsedClass([element], this._isShown(selected));
8765      }
8766    }
8767  }
8768  _getFirstLevelChildren(selector) {
8769    const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);
8770    // remove children if greater depth
8771    return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));
8772  }
8773  _addAriaAndCollapsedClass(triggerArray, isOpen) {
8774    if (!triggerArray.length) {
8775      return;
8776    }
8777    for (const element of triggerArray) {
8778      element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);
8779      element.setAttribute('aria-expanded', isOpen);
8780    }
8781  }
8782
8783  // Static
8784  static jQueryInterface(config) {
8785    const _config = {};
8786    if (typeof config === 'string' && /show|hide/.test(config)) {
8787      _config.toggle = false;
8788    }
8789    return this.each(function () {
8790      const data = Collapse.getOrCreateInstance(this, _config);
8791      if (typeof config === 'string') {
8792        if (typeof data[config] === 'undefined') {
8793          throw new TypeError(`No method named "${config}"`);
8794        }
8795        data[config]();
8796      }
8797    });
8798  }
8799}
8800
8801/**
8802 * Data API implementation
8803 */
8804
8805EventHandler.on(document, EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$4, function (event) {
8806  // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
8807  if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {
8808    event.preventDefault();
8809  }
8810  for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {
8811    Collapse.getOrCreateInstance(element, {
8812      toggle: false
8813    }).toggle();
8814  }
8815});
8816
8817/**
8818 * jQuery
8819 */
8820
8821defineJQueryPlugin(Collapse);
8822
8823/**
8824 * --------------------------------------------------------------------------
8825 * Bootstrap dropdown.js
8826 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
8827 * --------------------------------------------------------------------------
8828 */
8829
8830
8831/**
8832 * Constants
8833 */
8834
8835const NAME$a = 'dropdown';
8836const DATA_KEY$6 = 'bs.dropdown';
8837const EVENT_KEY$6 = `.${DATA_KEY$6}`;
8838const DATA_API_KEY$3 = '.data-api';
8839const ESCAPE_KEY$2 = 'Escape';
8840const TAB_KEY$1 = 'Tab';
8841const ARROW_UP_KEY$1 = 'ArrowUp';
8842const ARROW_DOWN_KEY$1 = 'ArrowDown';
8843const RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
8844
8845const EVENT_HIDE$5 = `hide${EVENT_KEY$6}`;
8846const EVENT_HIDDEN$5 = `hidden${EVENT_KEY$6}`;
8847const EVENT_SHOW$5 = `show${EVENT_KEY$6}`;
8848const EVENT_SHOWN$5 = `shown${EVENT_KEY$6}`;
8849const EVENT_CLICK_DATA_API$3 = `click${EVENT_KEY$6}${DATA_API_KEY$3}`;
8850const EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY$6}${DATA_API_KEY$3}`;
8851const EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY$6}${DATA_API_KEY$3}`;
8852const CLASS_NAME_SHOW$6 = 'show';
8853const CLASS_NAME_DROPUP = 'dropup';
8854const CLASS_NAME_DROPEND = 'dropend';
8855const CLASS_NAME_DROPSTART = 'dropstart';
8856const CLASS_NAME_DROPUP_CENTER = 'dropup-center';
8857const CLASS_NAME_DROPDOWN_CENTER = 'dropdown-center';
8858const SELECTOR_DATA_TOGGLE$3 = '[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)';
8859const SELECTOR_DATA_TOGGLE_SHOWN = `${SELECTOR_DATA_TOGGLE$3}.${CLASS_NAME_SHOW$6}`;
8860const SELECTOR_MENU = '.dropdown-menu';
8861const SELECTOR_NAVBAR = '.navbar';
8862const SELECTOR_NAVBAR_NAV = '.navbar-nav';
8863const SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';
8864const PLACEMENT_TOP = isRTL() ? 'top-end' : 'top-start';
8865const PLACEMENT_TOPEND = isRTL() ? 'top-start' : 'top-end';
8866const PLACEMENT_BOTTOM = isRTL() ? 'bottom-end' : 'bottom-start';
8867const PLACEMENT_BOTTOMEND = isRTL() ? 'bottom-start' : 'bottom-end';
8868const PLACEMENT_RIGHT = isRTL() ? 'left-start' : 'right-start';
8869const PLACEMENT_LEFT = isRTL() ? 'right-start' : 'left-start';
8870const PLACEMENT_TOPCENTER = 'top';
8871const PLACEMENT_BOTTOMCENTER = 'bottom';
8872const Default$9 = {
8873  autoClose: true,
8874  boundary: 'clippingParents',
8875  display: 'dynamic',
8876  offset: [0, 2],
8877  popperConfig: null,
8878  reference: 'toggle'
8879};
8880const DefaultType$9 = {
8881  autoClose: '(boolean|string)',
8882  boundary: '(string|element)',
8883  display: 'string',
8884  offset: '(array|string|function)',
8885  popperConfig: '(null|object|function)',
8886  reference: '(string|element|object)'
8887};
8888
8889/**
8890 * Class definition
8891 */
8892
8893class Dropdown extends BaseComponent {
8894  constructor(element, config) {
8895    super(element, config);
8896    this._popper = null;
8897    this._parent = this._element.parentNode; // dropdown wrapper
8898    // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
8899    this._menu = SelectorEngine.next(this._element, SELECTOR_MENU)[0] || SelectorEngine.prev(this._element, SELECTOR_MENU)[0] || SelectorEngine.findOne(SELECTOR_MENU, this._parent);
8900    this._inNavbar = this._detectNavbar();
8901  }
8902
8903  // Getters
8904  static get Default() {
8905    return Default$9;
8906  }
8907  static get DefaultType() {
8908    return DefaultType$9;
8909  }
8910  static get NAME() {
8911    return NAME$a;
8912  }
8913
8914  // Public
8915  toggle() {
8916    return this._isShown() ? this.hide() : this.show();
8917  }
8918  show() {
8919    if (isDisabled(this._element) || this._isShown()) {
8920      return;
8921    }
8922    const relatedTarget = {
8923      relatedTarget: this._element
8924    };
8925    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$5, relatedTarget);
8926    if (showEvent.defaultPrevented) {
8927      return;
8928    }
8929    this._createPopper();
8930
8931    // If this is a touch-enabled device we add extra
8932    // empty mouseover listeners to the body's immediate children;
8933    // only needed because of broken event delegation on iOS
8934    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
8935    if ('ontouchstart' in document.documentElement && !this._parent.closest(SELECTOR_NAVBAR_NAV)) {
8936      for (const element of [].concat(...document.body.children)) {
8937        EventHandler.on(element, 'mouseover', noop);
8938      }
8939    }
8940    this._element.focus();
8941    this._element.setAttribute('aria-expanded', true);
8942    this._menu.classList.add(CLASS_NAME_SHOW$6);
8943    this._element.classList.add(CLASS_NAME_SHOW$6);
8944    EventHandler.trigger(this._element, EVENT_SHOWN$5, relatedTarget);
8945  }
8946  hide() {
8947    if (isDisabled(this._element) || !this._isShown()) {
8948      return;
8949    }
8950    const relatedTarget = {
8951      relatedTarget: this._element
8952    };
8953    this._completeHide(relatedTarget);
8954  }
8955  dispose() {
8956    if (this._popper) {
8957      this._popper.destroy();
8958    }
8959    super.dispose();
8960  }
8961  update() {
8962    this._inNavbar = this._detectNavbar();
8963    if (this._popper) {
8964      this._popper.update();
8965    }
8966  }
8967
8968  // Private
8969  _completeHide(relatedTarget) {
8970    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$5, relatedTarget);
8971    if (hideEvent.defaultPrevented) {
8972      return;
8973    }
8974
8975    // If this is a touch-enabled device we remove the extra
8976    // empty mouseover listeners we added for iOS support
8977    if ('ontouchstart' in document.documentElement) {
8978      for (const element of [].concat(...document.body.children)) {
8979        EventHandler.off(element, 'mouseover', noop);
8980      }
8981    }
8982    if (this._popper) {
8983      this._popper.destroy();
8984    }
8985    this._menu.classList.remove(CLASS_NAME_SHOW$6);
8986    this._element.classList.remove(CLASS_NAME_SHOW$6);
8987    this._element.setAttribute('aria-expanded', 'false');
8988    Manipulator.removeDataAttribute(this._menu, 'popper');
8989    EventHandler.trigger(this._element, EVENT_HIDDEN$5, relatedTarget);
8990  }
8991  _getConfig(config) {
8992    config = super._getConfig(config);
8993    if (typeof config.reference === 'object' && !isElement(config.reference) && typeof config.reference.getBoundingClientRect !== 'function') {
8994      // Popper virtual elements require a getBoundingClientRect method
8995      throw new TypeError(`${NAME$a.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);
8996    }
8997    return config;
8998  }
8999  _createPopper() {
9000    if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {
9001      throw new TypeError('Bootstrap\'s dropdowns require Popper (https://popper.js.org)');
9002    }
9003    let referenceElement = this._element;
9004    if (this._config.reference === 'parent') {
9005      referenceElement = this._parent;
9006    } else if (isElement(this._config.reference)) {
9007      referenceElement = getElement(this._config.reference);
9008    } else if (typeof this._config.reference === 'object') {
9009      referenceElement = this._config.reference;
9010    }
9011    const popperConfig = this._getPopperConfig();
9012    this._popper = _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(referenceElement, this._menu, popperConfig);
9013  }
9014  _isShown() {
9015    return this._menu.classList.contains(CLASS_NAME_SHOW$6);
9016  }
9017  _getPlacement() {
9018    const parentDropdown = this._parent;
9019    if (parentDropdown.classList.contains(CLASS_NAME_DROPEND)) {
9020      return PLACEMENT_RIGHT;
9021    }
9022    if (parentDropdown.classList.contains(CLASS_NAME_DROPSTART)) {
9023      return PLACEMENT_LEFT;
9024    }
9025    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP_CENTER)) {
9026      return PLACEMENT_TOPCENTER;
9027    }
9028    if (parentDropdown.classList.contains(CLASS_NAME_DROPDOWN_CENTER)) {
9029      return PLACEMENT_BOTTOMCENTER;
9030    }
9031
9032    // We need to trim the value because custom properties can also include spaces
9033    const isEnd = getComputedStyle(this._menu).getPropertyValue('--bs-position').trim() === 'end';
9034    if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {
9035      return isEnd ? PLACEMENT_TOPEND : PLACEMENT_TOP;
9036    }
9037    return isEnd ? PLACEMENT_BOTTOMEND : PLACEMENT_BOTTOM;
9038  }
9039  _detectNavbar() {
9040    return this._element.closest(SELECTOR_NAVBAR) !== null;
9041  }
9042  _getOffset() {
9043    const {
9044      offset
9045    } = this._config;
9046    if (typeof offset === 'string') {
9047      return offset.split(',').map(value => Number.parseInt(value, 10));
9048    }
9049    if (typeof offset === 'function') {
9050      return popperData => offset(popperData, this._element);
9051    }
9052    return offset;
9053  }
9054  _getPopperConfig() {
9055    const defaultBsPopperConfig = {
9056      placement: this._getPlacement(),
9057      modifiers: [{
9058        name: 'preventOverflow',
9059        options: {
9060          boundary: this._config.boundary
9061        }
9062      }, {
9063        name: 'offset',
9064        options: {
9065          offset: this._getOffset()
9066        }
9067      }]
9068    };
9069
9070    // Disable Popper if we have a static display or Dropdown is in Navbar
9071    if (this._inNavbar || this._config.display === 'static') {
9072      Manipulator.setDataAttribute(this._menu, 'popper', 'static'); // TODO: v6 remove
9073      defaultBsPopperConfig.modifiers = [{
9074        name: 'applyStyles',
9075        enabled: false
9076      }];
9077    }
9078    return {
9079      ...defaultBsPopperConfig,
9080      ...execute(this._config.popperConfig, [defaultBsPopperConfig])
9081    };
9082  }
9083  _selectMenuItem({
9084    key,
9085    target
9086  }) {
9087    const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, this._menu).filter(element => isVisible(element));
9088    if (!items.length) {
9089      return;
9090    }
9091
9092    // if target isn't included in items (e.g. when expanding the dropdown)
9093    // allow cycling to get the last item in case key equals ARROW_UP_KEY
9094    getNextActiveElement(items, target, key === ARROW_DOWN_KEY$1, !items.includes(target)).focus();
9095  }
9096
9097  // Static
9098  static jQueryInterface(config) {
9099    return this.each(function () {
9100      const data = Dropdown.getOrCreateInstance(this, config);
9101      if (typeof config !== 'string') {
9102        return;
9103      }
9104      if (typeof data[config] === 'undefined') {
9105        throw new TypeError(`No method named "${config}"`);
9106      }
9107      data[config]();
9108    });
9109  }
9110  static clearMenus(event) {
9111    if (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY$1) {
9112      return;
9113    }
9114    const openToggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE_SHOWN);
9115    for (const toggle of openToggles) {
9116      const context = Dropdown.getInstance(toggle);
9117      if (!context || context._config.autoClose === false) {
9118        continue;
9119      }
9120      const composedPath = event.composedPath();
9121      const isMenuTarget = composedPath.includes(context._menu);
9122      if (composedPath.includes(context._element) || context._config.autoClose === 'inside' && !isMenuTarget || context._config.autoClose === 'outside' && isMenuTarget) {
9123        continue;
9124      }
9125
9126      // Tab navigation through the dropdown menu or events from contained inputs shouldn't close the menu
9127      if (context._menu.contains(event.target) && (event.type === 'keyup' && event.key === TAB_KEY$1 || /input|select|option|textarea|form/i.test(event.target.tagName))) {
9128        continue;
9129      }
9130      const relatedTarget = {
9131        relatedTarget: context._element
9132      };
9133      if (event.type === 'click') {
9134        relatedTarget.clickEvent = event;
9135      }
9136      context._completeHide(relatedTarget);
9137    }
9138  }
9139  static dataApiKeydownHandler(event) {
9140    // If not an UP | DOWN | ESCAPE key => not a dropdown command
9141    // If input/textarea && if key is other than ESCAPE => not a dropdown command
9142
9143    const isInput = /input|textarea/i.test(event.target.tagName);
9144    const isEscapeEvent = event.key === ESCAPE_KEY$2;
9145    const isUpOrDownEvent = [ARROW_UP_KEY$1, ARROW_DOWN_KEY$1].includes(event.key);
9146    if (!isUpOrDownEvent && !isEscapeEvent) {
9147      return;
9148    }
9149    if (isInput && !isEscapeEvent) {
9150      return;
9151    }
9152    event.preventDefault();
9153
9154    // TODO: v6 revert #37011 & change markup https://getbootstrap.com/docs/5.3/forms/input-group/
9155    const getToggleButton = this.matches(SELECTOR_DATA_TOGGLE$3) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.next(this, SELECTOR_DATA_TOGGLE$3)[0] || SelectorEngine.findOne(SELECTOR_DATA_TOGGLE$3, event.delegateTarget.parentNode);
9156    const instance = Dropdown.getOrCreateInstance(getToggleButton);
9157    if (isUpOrDownEvent) {
9158      event.stopPropagation();
9159      instance.show();
9160      instance._selectMenuItem(event);
9161      return;
9162    }
9163    if (instance._isShown()) {
9164      // else is escape and we check if it is shown
9165      event.stopPropagation();
9166      instance.hide();
9167      getToggleButton.focus();
9168    }
9169  }
9170}
9171
9172/**
9173 * Data API implementation
9174 */
9175
9176EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$3, Dropdown.dataApiKeydownHandler);
9177EventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler);
9178EventHandler.on(document, EVENT_CLICK_DATA_API$3, Dropdown.clearMenus);
9179EventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus);
9180EventHandler.on(document, EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$3, function (event) {
9181  event.preventDefault();
9182  Dropdown.getOrCreateInstance(this).toggle();
9183});
9184
9185/**
9186 * jQuery
9187 */
9188
9189defineJQueryPlugin(Dropdown);
9190
9191/**
9192 * --------------------------------------------------------------------------
9193 * Bootstrap util/backdrop.js
9194 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9195 * --------------------------------------------------------------------------
9196 */
9197
9198
9199/**
9200 * Constants
9201 */
9202
9203const NAME$9 = 'backdrop';
9204const CLASS_NAME_FADE$4 = 'fade';
9205const CLASS_NAME_SHOW$5 = 'show';
9206const EVENT_MOUSEDOWN = `mousedown.bs.${NAME$9}`;
9207const Default$8 = {
9208  className: 'modal-backdrop',
9209  clickCallback: null,
9210  isAnimated: false,
9211  isVisible: true,
9212  // if false, we use the backdrop helper without adding any element to the dom
9213  rootElement: 'body' // give the choice to place backdrop under different elements
9214};
9215const DefaultType$8 = {
9216  className: 'string',
9217  clickCallback: '(function|null)',
9218  isAnimated: 'boolean',
9219  isVisible: 'boolean',
9220  rootElement: '(element|string)'
9221};
9222
9223/**
9224 * Class definition
9225 */
9226
9227class Backdrop extends Config {
9228  constructor(config) {
9229    super();
9230    this._config = this._getConfig(config);
9231    this._isAppended = false;
9232    this._element = null;
9233  }
9234
9235  // Getters
9236  static get Default() {
9237    return Default$8;
9238  }
9239  static get DefaultType() {
9240    return DefaultType$8;
9241  }
9242  static get NAME() {
9243    return NAME$9;
9244  }
9245
9246  // Public
9247  show(callback) {
9248    if (!this._config.isVisible) {
9249      execute(callback);
9250      return;
9251    }
9252    this._append();
9253    const element = this._getElement();
9254    if (this._config.isAnimated) {
9255      reflow(element);
9256    }
9257    element.classList.add(CLASS_NAME_SHOW$5);
9258    this._emulateAnimation(() => {
9259      execute(callback);
9260    });
9261  }
9262  hide(callback) {
9263    if (!this._config.isVisible) {
9264      execute(callback);
9265      return;
9266    }
9267    this._getElement().classList.remove(CLASS_NAME_SHOW$5);
9268    this._emulateAnimation(() => {
9269      this.dispose();
9270      execute(callback);
9271    });
9272  }
9273  dispose() {
9274    if (!this._isAppended) {
9275      return;
9276    }
9277    EventHandler.off(this._element, EVENT_MOUSEDOWN);
9278    this._element.remove();
9279    this._isAppended = false;
9280  }
9281
9282  // Private
9283  _getElement() {
9284    if (!this._element) {
9285      const backdrop = document.createElement('div');
9286      backdrop.className = this._config.className;
9287      if (this._config.isAnimated) {
9288        backdrop.classList.add(CLASS_NAME_FADE$4);
9289      }
9290      this._element = backdrop;
9291    }
9292    return this._element;
9293  }
9294  _configAfterMerge(config) {
9295    // use getElement() with the default "body" to get a fresh Element on each instantiation
9296    config.rootElement = getElement(config.rootElement);
9297    return config;
9298  }
9299  _append() {
9300    if (this._isAppended) {
9301      return;
9302    }
9303    const element = this._getElement();
9304    this._config.rootElement.append(element);
9305    EventHandler.on(element, EVENT_MOUSEDOWN, () => {
9306      execute(this._config.clickCallback);
9307    });
9308    this._isAppended = true;
9309  }
9310  _emulateAnimation(callback) {
9311    executeAfterTransition(callback, this._getElement(), this._config.isAnimated);
9312  }
9313}
9314
9315/**
9316 * --------------------------------------------------------------------------
9317 * Bootstrap util/focustrap.js
9318 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9319 * --------------------------------------------------------------------------
9320 */
9321
9322
9323/**
9324 * Constants
9325 */
9326
9327const NAME$8 = 'focustrap';
9328const DATA_KEY$5 = 'bs.focustrap';
9329const EVENT_KEY$5 = `.${DATA_KEY$5}`;
9330const EVENT_FOCUSIN$2 = `focusin${EVENT_KEY$5}`;
9331const EVENT_KEYDOWN_TAB = `keydown.tab${EVENT_KEY$5}`;
9332const TAB_KEY = 'Tab';
9333const TAB_NAV_FORWARD = 'forward';
9334const TAB_NAV_BACKWARD = 'backward';
9335const Default$7 = {
9336  autofocus: true,
9337  trapElement: null // The element to trap focus inside of
9338};
9339const DefaultType$7 = {
9340  autofocus: 'boolean',
9341  trapElement: 'element'
9342};
9343
9344/**
9345 * Class definition
9346 */
9347
9348class FocusTrap extends Config {
9349  constructor(config) {
9350    super();
9351    this._config = this._getConfig(config);
9352    this._isActive = false;
9353    this._lastTabNavDirection = null;
9354  }
9355
9356  // Getters
9357  static get Default() {
9358    return Default$7;
9359  }
9360  static get DefaultType() {
9361    return DefaultType$7;
9362  }
9363  static get NAME() {
9364    return NAME$8;
9365  }
9366
9367  // Public
9368  activate() {
9369    if (this._isActive) {
9370      return;
9371    }
9372    if (this._config.autofocus) {
9373      this._config.trapElement.focus();
9374    }
9375    EventHandler.off(document, EVENT_KEY$5); // guard against infinite focus loop
9376    EventHandler.on(document, EVENT_FOCUSIN$2, event => this._handleFocusin(event));
9377    EventHandler.on(document, EVENT_KEYDOWN_TAB, event => this._handleKeydown(event));
9378    this._isActive = true;
9379  }
9380  deactivate() {
9381    if (!this._isActive) {
9382      return;
9383    }
9384    this._isActive = false;
9385    EventHandler.off(document, EVENT_KEY$5);
9386  }
9387
9388  // Private
9389  _handleFocusin(event) {
9390    const {
9391      trapElement
9392    } = this._config;
9393    if (event.target === document || event.target === trapElement || trapElement.contains(event.target)) {
9394      return;
9395    }
9396    const elements = SelectorEngine.focusableChildren(trapElement);
9397    if (elements.length === 0) {
9398      trapElement.focus();
9399    } else if (this._lastTabNavDirection === TAB_NAV_BACKWARD) {
9400      elements[elements.length - 1].focus();
9401    } else {
9402      elements[0].focus();
9403    }
9404  }
9405  _handleKeydown(event) {
9406    if (event.key !== TAB_KEY) {
9407      return;
9408    }
9409    this._lastTabNavDirection = event.shiftKey ? TAB_NAV_BACKWARD : TAB_NAV_FORWARD;
9410  }
9411}
9412
9413/**
9414 * --------------------------------------------------------------------------
9415 * Bootstrap util/scrollBar.js
9416 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9417 * --------------------------------------------------------------------------
9418 */
9419
9420
9421/**
9422 * Constants
9423 */
9424
9425const SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';
9426const SELECTOR_STICKY_CONTENT = '.sticky-top';
9427const PROPERTY_PADDING = 'padding-right';
9428const PROPERTY_MARGIN = 'margin-right';
9429
9430/**
9431 * Class definition
9432 */
9433
9434class ScrollBarHelper {
9435  constructor() {
9436    this._element = document.body;
9437  }
9438
9439  // Public
9440  getWidth() {
9441    // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes
9442    const documentWidth = document.documentElement.clientWidth;
9443    return Math.abs(window.innerWidth - documentWidth);
9444  }
9445  hide() {
9446    const width = this.getWidth();
9447    this._disableOverFlow();
9448    // give padding to element to balance the hidden scrollbar width
9449    this._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
9450    // trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth
9451    this._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width);
9452    this._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width);
9453  }
9454  reset() {
9455    this._resetElementAttributes(this._element, 'overflow');
9456    this._resetElementAttributes(this._element, PROPERTY_PADDING);
9457    this._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING);
9458    this._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN);
9459  }
9460  isOverflowing() {
9461    return this.getWidth() > 0;
9462  }
9463
9464  // Private
9465  _disableOverFlow() {
9466    this._saveInitialAttribute(this._element, 'overflow');
9467    this._element.style.overflow = 'hidden';
9468  }
9469  _setElementAttributes(selector, styleProperty, callback) {
9470    const scrollbarWidth = this.getWidth();
9471    const manipulationCallBack = element => {
9472      if (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {
9473        return;
9474      }
9475      this._saveInitialAttribute(element, styleProperty);
9476      const calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty);
9477      element.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`);
9478    };
9479    this._applyManipulationCallback(selector, manipulationCallBack);
9480  }
9481  _saveInitialAttribute(element, styleProperty) {
9482    const actualValue = element.style.getPropertyValue(styleProperty);
9483    if (actualValue) {
9484      Manipulator.setDataAttribute(element, styleProperty, actualValue);
9485    }
9486  }
9487  _resetElementAttributes(selector, styleProperty) {
9488    const manipulationCallBack = element => {
9489      const value = Manipulator.getDataAttribute(element, styleProperty);
9490      // We only want to remove the property if the value is `null`; the value can also be zero
9491      if (value === null) {
9492        element.style.removeProperty(styleProperty);
9493        return;
9494      }
9495      Manipulator.removeDataAttribute(element, styleProperty);
9496      element.style.setProperty(styleProperty, value);
9497    };
9498    this._applyManipulationCallback(selector, manipulationCallBack);
9499  }
9500  _applyManipulationCallback(selector, callBack) {
9501    if (isElement(selector)) {
9502      callBack(selector);
9503      return;
9504    }
9505    for (const sel of SelectorEngine.find(selector, this._element)) {
9506      callBack(sel);
9507    }
9508  }
9509}
9510
9511/**
9512 * --------------------------------------------------------------------------
9513 * Bootstrap modal.js
9514 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9515 * --------------------------------------------------------------------------
9516 */
9517
9518
9519/**
9520 * Constants
9521 */
9522
9523const NAME$7 = 'modal';
9524const DATA_KEY$4 = 'bs.modal';
9525const EVENT_KEY$4 = `.${DATA_KEY$4}`;
9526const DATA_API_KEY$2 = '.data-api';
9527const ESCAPE_KEY$1 = 'Escape';
9528const EVENT_HIDE$4 = `hide${EVENT_KEY$4}`;
9529const EVENT_HIDE_PREVENTED$1 = `hidePrevented${EVENT_KEY$4}`;
9530const EVENT_HIDDEN$4 = `hidden${EVENT_KEY$4}`;
9531const EVENT_SHOW$4 = `show${EVENT_KEY$4}`;
9532const EVENT_SHOWN$4 = `shown${EVENT_KEY$4}`;
9533const EVENT_RESIZE$1 = `resize${EVENT_KEY$4}`;
9534const EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY$4}`;
9535const EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY$4}`;
9536const EVENT_KEYDOWN_DISMISS$1 = `keydown.dismiss${EVENT_KEY$4}`;
9537const EVENT_CLICK_DATA_API$2 = `click${EVENT_KEY$4}${DATA_API_KEY$2}`;
9538const CLASS_NAME_OPEN = 'modal-open';
9539const CLASS_NAME_FADE$3 = 'fade';
9540const CLASS_NAME_SHOW$4 = 'show';
9541const CLASS_NAME_STATIC = 'modal-static';
9542const OPEN_SELECTOR$1 = '.modal.show';
9543const SELECTOR_DIALOG = '.modal-dialog';
9544const SELECTOR_MODAL_BODY = '.modal-body';
9545const SELECTOR_DATA_TOGGLE$2 = '[data-bs-toggle="modal"]';
9546const Default$6 = {
9547  backdrop: true,
9548  focus: true,
9549  keyboard: true
9550};
9551const DefaultType$6 = {
9552  backdrop: '(boolean|string)',
9553  focus: 'boolean',
9554  keyboard: 'boolean'
9555};
9556
9557/**
9558 * Class definition
9559 */
9560
9561class Modal extends BaseComponent {
9562  constructor(element, config) {
9563    super(element, config);
9564    this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, this._element);
9565    this._backdrop = this._initializeBackDrop();
9566    this._focustrap = this._initializeFocusTrap();
9567    this._isShown = false;
9568    this._isTransitioning = false;
9569    this._scrollBar = new ScrollBarHelper();
9570    this._addEventListeners();
9571  }
9572
9573  // Getters
9574  static get Default() {
9575    return Default$6;
9576  }
9577  static get DefaultType() {
9578    return DefaultType$6;
9579  }
9580  static get NAME() {
9581    return NAME$7;
9582  }
9583
9584  // Public
9585  toggle(relatedTarget) {
9586    return this._isShown ? this.hide() : this.show(relatedTarget);
9587  }
9588  show(relatedTarget) {
9589    if (this._isShown || this._isTransitioning) {
9590      return;
9591    }
9592    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$4, {
9593      relatedTarget
9594    });
9595    if (showEvent.defaultPrevented) {
9596      return;
9597    }
9598    this._isShown = true;
9599    this._isTransitioning = true;
9600    this._scrollBar.hide();
9601    document.body.classList.add(CLASS_NAME_OPEN);
9602    this._adjustDialog();
9603    this._backdrop.show(() => this._showElement(relatedTarget));
9604  }
9605  hide() {
9606    if (!this._isShown || this._isTransitioning) {
9607      return;
9608    }
9609    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$4);
9610    if (hideEvent.defaultPrevented) {
9611      return;
9612    }
9613    this._isShown = false;
9614    this._isTransitioning = true;
9615    this._focustrap.deactivate();
9616    this._element.classList.remove(CLASS_NAME_SHOW$4);
9617    this._queueCallback(() => this._hideModal(), this._element, this._isAnimated());
9618  }
9619  dispose() {
9620    EventHandler.off(window, EVENT_KEY$4);
9621    EventHandler.off(this._dialog, EVENT_KEY$4);
9622    this._backdrop.dispose();
9623    this._focustrap.deactivate();
9624    super.dispose();
9625  }
9626  handleUpdate() {
9627    this._adjustDialog();
9628  }
9629
9630  // Private
9631  _initializeBackDrop() {
9632    return new Backdrop({
9633      isVisible: Boolean(this._config.backdrop),
9634      // 'static' option will be translated to true, and booleans will keep their value,
9635      isAnimated: this._isAnimated()
9636    });
9637  }
9638  _initializeFocusTrap() {
9639    return new FocusTrap({
9640      trapElement: this._element
9641    });
9642  }
9643  _showElement(relatedTarget) {
9644    // try to append dynamic modal
9645    if (!document.body.contains(this._element)) {
9646      document.body.append(this._element);
9647    }
9648    this._element.style.display = 'block';
9649    this._element.removeAttribute('aria-hidden');
9650    this._element.setAttribute('aria-modal', true);
9651    this._element.setAttribute('role', 'dialog');
9652    this._element.scrollTop = 0;
9653    const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog);
9654    if (modalBody) {
9655      modalBody.scrollTop = 0;
9656    }
9657    reflow(this._element);
9658    this._element.classList.add(CLASS_NAME_SHOW$4);
9659    const transitionComplete = () => {
9660      if (this._config.focus) {
9661        this._focustrap.activate();
9662      }
9663      this._isTransitioning = false;
9664      EventHandler.trigger(this._element, EVENT_SHOWN$4, {
9665        relatedTarget
9666      });
9667    };
9668    this._queueCallback(transitionComplete, this._dialog, this._isAnimated());
9669  }
9670  _addEventListeners() {
9671    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS$1, event => {
9672      if (event.key !== ESCAPE_KEY$1) {
9673        return;
9674      }
9675      if (this._config.keyboard) {
9676        this.hide();
9677        return;
9678      }
9679      this._triggerBackdropTransition();
9680    });
9681    EventHandler.on(window, EVENT_RESIZE$1, () => {
9682      if (this._isShown && !this._isTransitioning) {
9683        this._adjustDialog();
9684      }
9685    });
9686    EventHandler.on(this._element, EVENT_MOUSEDOWN_DISMISS, event => {
9687      // a bad trick to segregate clicks that may start inside dialog but end outside, and avoid listen to scrollbar clicks
9688      EventHandler.one(this._element, EVENT_CLICK_DISMISS, event2 => {
9689        if (this._element !== event.target || this._element !== event2.target) {
9690          return;
9691        }
9692        if (this._config.backdrop === 'static') {
9693          this._triggerBackdropTransition();
9694          return;
9695        }
9696        if (this._config.backdrop) {
9697          this.hide();
9698        }
9699      });
9700    });
9701  }
9702  _hideModal() {
9703    this._element.style.display = 'none';
9704    this._element.setAttribute('aria-hidden', true);
9705    this._element.removeAttribute('aria-modal');
9706    this._element.removeAttribute('role');
9707    this._isTransitioning = false;
9708    this._backdrop.hide(() => {
9709      document.body.classList.remove(CLASS_NAME_OPEN);
9710      this._resetAdjustments();
9711      this._scrollBar.reset();
9712      EventHandler.trigger(this._element, EVENT_HIDDEN$4);
9713    });
9714  }
9715  _isAnimated() {
9716    return this._element.classList.contains(CLASS_NAME_FADE$3);
9717  }
9718  _triggerBackdropTransition() {
9719    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED$1);
9720    if (hideEvent.defaultPrevented) {
9721      return;
9722    }
9723    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
9724    const initialOverflowY = this._element.style.overflowY;
9725    // return if the following background transition hasn't yet completed
9726    if (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) {
9727      return;
9728    }
9729    if (!isModalOverflowing) {
9730      this._element.style.overflowY = 'hidden';
9731    }
9732    this._element.classList.add(CLASS_NAME_STATIC);
9733    this._queueCallback(() => {
9734      this._element.classList.remove(CLASS_NAME_STATIC);
9735      this._queueCallback(() => {
9736        this._element.style.overflowY = initialOverflowY;
9737      }, this._dialog);
9738    }, this._dialog);
9739    this._element.focus();
9740  }
9741
9742  /**
9743   * The following methods are used to handle overflowing modals
9744   */
9745
9746  _adjustDialog() {
9747    const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
9748    const scrollbarWidth = this._scrollBar.getWidth();
9749    const isBodyOverflowing = scrollbarWidth > 0;
9750    if (isBodyOverflowing && !isModalOverflowing) {
9751      const property = isRTL() ? 'paddingLeft' : 'paddingRight';
9752      this._element.style[property] = `${scrollbarWidth}px`;
9753    }
9754    if (!isBodyOverflowing && isModalOverflowing) {
9755      const property = isRTL() ? 'paddingRight' : 'paddingLeft';
9756      this._element.style[property] = `${scrollbarWidth}px`;
9757    }
9758  }
9759  _resetAdjustments() {
9760    this._element.style.paddingLeft = '';
9761    this._element.style.paddingRight = '';
9762  }
9763
9764  // Static
9765  static jQueryInterface(config, relatedTarget) {
9766    return this.each(function () {
9767      const data = Modal.getOrCreateInstance(this, config);
9768      if (typeof config !== 'string') {
9769        return;
9770      }
9771      if (typeof data[config] === 'undefined') {
9772        throw new TypeError(`No method named "${config}"`);
9773      }
9774      data[config](relatedTarget);
9775    });
9776  }
9777}
9778
9779/**
9780 * Data API implementation
9781 */
9782
9783EventHandler.on(document, EVENT_CLICK_DATA_API$2, SELECTOR_DATA_TOGGLE$2, function (event) {
9784  const target = SelectorEngine.getElementFromSelector(this);
9785  if (['A', 'AREA'].includes(this.tagName)) {
9786    event.preventDefault();
9787  }
9788  EventHandler.one(target, EVENT_SHOW$4, showEvent => {
9789    if (showEvent.defaultPrevented) {
9790      // only register focus restorer if modal will actually get shown
9791      return;
9792    }
9793    EventHandler.one(target, EVENT_HIDDEN$4, () => {
9794      if (isVisible(this)) {
9795        this.focus();
9796      }
9797    });
9798  });
9799
9800  // avoid conflict when clicking modal toggler while another one is open
9801  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR$1);
9802  if (alreadyOpen) {
9803    Modal.getInstance(alreadyOpen).hide();
9804  }
9805  const data = Modal.getOrCreateInstance(target);
9806  data.toggle(this);
9807});
9808enableDismissTrigger(Modal);
9809
9810/**
9811 * jQuery
9812 */
9813
9814defineJQueryPlugin(Modal);
9815
9816/**
9817 * --------------------------------------------------------------------------
9818 * Bootstrap offcanvas.js
9819 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
9820 * --------------------------------------------------------------------------
9821 */
9822
9823
9824/**
9825 * Constants
9826 */
9827
9828const NAME$6 = 'offcanvas';
9829const DATA_KEY$3 = 'bs.offcanvas';
9830const EVENT_KEY$3 = `.${DATA_KEY$3}`;
9831const DATA_API_KEY$1 = '.data-api';
9832const EVENT_LOAD_DATA_API$2 = `load${EVENT_KEY$3}${DATA_API_KEY$1}`;
9833const ESCAPE_KEY = 'Escape';
9834const CLASS_NAME_SHOW$3 = 'show';
9835const CLASS_NAME_SHOWING$1 = 'showing';
9836const CLASS_NAME_HIDING = 'hiding';
9837const CLASS_NAME_BACKDROP = 'offcanvas-backdrop';
9838const OPEN_SELECTOR = '.offcanvas.show';
9839const EVENT_SHOW$3 = `show${EVENT_KEY$3}`;
9840const EVENT_SHOWN$3 = `shown${EVENT_KEY$3}`;
9841const EVENT_HIDE$3 = `hide${EVENT_KEY$3}`;
9842const EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY$3}`;
9843const EVENT_HIDDEN$3 = `hidden${EVENT_KEY$3}`;
9844const EVENT_RESIZE = `resize${EVENT_KEY$3}`;
9845const EVENT_CLICK_DATA_API$1 = `click${EVENT_KEY$3}${DATA_API_KEY$1}`;
9846const EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY$3}`;
9847const SELECTOR_DATA_TOGGLE$1 = '[data-bs-toggle="offcanvas"]';
9848const Default$5 = {
9849  backdrop: true,
9850  keyboard: true,
9851  scroll: false
9852};
9853const DefaultType$5 = {
9854  backdrop: '(boolean|string)',
9855  keyboard: 'boolean',
9856  scroll: 'boolean'
9857};
9858
9859/**
9860 * Class definition
9861 */
9862
9863class Offcanvas extends BaseComponent {
9864  constructor(element, config) {
9865    super(element, config);
9866    this._isShown = false;
9867    this._backdrop = this._initializeBackDrop();
9868    this._focustrap = this._initializeFocusTrap();
9869    this._addEventListeners();
9870  }
9871
9872  // Getters
9873  static get Default() {
9874    return Default$5;
9875  }
9876  static get DefaultType() {
9877    return DefaultType$5;
9878  }
9879  static get NAME() {
9880    return NAME$6;
9881  }
9882
9883  // Public
9884  toggle(relatedTarget) {
9885    return this._isShown ? this.hide() : this.show(relatedTarget);
9886  }
9887  show(relatedTarget) {
9888    if (this._isShown) {
9889      return;
9890    }
9891    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW$3, {
9892      relatedTarget
9893    });
9894    if (showEvent.defaultPrevented) {
9895      return;
9896    }
9897    this._isShown = true;
9898    this._backdrop.show();
9899    if (!this._config.scroll) {
9900      new ScrollBarHelper().hide();
9901    }
9902    this._element.setAttribute('aria-modal', true);
9903    this._element.setAttribute('role', 'dialog');
9904    this._element.classList.add(CLASS_NAME_SHOWING$1);
9905    const completeCallBack = () => {
9906      if (!this._config.scroll || this._config.backdrop) {
9907        this._focustrap.activate();
9908      }
9909      this._element.classList.add(CLASS_NAME_SHOW$3);
9910      this._element.classList.remove(CLASS_NAME_SHOWING$1);
9911      EventHandler.trigger(this._element, EVENT_SHOWN$3, {
9912        relatedTarget
9913      });
9914    };
9915    this._queueCallback(completeCallBack, this._element, true);
9916  }
9917  hide() {
9918    if (!this._isShown) {
9919      return;
9920    }
9921    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE$3);
9922    if (hideEvent.defaultPrevented) {
9923      return;
9924    }
9925    this._focustrap.deactivate();
9926    this._element.blur();
9927    this._isShown = false;
9928    this._element.classList.add(CLASS_NAME_HIDING);
9929    this._backdrop.hide();
9930    const completeCallback = () => {
9931      this._element.classList.remove(CLASS_NAME_SHOW$3, CLASS_NAME_HIDING);
9932      this._element.removeAttribute('aria-modal');
9933      this._element.removeAttribute('role');
9934      if (!this._config.scroll) {
9935        new ScrollBarHelper().reset();
9936      }
9937      EventHandler.trigger(this._element, EVENT_HIDDEN$3);
9938    };
9939    this._queueCallback(completeCallback, this._element, true);
9940  }
9941  dispose() {
9942    this._backdrop.dispose();
9943    this._focustrap.deactivate();
9944    super.dispose();
9945  }
9946
9947  // Private
9948  _initializeBackDrop() {
9949    const clickCallback = () => {
9950      if (this._config.backdrop === 'static') {
9951        EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
9952        return;
9953      }
9954      this.hide();
9955    };
9956
9957    // 'static' option will be translated to true, and booleans will keep their value
9958    const isVisible = Boolean(this._config.backdrop);
9959    return new Backdrop({
9960      className: CLASS_NAME_BACKDROP,
9961      isVisible,
9962      isAnimated: true,
9963      rootElement: this._element.parentNode,
9964      clickCallback: isVisible ? clickCallback : null
9965    });
9966  }
9967  _initializeFocusTrap() {
9968    return new FocusTrap({
9969      trapElement: this._element
9970    });
9971  }
9972  _addEventListeners() {
9973    EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {
9974      if (event.key !== ESCAPE_KEY) {
9975        return;
9976      }
9977      if (this._config.keyboard) {
9978        this.hide();
9979        return;
9980      }
9981      EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED);
9982    });
9983  }
9984
9985  // Static
9986  static jQueryInterface(config) {
9987    return this.each(function () {
9988      const data = Offcanvas.getOrCreateInstance(this, config);
9989      if (typeof config !== 'string') {
9990        return;
9991      }
9992      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
9993        throw new TypeError(`No method named "${config}"`);
9994      }
9995      data[config](this);
9996    });
9997  }
9998}
9999
10000/**
10001 * Data API implementation
10002 */
10003
10004EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE$1, function (event) {
10005  const target = SelectorEngine.getElementFromSelector(this);
10006  if (['A', 'AREA'].includes(this.tagName)) {
10007    event.preventDefault();
10008  }
10009  if (isDisabled(this)) {
10010    return;
10011  }
10012  EventHandler.one(target, EVENT_HIDDEN$3, () => {
10013    // focus on trigger when it is closed
10014    if (isVisible(this)) {
10015      this.focus();
10016    }
10017  });
10018
10019  // avoid conflict when clicking a toggler of an offcanvas, while another is open
10020  const alreadyOpen = SelectorEngine.findOne(OPEN_SELECTOR);
10021  if (alreadyOpen && alreadyOpen !== target) {
10022    Offcanvas.getInstance(alreadyOpen).hide();
10023  }
10024  const data = Offcanvas.getOrCreateInstance(target);
10025  data.toggle(this);
10026});
10027EventHandler.on(window, EVENT_LOAD_DATA_API$2, () => {
10028  for (const selector of SelectorEngine.find(OPEN_SELECTOR)) {
10029    Offcanvas.getOrCreateInstance(selector).show();
10030  }
10031});
10032EventHandler.on(window, EVENT_RESIZE, () => {
10033  for (const element of SelectorEngine.find('[aria-modal][class*=show][class*=offcanvas-]')) {
10034    if (getComputedStyle(element).position !== 'fixed') {
10035      Offcanvas.getOrCreateInstance(element).hide();
10036    }
10037  }
10038});
10039enableDismissTrigger(Offcanvas);
10040
10041/**
10042 * jQuery
10043 */
10044
10045defineJQueryPlugin(Offcanvas);
10046
10047/**
10048 * --------------------------------------------------------------------------
10049 * Bootstrap util/sanitizer.js
10050 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
10051 * --------------------------------------------------------------------------
10052 */
10053
10054// js-docs-start allow-list
10055const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
10056const DefaultAllowlist = {
10057  // Global attributes allowed on any supplied element below.
10058  '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
10059  a: ['target', 'href', 'title', 'rel'],
10060  area: [],
10061  b: [],
10062  br: [],
10063  col: [],
10064  code: [],
10065  dd: [],
10066  div: [],
10067  dl: [],
10068  dt: [],
10069  em: [],
10070  hr: [],
10071  h1: [],
10072  h2: [],
10073  h3: [],
10074  h4: [],
10075  h5: [],
10076  h6: [],
10077  i: [],
10078  img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],
10079  li: [],
10080  ol: [],
10081  p: [],
10082  pre: [],
10083  s: [],
10084  small: [],
10085  span: [],
10086  sub: [],
10087  sup: [],
10088  strong: [],
10089  u: [],
10090  ul: []
10091};
10092// js-docs-end allow-list
10093
10094const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);
10095
10096/**
10097 * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation
10098 * contexts.
10099 *
10100 * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38
10101 */
10102// eslint-disable-next-line unicorn/better-regex
10103const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;
10104const allowedAttribute = (attribute, allowedAttributeList) => {
10105  const attributeName = attribute.nodeName.toLowerCase();
10106  if (allowedAttributeList.includes(attributeName)) {
10107    if (uriAttributes.has(attributeName)) {
10108      return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));
10109    }
10110    return true;
10111  }
10112
10113  // Check if a regular expression validates the attribute.
10114  return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));
10115};
10116function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {
10117  if (!unsafeHtml.length) {
10118    return unsafeHtml;
10119  }
10120  if (sanitizeFunction && typeof sanitizeFunction === 'function') {
10121    return sanitizeFunction(unsafeHtml);
10122  }
10123  const domParser = new window.DOMParser();
10124  const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
10125  const elements = [].concat(...createdDocument.body.querySelectorAll('*'));
10126  for (const element of elements) {
10127    const elementName = element.nodeName.toLowerCase();
10128    if (!Object.keys(allowList).includes(elementName)) {
10129      element.remove();
10130      continue;
10131    }
10132    const attributeList = [].concat(...element.attributes);
10133    const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);
10134    for (const attribute of attributeList) {
10135      if (!allowedAttribute(attribute, allowedAttributes)) {
10136        element.removeAttribute(attribute.nodeName);
10137      }
10138    }
10139  }
10140  return createdDocument.body.innerHTML;
10141}
10142
10143/**
10144 * --------------------------------------------------------------------------
10145 * Bootstrap util/template-factory.js
10146 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
10147 * --------------------------------------------------------------------------
10148 */
10149
10150
10151/**
10152 * Constants
10153 */
10154
10155const NAME$5 = 'TemplateFactory';
10156const Default$4 = {
10157  allowList: DefaultAllowlist,
10158  content: {},
10159  // { selector : text ,  selector2 : text2 , }
10160  extraClass: '',
10161  html: false,
10162  sanitize: true,
10163  sanitizeFn: null,
10164  template: '<div></div>'
10165};
10166const DefaultType$4 = {
10167  allowList: 'object',
10168  content: 'object',
10169  extraClass: '(string|function)',
10170  html: 'boolean',
10171  sanitize: 'boolean',
10172  sanitizeFn: '(null|function)',
10173  template: 'string'
10174};
10175const DefaultContentType = {
10176  entry: '(string|element|function|null)',
10177  selector: '(string|element)'
10178};
10179
10180/**
10181 * Class definition
10182 */
10183
10184class TemplateFactory extends Config {
10185  constructor(config) {
10186    super();
10187    this._config = this._getConfig(config);
10188  }
10189
10190  // Getters
10191  static get Default() {
10192    return Default$4;
10193  }
10194  static get DefaultType() {
10195    return DefaultType$4;
10196  }
10197  static get NAME() {
10198    return NAME$5;
10199  }
10200
10201  // Public
10202  getContent() {
10203    return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);
10204  }
10205  hasContent() {
10206    return this.getContent().length > 0;
10207  }
10208  changeContent(content) {
10209    this._checkContent(content);
10210    this._config.content = {
10211      ...this._config.content,
10212      ...content
10213    };
10214    return this;
10215  }
10216  toHtml() {
10217    const templateWrapper = document.createElement('div');
10218    templateWrapper.innerHTML = this._maybeSanitize(this._config.template);
10219    for (const [selector, text] of Object.entries(this._config.content)) {
10220      this._setContent(templateWrapper, text, selector);
10221    }
10222    const template = templateWrapper.children[0];
10223    const extraClass = this._resolvePossibleFunction(this._config.extraClass);
10224    if (extraClass) {
10225      template.classList.add(...extraClass.split(' '));
10226    }
10227    return template;
10228  }
10229
10230  // Private
10231  _typeCheckConfig(config) {
10232    super._typeCheckConfig(config);
10233    this._checkContent(config.content);
10234  }
10235  _checkContent(arg) {
10236    for (const [selector, content] of Object.entries(arg)) {
10237      super._typeCheckConfig({
10238        selector,
10239        entry: content
10240      }, DefaultContentType);
10241    }
10242  }
10243  _setContent(template, content, selector) {
10244    const templateElement = SelectorEngine.findOne(selector, template);
10245    if (!templateElement) {
10246      return;
10247    }
10248    content = this._resolvePossibleFunction(content);
10249    if (!content) {
10250      templateElement.remove();
10251      return;
10252    }
10253    if (isElement(content)) {
10254      this._putElementInTemplate(getElement(content), templateElement);
10255      return;
10256    }
10257    if (this._config.html) {
10258      templateElement.innerHTML = this._maybeSanitize(content);
10259      return;
10260    }
10261    templateElement.textContent = content;
10262  }
10263  _maybeSanitize(arg) {
10264    return this._config.sanitize ? sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;
10265  }
10266  _resolvePossibleFunction(arg) {
10267    return execute(arg, [this]);
10268  }
10269  _putElementInTemplate(element, templateElement) {
10270    if (this._config.html) {
10271      templateElement.innerHTML = '';
10272      templateElement.append(element);
10273      return;
10274    }
10275    templateElement.textContent = element.textContent;
10276  }
10277}
10278
10279/**
10280 * --------------------------------------------------------------------------
10281 * Bootstrap tooltip.js
10282 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
10283 * --------------------------------------------------------------------------
10284 */
10285
10286
10287/**
10288 * Constants
10289 */
10290
10291const NAME$4 = 'tooltip';
10292const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);
10293const CLASS_NAME_FADE$2 = 'fade';
10294const CLASS_NAME_MODAL = 'modal';
10295const CLASS_NAME_SHOW$2 = 'show';
10296const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';
10297const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;
10298const EVENT_MODAL_HIDE = 'hide.bs.modal';
10299const TRIGGER_HOVER = 'hover';
10300const TRIGGER_FOCUS = 'focus';
10301const TRIGGER_CLICK = 'click';
10302const TRIGGER_MANUAL = 'manual';
10303const EVENT_HIDE$2 = 'hide';
10304const EVENT_HIDDEN$2 = 'hidden';
10305const EVENT_SHOW$2 = 'show';
10306const EVENT_SHOWN$2 = 'shown';
10307const EVENT_INSERTED = 'inserted';
10308const EVENT_CLICK$1 = 'click';
10309const EVENT_FOCUSIN$1 = 'focusin';
10310const EVENT_FOCUSOUT$1 = 'focusout';
10311const EVENT_MOUSEENTER = 'mouseenter';
10312const EVENT_MOUSELEAVE = 'mouseleave';
10313const AttachmentMap = {
10314  AUTO: 'auto',
10315  TOP: 'top',
10316  RIGHT: isRTL() ? 'left' : 'right',
10317  BOTTOM: 'bottom',
10318  LEFT: isRTL() ? 'right' : 'left'
10319};
10320const Default$3 = {
10321  allowList: DefaultAllowlist,
10322  animation: true,
10323  boundary: 'clippingParents',
10324  container: false,
10325  customClass: '',
10326  delay: 0,
10327  fallbackPlacements: ['top', 'right', 'bottom', 'left'],
10328  html: false,
10329  offset: [0, 6],
10330  placement: 'top',
10331  popperConfig: null,
10332  sanitize: true,
10333  sanitizeFn: null,
10334  selector: false,
10335  template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div>' + '</div>',
10336  title: '',
10337  trigger: 'hover focus'
10338};
10339const DefaultType$3 = {
10340  allowList: 'object',
10341  animation: 'boolean',
10342  boundary: '(string|element)',
10343  container: '(string|element|boolean)',
10344  customClass: '(string|function)',
10345  delay: '(number|object)',
10346  fallbackPlacements: 'array',
10347  html: 'boolean',
10348  offset: '(array|string|function)',
10349  placement: '(string|function)',
10350  popperConfig: '(null|object|function)',
10351  sanitize: 'boolean',
10352  sanitizeFn: '(null|function)',
10353  selector: '(string|boolean)',
10354  template: 'string',
10355  title: '(string|element|function)',
10356  trigger: 'string'
10357};
10358
10359/**
10360 * Class definition
10361 */
10362
10363class Tooltip extends BaseComponent {
10364  constructor(element, config) {
10365    if (typeof _popperjs_core__WEBPACK_IMPORTED_MODULE_0__ === 'undefined') {
10366      throw new TypeError('Bootstrap\'s tooltips require Popper (https://popper.js.org)');
10367    }
10368    super(element, config);
10369
10370    // Private
10371    this._isEnabled = true;
10372    this._timeout = 0;
10373    this._isHovered = null;
10374    this._activeTrigger = {};
10375    this._popper = null;
10376    this._templateFactory = null;
10377    this._newContent = null;
10378
10379    // Protected
10380    this.tip = null;
10381    this._setListeners();
10382    if (!this._config.selector) {
10383      this._fixTitle();
10384    }
10385  }
10386
10387  // Getters
10388  static get Default() {
10389    return Default$3;
10390  }
10391  static get DefaultType() {
10392    return DefaultType$3;
10393  }
10394  static get NAME() {
10395    return NAME$4;
10396  }
10397
10398  // Public
10399  enable() {
10400    this._isEnabled = true;
10401  }
10402  disable() {
10403    this._isEnabled = false;
10404  }
10405  toggleEnabled() {
10406    this._isEnabled = !this._isEnabled;
10407  }
10408  toggle() {
10409    if (!this._isEnabled) {
10410      return;
10411    }
10412    this._activeTrigger.click = !this._activeTrigger.click;
10413    if (this._isShown()) {
10414      this._leave();
10415      return;
10416    }
10417    this._enter();
10418  }
10419  dispose() {
10420    clearTimeout(this._timeout);
10421    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
10422    if (this._element.getAttribute('data-bs-original-title')) {
10423      this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));
10424    }
10425    this._disposePopper();
10426    super.dispose();
10427  }
10428  show() {
10429    if (this._element.style.display === 'none') {
10430      throw new Error('Please use show on visible elements');
10431    }
10432    if (!(this._isWithContent() && this._isEnabled)) {
10433      return;
10434    }
10435    const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW$2));
10436    const shadowRoot = findShadowRoot(this._element);
10437    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);
10438    if (showEvent.defaultPrevented || !isInTheDom) {
10439      return;
10440    }
10441
10442    // TODO: v6 remove this or make it optional
10443    this._disposePopper();
10444    const tip = this._getTipElement();
10445    this._element.setAttribute('aria-describedby', tip.getAttribute('id'));
10446    const {
10447      container
10448    } = this._config;
10449    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {
10450      container.append(tip);
10451      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));
10452    }
10453    this._popper = this._createPopper(tip);
10454    tip.classList.add(CLASS_NAME_SHOW$2);
10455
10456    // If this is a touch-enabled device we add extra
10457    // empty mouseover listeners to the body's immediate children;
10458    // only needed because of broken event delegation on iOS
10459    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
10460    if ('ontouchstart' in document.documentElement) {
10461      for (const element of [].concat(...document.body.children)) {
10462        EventHandler.on(element, 'mouseover', noop);
10463      }
10464    }
10465    const complete = () => {
10466      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN$2));
10467      if (this._isHovered === false) {
10468        this._leave();
10469      }
10470      this._isHovered = false;
10471    };
10472    this._queueCallback(complete, this.tip, this._isAnimated());
10473  }
10474  hide() {
10475    if (!this._isShown()) {
10476      return;
10477    }
10478    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE$2));
10479    if (hideEvent.defaultPrevented) {
10480      return;
10481    }
10482    const tip = this._getTipElement();
10483    tip.classList.remove(CLASS_NAME_SHOW$2);
10484
10485    // If this is a touch-enabled device we remove the extra
10486    // empty mouseover listeners we added for iOS support
10487    if ('ontouchstart' in document.documentElement) {
10488      for (const element of [].concat(...document.body.children)) {
10489        EventHandler.off(element, 'mouseover', noop);
10490      }
10491    }
10492    this._activeTrigger[TRIGGER_CLICK] = false;
10493    this._activeTrigger[TRIGGER_FOCUS] = false;
10494    this._activeTrigger[TRIGGER_HOVER] = false;
10495    this._isHovered = null; // it is a trick to support manual triggering
10496
10497    const complete = () => {
10498      if (this._isWithActiveTrigger()) {
10499        return;
10500      }
10501      if (!this._isHovered) {
10502        this._disposePopper();
10503      }
10504      this._element.removeAttribute('aria-describedby');
10505      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN$2));
10506    };
10507    this._queueCallback(complete, this.tip, this._isAnimated());
10508  }
10509  update() {
10510    if (this._popper) {
10511      this._popper.update();
10512    }
10513  }
10514
10515  // Protected
10516  _isWithContent() {
10517    return Boolean(this._getTitle());
10518  }
10519  _getTipElement() {
10520    if (!this.tip) {
10521      this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());
10522    }
10523    return this.tip;
10524  }
10525  _createTipElement(content) {
10526    const tip = this._getTemplateFactory(content).toHtml();
10527
10528    // TODO: remove this check in v6
10529    if (!tip) {
10530      return null;
10531    }
10532    tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$2);
10533    // TODO: v6 the following can be achieved with CSS only
10534    tip.classList.add(`bs-${this.constructor.NAME}-auto`);
10535    const tipId = getUID(this.constructor.NAME).toString();
10536    tip.setAttribute('id', tipId);
10537    if (this._isAnimated()) {
10538      tip.classList.add(CLASS_NAME_FADE$2);
10539    }
10540    return tip;
10541  }
10542  setContent(content) {
10543    this._newContent = content;
10544    if (this._isShown()) {
10545      this._disposePopper();
10546      this.show();
10547    }
10548  }
10549  _getTemplateFactory(content) {
10550    if (this._templateFactory) {
10551      this._templateFactory.changeContent(content);
10552    } else {
10553      this._templateFactory = new TemplateFactory({
10554        ...this._config,
10555        // the `content` var has to be after `this._config`
10556        // to override config.content in case of popover
10557        content,
10558        extraClass: this._resolvePossibleFunction(this._config.customClass)
10559      });
10560    }
10561    return this._templateFactory;
10562  }
10563  _getContentForTemplate() {
10564    return {
10565      [SELECTOR_TOOLTIP_INNER]: this._getTitle()
10566    };
10567  }
10568  _getTitle() {
10569    return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');
10570  }
10571
10572  // Private
10573  _initializeOnDelegatedTarget(event) {
10574    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());
10575  }
10576  _isAnimated() {
10577    return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE$2);
10578  }
10579  _isShown() {
10580    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW$2);
10581  }
10582  _createPopper(tip) {
10583    const placement = execute(this._config.placement, [this, tip, this._element]);
10584    const attachment = AttachmentMap[placement.toUpperCase()];
10585    return _popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper(this._element, tip, this._getPopperConfig(attachment));
10586  }
10587  _getOffset() {
10588    const {
10589      offset
10590    } = this._config;
10591    if (typeof offset === 'string') {
10592      return offset.split(',').map(value => Number.parseInt(value, 10));
10593    }
10594    if (typeof offset === 'function') {
10595      return popperData => offset(popperData, this._element);
10596    }
10597    return offset;
10598  }
10599  _resolvePossibleFunction(arg) {
10600    return execute(arg, [this._element]);
10601  }
10602  _getPopperConfig(attachment) {
10603    const defaultBsPopperConfig = {
10604      placement: attachment,
10605      modifiers: [{
10606        name: 'flip',
10607        options: {
10608          fallbackPlacements: this._config.fallbackPlacements
10609        }
10610      }, {
10611        name: 'offset',
10612        options: {
10613          offset: this._getOffset()
10614        }
10615      }, {
10616        name: 'preventOverflow',
10617        options: {
10618          boundary: this._config.boundary
10619        }
10620      }, {
10621        name: 'arrow',
10622        options: {
10623          element: `.${this.constructor.NAME}-arrow`
10624        }
10625      }, {
10626        name: 'preSetPlacement',
10627        enabled: true,
10628        phase: 'beforeMain',
10629        fn: data => {
10630          // Pre-set Popper's placement attribute in order to read the arrow sizes properly.
10631          // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement
10632          this._getTipElement().setAttribute('data-popper-placement', data.state.placement);
10633        }
10634      }]
10635    };
10636    return {
10637      ...defaultBsPopperConfig,
10638      ...execute(this._config.popperConfig, [defaultBsPopperConfig])
10639    };
10640  }
10641  _setListeners() {
10642    const triggers = this._config.trigger.split(' ');
10643    for (const trigger of triggers) {
10644      if (trigger === 'click') {
10645        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK$1), this._config.selector, event => {
10646          const context = this._initializeOnDelegatedTarget(event);
10647          context.toggle();
10648        });
10649      } else if (trigger !== TRIGGER_MANUAL) {
10650        const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN$1);
10651        const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT$1);
10652        EventHandler.on(this._element, eventIn, this._config.selector, event => {
10653          const context = this._initializeOnDelegatedTarget(event);
10654          context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;
10655          context._enter();
10656        });
10657        EventHandler.on(this._element, eventOut, this._config.selector, event => {
10658          const context = this._initializeOnDelegatedTarget(event);
10659          context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);
10660          context._leave();
10661        });
10662      }
10663    }
10664    this._hideModalHandler = () => {
10665      if (this._element) {
10666        this.hide();
10667      }
10668    };
10669    EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);
10670  }
10671  _fixTitle() {
10672    const title = this._element.getAttribute('title');
10673    if (!title) {
10674      return;
10675    }
10676    if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {
10677      this._element.setAttribute('aria-label', title);
10678    }
10679    this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility
10680    this._element.removeAttribute('title');
10681  }
10682  _enter() {
10683    if (this._isShown() || this._isHovered) {
10684      this._isHovered = true;
10685      return;
10686    }
10687    this._isHovered = true;
10688    this._setTimeout(() => {
10689      if (this._isHovered) {
10690        this.show();
10691      }
10692    }, this._config.delay.show);
10693  }
10694  _leave() {
10695    if (this._isWithActiveTrigger()) {
10696      return;
10697    }
10698    this._isHovered = false;
10699    this._setTimeout(() => {
10700      if (!this._isHovered) {
10701        this.hide();
10702      }
10703    }, this._config.delay.hide);
10704  }
10705  _setTimeout(handler, timeout) {
10706    clearTimeout(this._timeout);
10707    this._timeout = setTimeout(handler, timeout);
10708  }
10709  _isWithActiveTrigger() {
10710    return Object.values(this._activeTrigger).includes(true);
10711  }
10712  _getConfig(config) {
10713    const dataAttributes = Manipulator.getDataAttributes(this._element);
10714    for (const dataAttribute of Object.keys(dataAttributes)) {
10715      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {
10716        delete dataAttributes[dataAttribute];
10717      }
10718    }
10719    config = {
10720      ...dataAttributes,
10721      ...(typeof config === 'object' && config ? config : {})
10722    };
10723    config = this._mergeConfigObj(config);
10724    config = this._configAfterMerge(config);
10725    this._typeCheckConfig(config);
10726    return config;
10727  }
10728  _configAfterMerge(config) {
10729    config.container = config.container === false ? document.body : getElement(config.container);
10730    if (typeof config.delay === 'number') {
10731      config.delay = {
10732        show: config.delay,
10733        hide: config.delay
10734      };
10735    }
10736    if (typeof config.title === 'number') {
10737      config.title = config.title.toString();
10738    }
10739    if (typeof config.content === 'number') {
10740      config.content = config.content.toString();
10741    }
10742    return config;
10743  }
10744  _getDelegateConfig() {
10745    const config = {};
10746    for (const [key, value] of Object.entries(this._config)) {
10747      if (this.constructor.Default[key] !== value) {
10748        config[key] = value;
10749      }
10750    }
10751    config.selector = false;
10752    config.trigger = 'manual';
10753
10754    // In the future can be replaced with:
10755    // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])
10756    // `Object.fromEntries(keysWithDifferentValues)`
10757    return config;
10758  }
10759  _disposePopper() {
10760    if (this._popper) {
10761      this._popper.destroy();
10762      this._popper = null;
10763    }
10764    if (this.tip) {
10765      this.tip.remove();
10766      this.tip = null;
10767    }
10768  }
10769
10770  // Static
10771  static jQueryInterface(config) {
10772    return this.each(function () {
10773      const data = Tooltip.getOrCreateInstance(this, config);
10774      if (typeof config !== 'string') {
10775        return;
10776      }
10777      if (typeof data[config] === 'undefined') {
10778        throw new TypeError(`No method named "${config}"`);
10779      }
10780      data[config]();
10781    });
10782  }
10783}
10784
10785/**
10786 * jQuery
10787 */
10788
10789defineJQueryPlugin(Tooltip);
10790
10791/**
10792 * --------------------------------------------------------------------------
10793 * Bootstrap popover.js
10794 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
10795 * --------------------------------------------------------------------------
10796 */
10797
10798
10799/**
10800 * Constants
10801 */
10802
10803const NAME$3 = 'popover';
10804const SELECTOR_TITLE = '.popover-header';
10805const SELECTOR_CONTENT = '.popover-body';
10806const Default$2 = {
10807  ...Tooltip.Default,
10808  content: '',
10809  offset: [0, 8],
10810  placement: 'right',
10811  template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div>' + '</div>',
10812  trigger: 'click'
10813};
10814const DefaultType$2 = {
10815  ...Tooltip.DefaultType,
10816  content: '(null|string|element|function)'
10817};
10818
10819/**
10820 * Class definition
10821 */
10822
10823class Popover extends Tooltip {
10824  // Getters
10825  static get Default() {
10826    return Default$2;
10827  }
10828  static get DefaultType() {
10829    return DefaultType$2;
10830  }
10831  static get NAME() {
10832    return NAME$3;
10833  }
10834
10835  // Overrides
10836  _isWithContent() {
10837    return this._getTitle() || this._getContent();
10838  }
10839
10840  // Private
10841  _getContentForTemplate() {
10842    return {
10843      [SELECTOR_TITLE]: this._getTitle(),
10844      [SELECTOR_CONTENT]: this._getContent()
10845    };
10846  }
10847  _getContent() {
10848    return this._resolvePossibleFunction(this._config.content);
10849  }
10850
10851  // Static
10852  static jQueryInterface(config) {
10853    return this.each(function () {
10854      const data = Popover.getOrCreateInstance(this, config);
10855      if (typeof config !== 'string') {
10856        return;
10857      }
10858      if (typeof data[config] === 'undefined') {
10859        throw new TypeError(`No method named "${config}"`);
10860      }
10861      data[config]();
10862    });
10863  }
10864}
10865
10866/**
10867 * jQuery
10868 */
10869
10870defineJQueryPlugin(Popover);
10871
10872/**
10873 * --------------------------------------------------------------------------
10874 * Bootstrap scrollspy.js
10875 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
10876 * --------------------------------------------------------------------------
10877 */
10878
10879
10880/**
10881 * Constants
10882 */
10883
10884const NAME$2 = 'scrollspy';
10885const DATA_KEY$2 = 'bs.scrollspy';
10886const EVENT_KEY$2 = `.${DATA_KEY$2}`;
10887const DATA_API_KEY = '.data-api';
10888const EVENT_ACTIVATE = `activate${EVENT_KEY$2}`;
10889const EVENT_CLICK = `click${EVENT_KEY$2}`;
10890const EVENT_LOAD_DATA_API$1 = `load${EVENT_KEY$2}${DATA_API_KEY}`;
10891const CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';
10892const CLASS_NAME_ACTIVE$1 = 'active';
10893const SELECTOR_DATA_SPY = '[data-bs-spy="scroll"]';
10894const SELECTOR_TARGET_LINKS = '[href]';
10895const SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';
10896const SELECTOR_NAV_LINKS = '.nav-link';
10897const SELECTOR_NAV_ITEMS = '.nav-item';
10898const SELECTOR_LIST_ITEMS = '.list-group-item';
10899const SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`;
10900const SELECTOR_DROPDOWN = '.dropdown';
10901const SELECTOR_DROPDOWN_TOGGLE$1 = '.dropdown-toggle';
10902const Default$1 = {
10903  offset: null,
10904  // TODO: v6 @deprecated, keep it for backwards compatibility reasons
10905  rootMargin: '0px 0px -25%',
10906  smoothScroll: false,
10907  target: null,
10908  threshold: [0.1, 0.5, 1]
10909};
10910const DefaultType$1 = {
10911  offset: '(number|null)',
10912  // TODO v6 @deprecated, keep it for backwards compatibility reasons
10913  rootMargin: 'string',
10914  smoothScroll: 'boolean',
10915  target: 'element',
10916  threshold: 'array'
10917};
10918
10919/**
10920 * Class definition
10921 */
10922
10923class ScrollSpy extends BaseComponent {
10924  constructor(element, config) {
10925    super(element, config);
10926
10927    // this._element is the observablesContainer and config.target the menu links wrapper
10928    this._targetLinks = new Map();
10929    this._observableSections = new Map();
10930    this._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element;
10931    this._activeTarget = null;
10932    this._observer = null;
10933    this._previousScrollData = {
10934      visibleEntryTop: 0,
10935      parentScrollTop: 0
10936    };
10937    this.refresh(); // initialize
10938  }
10939
10940  // Getters
10941  static get Default() {
10942    return Default$1;
10943  }
10944  static get DefaultType() {
10945    return DefaultType$1;
10946  }
10947  static get NAME() {
10948    return NAME$2;
10949  }
10950
10951  // Public
10952  refresh() {
10953    this._initializeTargetsAndObservables();
10954    this._maybeEnableSmoothScroll();
10955    if (this._observer) {
10956      this._observer.disconnect();
10957    } else {
10958      this._observer = this._getNewObserver();
10959    }
10960    for (const section of this._observableSections.values()) {
10961      this._observer.observe(section);
10962    }
10963  }
10964  dispose() {
10965    this._observer.disconnect();
10966    super.dispose();
10967  }
10968
10969  // Private
10970  _configAfterMerge(config) {
10971    // TODO: on v6 target should be given explicitly & remove the {target: 'ss-target'} case
10972    config.target = getElement(config.target) || document.body;
10973
10974    // TODO: v6 Only for backwards compatibility reasons. Use rootMargin only
10975    config.rootMargin = config.offset ? `${config.offset}px 0px -30%` : config.rootMargin;
10976    if (typeof config.threshold === 'string') {
10977      config.threshold = config.threshold.split(',').map(value => Number.parseFloat(value));
10978    }
10979    return config;
10980  }
10981  _maybeEnableSmoothScroll() {
10982    if (!this._config.smoothScroll) {
10983      return;
10984    }
10985
10986    // unregister any previous listeners
10987    EventHandler.off(this._config.target, EVENT_CLICK);
10988    EventHandler.on(this._config.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {
10989      const observableSection = this._observableSections.get(event.target.hash);
10990      if (observableSection) {
10991        event.preventDefault();
10992        const root = this._rootElement || window;
10993        const height = observableSection.offsetTop - this._element.offsetTop;
10994        if (root.scrollTo) {
10995          root.scrollTo({
10996            top: height,
10997            behavior: 'smooth'
10998          });
10999          return;
11000        }
11001
11002        // Chrome 60 doesn't support `scrollTo`
11003        root.scrollTop = height;
11004      }
11005    });
11006  }
11007  _getNewObserver() {
11008    const options = {
11009      root: this._rootElement,
11010      threshold: this._config.threshold,
11011      rootMargin: this._config.rootMargin
11012    };
11013    return new IntersectionObserver(entries => this._observerCallback(entries), options);
11014  }
11015
11016  // The logic of selection
11017  _observerCallback(entries) {
11018    const targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);
11019    const activate = entry => {
11020      this._previousScrollData.visibleEntryTop = entry.target.offsetTop;
11021      this._process(targetElement(entry));
11022    };
11023    const parentScrollTop = (this._rootElement || document.documentElement).scrollTop;
11024    const userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop;
11025    this._previousScrollData.parentScrollTop = parentScrollTop;
11026    for (const entry of entries) {
11027      if (!entry.isIntersecting) {
11028        this._activeTarget = null;
11029        this._clearActiveClass(targetElement(entry));
11030        continue;
11031      }
11032      const entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop;
11033      // if we are scrolling down, pick the bigger offsetTop
11034      if (userScrollsDown && entryIsLowerThanPrevious) {
11035        activate(entry);
11036        // if parent isn't scrolled, let's keep the first visible item, breaking the iteration
11037        if (!parentScrollTop) {
11038          return;
11039        }
11040        continue;
11041      }
11042
11043      // if we are scrolling up, pick the smallest offsetTop
11044      if (!userScrollsDown && !entryIsLowerThanPrevious) {
11045        activate(entry);
11046      }
11047    }
11048  }
11049  _initializeTargetsAndObservables() {
11050    this._targetLinks = new Map();
11051    this._observableSections = new Map();
11052    const targetLinks = SelectorEngine.find(SELECTOR_TARGET_LINKS, this._config.target);
11053    for (const anchor of targetLinks) {
11054      // ensure that the anchor has an id and is not disabled
11055      if (!anchor.hash || isDisabled(anchor)) {
11056        continue;
11057      }
11058      const observableSection = SelectorEngine.findOne(decodeURI(anchor.hash), this._element);
11059
11060      // ensure that the observableSection exists & is visible
11061      if (isVisible(observableSection)) {
11062        this._targetLinks.set(decodeURI(anchor.hash), anchor);
11063        this._observableSections.set(anchor.hash, observableSection);
11064      }
11065    }
11066  }
11067  _process(target) {
11068    if (this._activeTarget === target) {
11069      return;
11070    }
11071    this._clearActiveClass(this._config.target);
11072    this._activeTarget = target;
11073    target.classList.add(CLASS_NAME_ACTIVE$1);
11074    this._activateParents(target);
11075    EventHandler.trigger(this._element, EVENT_ACTIVATE, {
11076      relatedTarget: target
11077    });
11078  }
11079  _activateParents(target) {
11080    // Activate dropdown parents
11081    if (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
11082      SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE$1, target.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$1);
11083      return;
11084    }
11085    for (const listGroup of SelectorEngine.parents(target, SELECTOR_NAV_LIST_GROUP)) {
11086      // Set triggered links parents as active
11087      // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
11088      for (const item of SelectorEngine.prev(listGroup, SELECTOR_LINK_ITEMS)) {
11089        item.classList.add(CLASS_NAME_ACTIVE$1);
11090      }
11091    }
11092  }
11093  _clearActiveClass(parent) {
11094    parent.classList.remove(CLASS_NAME_ACTIVE$1);
11095    const activeNodes = SelectorEngine.find(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE$1}`, parent);
11096    for (const node of activeNodes) {
11097      node.classList.remove(CLASS_NAME_ACTIVE$1);
11098    }
11099  }
11100
11101  // Static
11102  static jQueryInterface(config) {
11103    return this.each(function () {
11104      const data = ScrollSpy.getOrCreateInstance(this, config);
11105      if (typeof config !== 'string') {
11106        return;
11107      }
11108      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
11109        throw new TypeError(`No method named "${config}"`);
11110      }
11111      data[config]();
11112    });
11113  }
11114}
11115
11116/**
11117 * Data API implementation
11118 */
11119
11120EventHandler.on(window, EVENT_LOAD_DATA_API$1, () => {
11121  for (const spy of SelectorEngine.find(SELECTOR_DATA_SPY)) {
11122    ScrollSpy.getOrCreateInstance(spy);
11123  }
11124});
11125
11126/**
11127 * jQuery
11128 */
11129
11130defineJQueryPlugin(ScrollSpy);
11131
11132/**
11133 * --------------------------------------------------------------------------
11134 * Bootstrap tab.js
11135 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11136 * --------------------------------------------------------------------------
11137 */
11138
11139
11140/**
11141 * Constants
11142 */
11143
11144const NAME$1 = 'tab';
11145const DATA_KEY$1 = 'bs.tab';
11146const EVENT_KEY$1 = `.${DATA_KEY$1}`;
11147const EVENT_HIDE$1 = `hide${EVENT_KEY$1}`;
11148const EVENT_HIDDEN$1 = `hidden${EVENT_KEY$1}`;
11149const EVENT_SHOW$1 = `show${EVENT_KEY$1}`;
11150const EVENT_SHOWN$1 = `shown${EVENT_KEY$1}`;
11151const EVENT_CLICK_DATA_API = `click${EVENT_KEY$1}`;
11152const EVENT_KEYDOWN = `keydown${EVENT_KEY$1}`;
11153const EVENT_LOAD_DATA_API = `load${EVENT_KEY$1}`;
11154const ARROW_LEFT_KEY = 'ArrowLeft';
11155const ARROW_RIGHT_KEY = 'ArrowRight';
11156const ARROW_UP_KEY = 'ArrowUp';
11157const ARROW_DOWN_KEY = 'ArrowDown';
11158const HOME_KEY = 'Home';
11159const END_KEY = 'End';
11160const CLASS_NAME_ACTIVE = 'active';
11161const CLASS_NAME_FADE$1 = 'fade';
11162const CLASS_NAME_SHOW$1 = 'show';
11163const CLASS_DROPDOWN = 'dropdown';
11164const SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';
11165const SELECTOR_DROPDOWN_MENU = '.dropdown-menu';
11166const NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;
11167const SELECTOR_TAB_PANEL = '.list-group, .nav, [role="tablist"]';
11168const SELECTOR_OUTER = '.nav-item, .list-group-item';
11169const SELECTOR_INNER = `.nav-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role="tab"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;
11170const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]'; // TODO: could only be `tab` in v6
11171const SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;
11172const SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-bs-toggle="tab"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="pill"], .${CLASS_NAME_ACTIVE}[data-bs-toggle="list"]`;
11173
11174/**
11175 * Class definition
11176 */
11177
11178class Tab extends BaseComponent {
11179  constructor(element) {
11180    super(element);
11181    this._parent = this._element.closest(SELECTOR_TAB_PANEL);
11182    if (!this._parent) {
11183      return;
11184      // TODO: should throw exception in v6
11185      // throw new TypeError(`${element.outerHTML} has not a valid parent ${SELECTOR_INNER_ELEM}`)
11186    }
11187
11188    // Set up initial aria attributes
11189    this._setInitialAttributes(this._parent, this._getChildren());
11190    EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));
11191  }
11192
11193  // Getters
11194  static get NAME() {
11195    return NAME$1;
11196  }
11197
11198  // Public
11199  show() {
11200    // Shows this elem and deactivate the active sibling if exists
11201    const innerElem = this._element;
11202    if (this._elemIsActive(innerElem)) {
11203      return;
11204    }
11205
11206    // Search for active tab on same parent to deactivate it
11207    const active = this._getActiveElem();
11208    const hideEvent = active ? EventHandler.trigger(active, EVENT_HIDE$1, {
11209      relatedTarget: innerElem
11210    }) : null;
11211    const showEvent = EventHandler.trigger(innerElem, EVENT_SHOW$1, {
11212      relatedTarget: active
11213    });
11214    if (showEvent.defaultPrevented || hideEvent && hideEvent.defaultPrevented) {
11215      return;
11216    }
11217    this._deactivate(active, innerElem);
11218    this._activate(innerElem, active);
11219  }
11220
11221  // Private
11222  _activate(element, relatedElem) {
11223    if (!element) {
11224      return;
11225    }
11226    element.classList.add(CLASS_NAME_ACTIVE);
11227    this._activate(SelectorEngine.getElementFromSelector(element)); // Search and activate/show the proper section
11228
11229    const complete = () => {
11230      if (element.getAttribute('role') !== 'tab') {
11231        element.classList.add(CLASS_NAME_SHOW$1);
11232        return;
11233      }
11234      element.removeAttribute('tabindex');
11235      element.setAttribute('aria-selected', true);
11236      this._toggleDropDown(element, true);
11237      EventHandler.trigger(element, EVENT_SHOWN$1, {
11238        relatedTarget: relatedElem
11239      });
11240    };
11241    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
11242  }
11243  _deactivate(element, relatedElem) {
11244    if (!element) {
11245      return;
11246    }
11247    element.classList.remove(CLASS_NAME_ACTIVE);
11248    element.blur();
11249    this._deactivate(SelectorEngine.getElementFromSelector(element)); // Search and deactivate the shown section too
11250
11251    const complete = () => {
11252      if (element.getAttribute('role') !== 'tab') {
11253        element.classList.remove(CLASS_NAME_SHOW$1);
11254        return;
11255      }
11256      element.setAttribute('aria-selected', false);
11257      element.setAttribute('tabindex', '-1');
11258      this._toggleDropDown(element, false);
11259      EventHandler.trigger(element, EVENT_HIDDEN$1, {
11260        relatedTarget: relatedElem
11261      });
11262    };
11263    this._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE$1));
11264  }
11265  _keydown(event) {
11266    if (![ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key)) {
11267      return;
11268    }
11269    event.stopPropagation(); // stopPropagation/preventDefault both added to support up/down keys without scrolling the page
11270    event.preventDefault();
11271    const children = this._getChildren().filter(element => !isDisabled(element));
11272    let nextActiveElement;
11273    if ([HOME_KEY, END_KEY].includes(event.key)) {
11274      nextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1];
11275    } else {
11276      const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key);
11277      nextActiveElement = getNextActiveElement(children, event.target, isNext, true);
11278    }
11279    if (nextActiveElement) {
11280      nextActiveElement.focus({
11281        preventScroll: true
11282      });
11283      Tab.getOrCreateInstance(nextActiveElement).show();
11284    }
11285  }
11286  _getChildren() {
11287    // collection of inner elements
11288    return SelectorEngine.find(SELECTOR_INNER_ELEM, this._parent);
11289  }
11290  _getActiveElem() {
11291    return this._getChildren().find(child => this._elemIsActive(child)) || null;
11292  }
11293  _setInitialAttributes(parent, children) {
11294    this._setAttributeIfNotExists(parent, 'role', 'tablist');
11295    for (const child of children) {
11296      this._setInitialAttributesOnChild(child);
11297    }
11298  }
11299  _setInitialAttributesOnChild(child) {
11300    child = this._getInnerElement(child);
11301    const isActive = this._elemIsActive(child);
11302    const outerElem = this._getOuterElement(child);
11303    child.setAttribute('aria-selected', isActive);
11304    if (outerElem !== child) {
11305      this._setAttributeIfNotExists(outerElem, 'role', 'presentation');
11306    }
11307    if (!isActive) {
11308      child.setAttribute('tabindex', '-1');
11309    }
11310    this._setAttributeIfNotExists(child, 'role', 'tab');
11311
11312    // set attributes to the related panel too
11313    this._setInitialAttributesOnTargetPanel(child);
11314  }
11315  _setInitialAttributesOnTargetPanel(child) {
11316    const target = SelectorEngine.getElementFromSelector(child);
11317    if (!target) {
11318      return;
11319    }
11320    this._setAttributeIfNotExists(target, 'role', 'tabpanel');
11321    if (child.id) {
11322      this._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`);
11323    }
11324  }
11325  _toggleDropDown(element, open) {
11326    const outerElem = this._getOuterElement(element);
11327    if (!outerElem.classList.contains(CLASS_DROPDOWN)) {
11328      return;
11329    }
11330    const toggle = (selector, className) => {
11331      const element = SelectorEngine.findOne(selector, outerElem);
11332      if (element) {
11333        element.classList.toggle(className, open);
11334      }
11335    };
11336    toggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE);
11337    toggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW$1);
11338    outerElem.setAttribute('aria-expanded', open);
11339  }
11340  _setAttributeIfNotExists(element, attribute, value) {
11341    if (!element.hasAttribute(attribute)) {
11342      element.setAttribute(attribute, value);
11343    }
11344  }
11345  _elemIsActive(elem) {
11346    return elem.classList.contains(CLASS_NAME_ACTIVE);
11347  }
11348
11349  // Try to get the inner element (usually the .nav-link)
11350  _getInnerElement(elem) {
11351    return elem.matches(SELECTOR_INNER_ELEM) ? elem : SelectorEngine.findOne(SELECTOR_INNER_ELEM, elem);
11352  }
11353
11354  // Try to get the outer element (usually the .nav-item)
11355  _getOuterElement(elem) {
11356    return elem.closest(SELECTOR_OUTER) || elem;
11357  }
11358
11359  // Static
11360  static jQueryInterface(config) {
11361    return this.each(function () {
11362      const data = Tab.getOrCreateInstance(this);
11363      if (typeof config !== 'string') {
11364        return;
11365      }
11366      if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {
11367        throw new TypeError(`No method named "${config}"`);
11368      }
11369      data[config]();
11370    });
11371  }
11372}
11373
11374/**
11375 * Data API implementation
11376 */
11377
11378EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {
11379  if (['A', 'AREA'].includes(this.tagName)) {
11380    event.preventDefault();
11381  }
11382  if (isDisabled(this)) {
11383    return;
11384  }
11385  Tab.getOrCreateInstance(this).show();
11386});
11387
11388/**
11389 * Initialize on focus
11390 */
11391EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
11392  for (const element of SelectorEngine.find(SELECTOR_DATA_TOGGLE_ACTIVE)) {
11393    Tab.getOrCreateInstance(element);
11394  }
11395});
11396/**
11397 * jQuery
11398 */
11399
11400defineJQueryPlugin(Tab);
11401
11402/**
11403 * --------------------------------------------------------------------------
11404 * Bootstrap toast.js
11405 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
11406 * --------------------------------------------------------------------------
11407 */
11408
11409
11410/**
11411 * Constants
11412 */
11413
11414const NAME = 'toast';
11415const DATA_KEY = 'bs.toast';
11416const EVENT_KEY = `.${DATA_KEY}`;
11417const EVENT_MOUSEOVER = `mouseover${EVENT_KEY}`;
11418const EVENT_MOUSEOUT = `mouseout${EVENT_KEY}`;
11419const EVENT_FOCUSIN = `focusin${EVENT_KEY}`;
11420const EVENT_FOCUSOUT = `focusout${EVENT_KEY}`;
11421const EVENT_HIDE = `hide${EVENT_KEY}`;
11422const EVENT_HIDDEN = `hidden${EVENT_KEY}`;
11423const EVENT_SHOW = `show${EVENT_KEY}`;
11424const EVENT_SHOWN = `shown${EVENT_KEY}`;
11425const CLASS_NAME_FADE = 'fade';
11426const CLASS_NAME_HIDE = 'hide'; // @deprecated - kept here only for backwards compatibility
11427const CLASS_NAME_SHOW = 'show';
11428const CLASS_NAME_SHOWING = 'showing';
11429const DefaultType = {
11430  animation: 'boolean',
11431  autohide: 'boolean',
11432  delay: 'number'
11433};
11434const Default = {
11435  animation: true,
11436  autohide: true,
11437  delay: 5000
11438};
11439
11440/**
11441 * Class definition
11442 */
11443
11444class Toast extends BaseComponent {
11445  constructor(element, config) {
11446    super(element, config);
11447    this._timeout = null;
11448    this._hasMouseInteraction = false;
11449    this._hasKeyboardInteraction = false;
11450    this._setListeners();
11451  }
11452
11453  // Getters
11454  static get Default() {
11455    return Default;
11456  }
11457  static get DefaultType() {
11458    return DefaultType;
11459  }
11460  static get NAME() {
11461    return NAME;
11462  }
11463
11464  // Public
11465  show() {
11466    const showEvent = EventHandler.trigger(this._element, EVENT_SHOW);
11467    if (showEvent.defaultPrevented) {
11468      return;
11469    }
11470    this._clearTimeout();
11471    if (this._config.animation) {
11472      this._element.classList.add(CLASS_NAME_FADE);
11473    }
11474    const complete = () => {
11475      this._element.classList.remove(CLASS_NAME_SHOWING);
11476      EventHandler.trigger(this._element, EVENT_SHOWN);
11477      this._maybeScheduleHide();
11478    };
11479    this._element.classList.remove(CLASS_NAME_HIDE); // @deprecated
11480    reflow(this._element);
11481    this._element.classList.add(CLASS_NAME_SHOW, CLASS_NAME_SHOWING);
11482    this._queueCallback(complete, this._element, this._config.animation);
11483  }
11484  hide() {
11485    if (!this.isShown()) {
11486      return;
11487    }
11488    const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE);
11489    if (hideEvent.defaultPrevented) {
11490      return;
11491    }
11492    const complete = () => {
11493      this._element.classList.add(CLASS_NAME_HIDE); // @deprecated
11494      this._element.classList.remove(CLASS_NAME_SHOWING, CLASS_NAME_SHOW);
11495      EventHandler.trigger(this._element, EVENT_HIDDEN);
11496    };
11497    this._element.classList.add(CLASS_NAME_SHOWING);
11498    this._queueCallback(complete, this._element, this._config.animation);
11499  }
11500  dispose() {
11501    this._clearTimeout();
11502    if (this.isShown()) {
11503      this._element.classList.remove(CLASS_NAME_SHOW);
11504    }
11505    super.dispose();
11506  }
11507  isShown() {
11508    return this._element.classList.contains(CLASS_NAME_SHOW);
11509  }
11510
11511  // Private
11512
11513  _maybeScheduleHide() {
11514    if (!this._config.autohide) {
11515      return;
11516    }
11517    if (this._hasMouseInteraction || this._hasKeyboardInteraction) {
11518      return;
11519    }
11520    this._timeout = setTimeout(() => {
11521      this.hide();
11522    }, this._config.delay);
11523  }
11524  _onInteraction(event, isInteracting) {
11525    switch (event.type) {
11526      case 'mouseover':
11527      case 'mouseout':
11528        {
11529          this._hasMouseInteraction = isInteracting;
11530          break;
11531        }
11532      case 'focusin':
11533      case 'focusout':
11534        {
11535          this._hasKeyboardInteraction = isInteracting;
11536          break;
11537        }
11538    }
11539    if (isInteracting) {
11540      this._clearTimeout();
11541      return;
11542    }
11543    const nextElement = event.relatedTarget;
11544    if (this._element === nextElement || this._element.contains(nextElement)) {
11545      return;
11546    }
11547    this._maybeScheduleHide();
11548  }
11549  _setListeners() {
11550    EventHandler.on(this._element, EVENT_MOUSEOVER, event => this._onInteraction(event, true));
11551    EventHandler.on(this._element, EVENT_MOUSEOUT, event => this._onInteraction(event, false));
11552    EventHandler.on(this._element, EVENT_FOCUSIN, event => this._onInteraction(event, true));
11553    EventHandler.on(this._element, EVENT_FOCUSOUT, event => this._onInteraction(event, false));
11554  }
11555  _clearTimeout() {
11556    clearTimeout(this._timeout);
11557    this._timeout = null;
11558  }
11559
11560  // Static
11561  static jQueryInterface(config) {
11562    return this.each(function () {
11563      const data = Toast.getOrCreateInstance(this, config);
11564      if (typeof config === 'string') {
11565        if (typeof data[config] === 'undefined') {
11566          throw new TypeError(`No method named "${config}"`);
11567        }
11568        data[config](this);
11569      }
11570    });
11571  }
11572}
11573
11574/**
11575 * Data API implementation
11576 */
11577
11578enableDismissTrigger(Toast);
11579
11580/**
11581 * jQuery
11582 */
11583
11584defineJQueryPlugin(Toast);
11585
11586
11587//# sourceMappingURL=bootstrap.esm.js.map
11588
11589
11590/***/ }),
11591
11592/***/ "./src/scss/app.scss":
11593/*!***************************!*\
11594  !*** ./src/scss/app.scss ***!
11595  \***************************/
11596/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11597
11598__webpack_require__.r(__webpack_exports__);
11599// extracted by mini-css-extract-plugin
11600
11601
11602/***/ }),
11603
vendor: 13,981 bytes, lines 11604-11994
11604/***/ "./node_modules/swiper/modules/a11y.mjs":
11605/*!**********************************************!*\
11606  !*** ./node_modules/swiper/modules/a11y.mjs ***!
11607  \**********************************************/
11608/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
11609
11610__webpack_require__.r(__webpack_exports__);
11611/* harmony export */ __webpack_require__.d(__webpack_exports__, {
11612/* harmony export */   "default": function() { return /* binding */ A11y; }
11613/* harmony export */ });
11614/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
11615/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
11616/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
11617
11618
11619
11620
11621function A11y(_ref) {
11622  let {
11623    swiper,
11624    extendParams,
11625    on
11626  } = _ref;
11627  extendParams({
11628    a11y: {
11629      enabled: true,
11630      notificationClass: 'swiper-notification',
11631      prevSlideMessage: 'Previous slide',
11632      nextSlideMessage: 'Next slide',
11633      firstSlideMessage: 'This is the first slide',
11634      lastSlideMessage: 'This is the last slide',
11635      paginationBulletMessage: 'Go to slide {{index}}',
11636      slideLabelMessage: '{{index}} / {{slidesLength}}',
11637      containerMessage: null,
11638      containerRoleDescriptionMessage: null,
11639      itemRoleDescriptionMessage: null,
11640      slideRole: 'group',
11641      id: null,
11642      scrollOnFocus: true
11643    }
11644  });
11645  swiper.a11y = {
11646    clicked: false
11647  };
11648  let liveRegion = null;
11649  let preventFocusHandler;
11650  let focusTargetSlideEl;
11651  let visibilityChangedTimestamp = new Date().getTime();
11652  function notify(message) {
11653    const notification = liveRegion;
11654    if (notification.length === 0) return;
11655    notification.innerHTML = '';
11656    notification.innerHTML = message;
11657  }
11658  function getRandomNumber(size) {
11659    if (size === void 0) {
11660      size = 16;
11661    }
11662    const randomChar = () => Math.round(16 * Math.random()).toString(16);
11663    return 'x'.repeat(size).replace(/x/g, randomChar);
11664  }
11665  function makeElFocusable(el) {
11666    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11667    el.forEach(subEl => {
11668      subEl.setAttribute('tabIndex', '0');
11669    });
11670  }
11671  function makeElNotFocusable(el) {
11672    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11673    el.forEach(subEl => {
11674      subEl.setAttribute('tabIndex', '-1');
11675    });
11676  }
11677  function addElRole(el, role) {
11678    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11679    el.forEach(subEl => {
11680      subEl.setAttribute('role', role);
11681    });
11682  }
11683  function addElRoleDescription(el, description) {
11684    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11685    el.forEach(subEl => {
11686      subEl.setAttribute('aria-roledescription', description);
11687    });
11688  }
11689  function addElControls(el, controls) {
11690    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11691    el.forEach(subEl => {
11692      subEl.setAttribute('aria-controls', controls);
11693    });
11694  }
11695  function addElLabel(el, label) {
11696    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11697    el.forEach(subEl => {
11698      subEl.setAttribute('aria-label', label);
11699    });
11700  }
11701  function addElId(el, id) {
11702    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11703    el.forEach(subEl => {
11704      subEl.setAttribute('id', id);
11705    });
11706  }
11707  function addElLive(el, live) {
11708    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11709    el.forEach(subEl => {
11710      subEl.setAttribute('aria-live', live);
11711    });
11712  }
11713  function disableEl(el) {
11714    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11715    el.forEach(subEl => {
11716      subEl.setAttribute('aria-disabled', true);
11717    });
11718  }
11719  function enableEl(el) {
11720    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
11721    el.forEach(subEl => {
11722      subEl.setAttribute('aria-disabled', false);
11723    });
11724  }
11725  function onEnterOrSpaceKey(e) {
11726    if (e.keyCode !== 13 && e.keyCode !== 32) return;
11727    const params = swiper.params.a11y;
11728    const targetEl = e.target;
11729    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {
11730      if (!e.target.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) return;
11731    }
11732    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {
11733      const prevEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.prevEl);
11734      const nextEls = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.navigation.nextEl);
11735      if (nextEls.includes(targetEl)) {
11736        if (!(swiper.isEnd && !swiper.params.loop)) {
11737          swiper.slideNext();
11738        }
11739        if (swiper.isEnd) {
11740          notify(params.lastSlideMessage);
11741        } else {
11742          notify(params.nextSlideMessage);
11743        }
11744      }
11745      if (prevEls.includes(targetEl)) {
11746        if (!(swiper.isBeginning && !swiper.params.loop)) {
11747          swiper.slidePrev();
11748        }
11749        if (swiper.isBeginning) {
11750          notify(params.firstSlideMessage);
11751        } else {
11752          notify(params.prevSlideMessage);
11753        }
11754      }
11755    }
11756    if (swiper.pagination && targetEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletClass))) {
11757      targetEl.click();
11758    }
11759  }
11760  function updateNavigation() {
11761    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;
11762    const {
11763      nextEl,
11764      prevEl
11765    } = swiper.navigation;
11766    if (prevEl) {
11767      if (swiper.isBeginning) {
11768        disableEl(prevEl);
11769        makeElNotFocusable(prevEl);
11770      } else {
11771        enableEl(prevEl);
11772        makeElFocusable(prevEl);
11773      }
11774    }
11775    if (nextEl) {
11776      if (swiper.isEnd) {
11777        disableEl(nextEl);
11778        makeElNotFocusable(nextEl);
11779      } else {
11780        enableEl(nextEl);
11781        makeElFocusable(nextEl);
11782      }
11783    }
11784  }
11785  function hasPagination() {
11786    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;
11787  }
11788  function hasClickablePagination() {
11789    return hasPagination() && swiper.params.pagination.clickable;
11790  }
11791  function updatePagination() {
11792    const params = swiper.params.a11y;
11793    if (!hasPagination()) return;
11794    swiper.pagination.bullets.forEach(bulletEl => {
11795      if (swiper.params.pagination.clickable) {
11796        makeElFocusable(bulletEl);
11797        if (!swiper.params.pagination.renderBullet) {
11798          addElRole(bulletEl, 'button');
11799          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) + 1));
11800        }
11801      }
11802      if (bulletEl.matches((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper.params.pagination.bulletActiveClass))) {
11803        bulletEl.setAttribute('aria-current', 'true');
11804      } else {
11805        bulletEl.removeAttribute('aria-current');
11806      }
11807    });
11808  }
11809  const initNavEl = (el, wrapperId, message) => {
11810    makeElFocusable(el);
11811    if (el.tagName !== 'BUTTON') {
11812      addElRole(el, 'button');
11813      el.addEventListener('keydown', onEnterOrSpaceKey);
11814    }
11815    addElLabel(el, message);
11816    addElControls(el, wrapperId);
11817  };
11818  const handlePointerDown = e => {
11819    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {
11820      preventFocusHandler = true;
11821    }
11822    swiper.a11y.clicked = true;
11823  };
11824  const handlePointerUp = () => {
11825    preventFocusHandler = false;
11826    requestAnimationFrame(() => {
11827      requestAnimationFrame(() => {
11828        if (!swiper.destroyed) {
11829          swiper.a11y.clicked = false;
11830        }
11831      });
11832    });
11833  };
11834  const onVisibilityChange = e => {
11835    visibilityChangedTimestamp = new Date().getTime();
11836  };
11837  const handleFocus = e => {
11838    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;
11839    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;
11840    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
11841    if (!slideEl || !swiper.slides.includes(slideEl)) return;
11842    focusTargetSlideEl = slideEl;
11843    const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;
11844    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);
11845    if (isActive || isVisible) return;
11846    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;
11847    if (swiper.isHorizontal()) {
11848      swiper.el.scrollLeft = 0;
11849    } else {
11850      swiper.el.scrollTop = 0;
11851    }
11852    requestAnimationFrame(() => {
11853      if (preventFocusHandler) return;
11854      if (swiper.params.loop) {
11855        swiper.slideToLoop(parseInt(slideEl.getAttribute('data-swiper-slide-index')), 0);
11856      } else {
11857        swiper.slideTo(swiper.slides.indexOf(slideEl), 0);
11858      }
11859      preventFocusHandler = false;
11860    });
11861  };
11862  const initSlides = () => {
11863    const params = swiper.params.a11y;
11864    if (params.itemRoleDescriptionMessage) {
11865      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);
11866    }
11867    if (params.slideRole) {
11868      addElRole(swiper.slides, params.slideRole);
11869    }
11870    const slidesLength = swiper.slides.length;
11871    if (params.slideLabelMessage) {
11872      swiper.slides.forEach((slideEl, index) => {
11873        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;
11874        const ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength);
11875        addElLabel(slideEl, ariaLabelMessage);
11876      });
11877    }
11878  };
11879  const init = () => {
11880    const params = swiper.params.a11y;
11881    swiper.el.append(liveRegion);
11882
11883    // Container
11884    const containerEl = swiper.el;
11885    if (params.containerRoleDescriptionMessage) {
11886      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);
11887    }
11888    if (params.containerMessage) {
11889      addElLabel(containerEl, params.containerMessage);
11890    }
11891
11892    // Wrapper
11893    const wrapperEl = swiper.wrapperEl;
11894    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;
11895    const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';
11896    addElId(wrapperEl, wrapperId);
11897    addElLive(wrapperEl, live);
11898
11899    // Slide
11900    initSlides();
11901
11902    // Navigation
11903    let {
11904      nextEl,
11905      prevEl
11906    } = swiper.navigation ? swiper.navigation : {};
11907    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
11908    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
11909    if (nextEl) {
11910      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));
11911    }
11912    if (prevEl) {
11913      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));
11914    }
11915
11916    // Pagination
11917    if (hasClickablePagination()) {
11918      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
11919      paginationEl.forEach(el => {
11920        el.addEventListener('keydown', onEnterOrSpaceKey);
11921      });
11922    }
11923
11924    // Tab focus
11925    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
11926    document.addEventListener('visibilitychange', onVisibilityChange);
11927    swiper.el.addEventListener('focus', handleFocus, true);
11928    swiper.el.addEventListener('focus', handleFocus, true);
11929    swiper.el.addEventListener('pointerdown', handlePointerDown, true);
11930    swiper.el.addEventListener('pointerup', handlePointerUp, true);
11931  };
11932  function destroy() {
11933    if (liveRegion) liveRegion.remove();
11934    let {
11935      nextEl,
11936      prevEl
11937    } = swiper.navigation ? swiper.navigation : {};
11938    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(nextEl);
11939    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(prevEl);
11940    if (nextEl) {
11941      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
11942    }
11943    if (prevEl) {
11944      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));
11945    }
11946
11947    // Pagination
11948    if (hasClickablePagination()) {
11949      const paginationEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
11950      paginationEl.forEach(el => {
11951        el.removeEventListener('keydown', onEnterOrSpaceKey);
11952      });
11953    }
11954    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
11955    document.removeEventListener('visibilitychange', onVisibilityChange);
11956    // Tab focus
11957    if (swiper.el && typeof swiper.el !== 'string') {
11958      swiper.el.removeEventListener('focus', handleFocus, true);
11959      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);
11960      swiper.el.removeEventListener('pointerup', handlePointerUp, true);
11961    }
11962  }
11963  on('beforeInit', () => {
11964    liveRegion = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.c)('span', swiper.params.a11y.notificationClass);
11965    liveRegion.setAttribute('aria-live', 'assertive');
11966    liveRegion.setAttribute('aria-atomic', 'true');
11967  });
11968  on('afterInit', () => {
11969    if (!swiper.params.a11y.enabled) return;
11970    init();
11971  });
11972  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {
11973    if (!swiper.params.a11y.enabled) return;
11974    initSlides();
11975  });
11976  on('fromEdge toEdge afterInit lock unlock', () => {
11977    if (!swiper.params.a11y.enabled) return;
11978    updateNavigation();
11979  });
11980  on('paginationUpdate', () => {
11981    if (!swiper.params.a11y.enabled) return;
11982    updatePagination();
11983  });
11984  on('destroy', () => {
11985    if (!swiper.params.a11y.enabled) return;
11986    destroy();
11987  });
11988}
11989
11990
11991
11992
11993/***/ }),
11994
vendor: 10,055 bytes, lines 11995-12313
11995/***/ "./node_modules/swiper/modules/autoplay.mjs":
11996/*!**************************************************!*\
11997  !*** ./node_modules/swiper/modules/autoplay.mjs ***!
11998  \**************************************************/
11999/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12000
12001__webpack_require__.r(__webpack_exports__);
12002/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12003/* harmony export */   "default": function() { return /* binding */ Autoplay; }
12004/* harmony export */ });
12005/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
12006
12007
12008/* eslint no-underscore-dangle: "off" */
12009/* eslint no-use-before-define: "off" */
12010function Autoplay(_ref) {
12011  let {
12012    swiper,
12013    extendParams,
12014    on,
12015    emit,
12016    params
12017  } = _ref;
12018  swiper.autoplay = {
12019    running: false,
12020    paused: false,
12021    timeLeft: 0
12022  };
12023  extendParams({
12024    autoplay: {
12025      enabled: false,
12026      delay: 3000,
12027      waitForTransition: true,
12028      disableOnInteraction: false,
12029      stopOnLastSlide: false,
12030      reverseDirection: false,
12031      pauseOnMouseEnter: false
12032    }
12033  });
12034  let timeout;
12035  let raf;
12036  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;
12037  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;
12038  let autoplayTimeLeft;
12039  let autoplayStartTime = new Date().getTime();
12040  let wasPaused;
12041  let isTouched;
12042  let pausedByTouch;
12043  let touchStartTimeout;
12044  let slideChanged;
12045  let pausedByInteraction;
12046  let pausedByPointerEnter;
12047  function onTransitionEnd(e) {
12048    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;
12049    if (e.target !== swiper.wrapperEl) return;
12050    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);
12051    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {
12052      return;
12053    }
12054    resume();
12055  }
12056  const calcTimeLeft = () => {
12057    if (swiper.destroyed || !swiper.autoplay.running) return;
12058    if (swiper.autoplay.paused) {
12059      wasPaused = true;
12060    } else if (wasPaused) {
12061      autoplayDelayCurrent = autoplayTimeLeft;
12062      wasPaused = false;
12063    }
12064    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();
12065    swiper.autoplay.timeLeft = timeLeft;
12066    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);
12067    raf = requestAnimationFrame(() => {
12068      calcTimeLeft();
12069    });
12070  };
12071  const getSlideDelay = () => {
12072    let activeSlideEl;
12073    if (swiper.virtual && swiper.params.virtual.enabled) {
12074      activeSlideEl = swiper.slides.filter(slideEl => slideEl.classList.contains('swiper-slide-active'))[0];
12075    } else {
12076      activeSlideEl = swiper.slides[swiper.activeIndex];
12077    }
12078    if (!activeSlideEl) return undefined;
12079    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);
12080    return currentSlideDelay;
12081  };
12082  const run = delayForce => {
12083    if (swiper.destroyed || !swiper.autoplay.running) return;
12084    cancelAnimationFrame(raf);
12085    calcTimeLeft();
12086    let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;
12087    autoplayDelayTotal = swiper.params.autoplay.delay;
12088    autoplayDelayCurrent = swiper.params.autoplay.delay;
12089    const currentSlideDelay = getSlideDelay();
12090    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {
12091      delay = currentSlideDelay;
12092      autoplayDelayTotal = currentSlideDelay;
12093      autoplayDelayCurrent = currentSlideDelay;
12094    }
12095    autoplayTimeLeft = delay;
12096    const speed = swiper.params.speed;
12097    const proceed = () => {
12098      if (!swiper || swiper.destroyed) return;
12099      if (swiper.params.autoplay.reverseDirection) {
12100        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {
12101          swiper.slidePrev(speed, true, true);
12102          emit('autoplay');
12103        } else if (!swiper.params.autoplay.stopOnLastSlide) {
12104          swiper.slideTo(swiper.slides.length - 1, speed, true, true);
12105          emit('autoplay');
12106        }
12107      } else {
12108        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {
12109          swiper.slideNext(speed, true, true);
12110          emit('autoplay');
12111        } else if (!swiper.params.autoplay.stopOnLastSlide) {
12112          swiper.slideTo(0, speed, true, true);
12113          emit('autoplay');
12114        }
12115      }
12116      if (swiper.params.cssMode) {
12117        autoplayStartTime = new Date().getTime();
12118        requestAnimationFrame(() => {
12119          run();
12120        });
12121      }
12122    };
12123    if (delay > 0) {
12124      clearTimeout(timeout);
12125      timeout = setTimeout(() => {
12126        proceed();
12127      }, delay);
12128    } else {
12129      requestAnimationFrame(() => {
12130        proceed();
12131      });
12132    }
12133
12134    // eslint-disable-next-line
12135    return delay;
12136  };
12137  const start = () => {
12138    autoplayStartTime = new Date().getTime();
12139    swiper.autoplay.running = true;
12140    run();
12141    emit('autoplayStart');
12142  };
12143  const stop = () => {
12144    swiper.autoplay.running = false;
12145    clearTimeout(timeout);
12146    cancelAnimationFrame(raf);
12147    emit('autoplayStop');
12148  };
12149  const pause = (internal, reset) => {
12150    if (swiper.destroyed || !swiper.autoplay.running) return;
12151    clearTimeout(timeout);
12152    if (!internal) {
12153      pausedByInteraction = true;
12154    }
12155    const proceed = () => {
12156      emit('autoplayPause');
12157      if (swiper.params.autoplay.waitForTransition) {
12158        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);
12159      } else {
12160        resume();
12161      }
12162    };
12163    swiper.autoplay.paused = true;
12164    if (reset) {
12165      if (slideChanged) {
12166        autoplayTimeLeft = swiper.params.autoplay.delay;
12167      }
12168      slideChanged = false;
12169      proceed();
12170      return;
12171    }
12172    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;
12173    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);
12174    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;
12175    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;
12176    proceed();
12177  };
12178  const resume = () => {
12179    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;
12180    autoplayStartTime = new Date().getTime();
12181    if (pausedByInteraction) {
12182      pausedByInteraction = false;
12183      run(autoplayTimeLeft);
12184    } else {
12185      run();
12186    }
12187    swiper.autoplay.paused = false;
12188    emit('autoplayResume');
12189  };
12190  const onVisibilityChange = () => {
12191    if (swiper.destroyed || !swiper.autoplay.running) return;
12192    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
12193    if (document.visibilityState === 'hidden') {
12194      pausedByInteraction = true;
12195      pause(true);
12196    }
12197    if (document.visibilityState === 'visible') {
12198      resume();
12199    }
12200  };
12201  const onPointerEnter = e => {
12202    if (e.pointerType !== 'mouse') return;
12203    pausedByInteraction = true;
12204    pausedByPointerEnter = true;
12205    if (swiper.animating || swiper.autoplay.paused) return;
12206    pause(true);
12207  };
12208  const onPointerLeave = e => {
12209    if (e.pointerType !== 'mouse') return;
12210    pausedByPointerEnter = false;
12211    if (swiper.autoplay.paused) {
12212      resume();
12213    }
12214  };
12215  const attachMouseEvents = () => {
12216    if (swiper.params.autoplay.pauseOnMouseEnter) {
12217      swiper.el.addEventListener('pointerenter', onPointerEnter);
12218      swiper.el.addEventListener('pointerleave', onPointerLeave);
12219    }
12220  };
12221  const detachMouseEvents = () => {
12222    if (swiper.el && typeof swiper.el !== 'string') {
12223      swiper.el.removeEventListener('pointerenter', onPointerEnter);
12224      swiper.el.removeEventListener('pointerleave', onPointerLeave);
12225    }
12226  };
12227  const attachDocumentEvents = () => {
12228    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
12229    document.addEventListener('visibilitychange', onVisibilityChange);
12230  };
12231  const detachDocumentEvents = () => {
12232    const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
12233    document.removeEventListener('visibilitychange', onVisibilityChange);
12234  };
12235  on('init', () => {
12236    if (swiper.params.autoplay.enabled) {
12237      attachMouseEvents();
12238      attachDocumentEvents();
12239      start();
12240    }
12241  });
12242  on('destroy', () => {
12243    detachMouseEvents();
12244    detachDocumentEvents();
12245    if (swiper.autoplay.running) {
12246      stop();
12247    }
12248  });
12249  on('_freeModeStaticRelease', () => {
12250    if (pausedByTouch || pausedByInteraction) {
12251      resume();
12252    }
12253  });
12254  on('_freeModeNoMomentumRelease', () => {
12255    if (!swiper.params.autoplay.disableOnInteraction) {
12256      pause(true, true);
12257    } else {
12258      stop();
12259    }
12260  });
12261  on('beforeTransitionStart', (_s, speed, internal) => {
12262    if (swiper.destroyed || !swiper.autoplay.running) return;
12263    if (internal || !swiper.params.autoplay.disableOnInteraction) {
12264      pause(true, true);
12265    } else {
12266      stop();
12267    }
12268  });
12269  on('sliderFirstMove', () => {
12270    if (swiper.destroyed || !swiper.autoplay.running) return;
12271    if (swiper.params.autoplay.disableOnInteraction) {
12272      stop();
12273      return;
12274    }
12275    isTouched = true;
12276    pausedByTouch = false;
12277    pausedByInteraction = false;
12278    touchStartTimeout = setTimeout(() => {
12279      pausedByInteraction = true;
12280      pausedByTouch = true;
12281      pause(true);
12282    }, 200);
12283  });
12284  on('touchEnd', () => {
12285    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;
12286    clearTimeout(touchStartTimeout);
12287    clearTimeout(timeout);
12288    if (swiper.params.autoplay.disableOnInteraction) {
12289      pausedByTouch = false;
12290      isTouched = false;
12291      return;
12292    }
12293    if (pausedByTouch && swiper.params.cssMode) resume();
12294    pausedByTouch = false;
12295    isTouched = false;
12296  });
12297  on('slideChange', () => {
12298    if (swiper.destroyed || !swiper.autoplay.running) return;
12299    slideChanged = true;
12300  });
12301  Object.assign(swiper.autoplay, {
12302    start,
12303    stop,
12304    pause,
12305    resume
12306  });
12307}
12308
12309
12310
12311
12312/***/ }),
12313
vendor: 7,519 bytes, lines 12314-12519
12314/***/ "./node_modules/swiper/modules/controller.mjs":
12315/*!****************************************************!*\
12316  !*** ./node_modules/swiper/modules/controller.mjs ***!
12317  \****************************************************/
12318/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12319
12320__webpack_require__.r(__webpack_exports__);
12321/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12322/* harmony export */   "default": function() { return /* binding */ Controller; }
12323/* harmony export */ });
12324/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
12325
12326
12327/* eslint no-bitwise: ["error", { "allow": [">>"] }] */
12328function Controller(_ref) {
12329  let {
12330    swiper,
12331    extendParams,
12332    on
12333  } = _ref;
12334  extendParams({
12335    controller: {
12336      control: undefined,
12337      inverse: false,
12338      by: 'slide' // or 'container'
12339    }
12340  });
12341
12342  swiper.controller = {
12343    control: undefined
12344  };
12345  function LinearSpline(x, y) {
12346    const binarySearch = function search() {
12347      let maxIndex;
12348      let minIndex;
12349      let guess;
12350      return (array, val) => {
12351        minIndex = -1;
12352        maxIndex = array.length;
12353        while (maxIndex - minIndex > 1) {
12354          guess = maxIndex + minIndex >> 1;
12355          if (array[guess] <= val) {
12356            minIndex = guess;
12357          } else {
12358            maxIndex = guess;
12359          }
12360        }
12361        return maxIndex;
12362      };
12363    }();
12364    this.x = x;
12365    this.y = y;
12366    this.lastIndex = x.length - 1;
12367    // Given an x value (x2), return the expected y2 value:
12368    // (x1,y1) is the known point before given value,
12369    // (x3,y3) is the known point after given value.
12370    let i1;
12371    let i3;
12372    this.interpolate = function interpolate(x2) {
12373      if (!x2) return 0;
12374
12375      // Get the indexes of x1 and x3 (the array indexes before and after given x2):
12376      i3 = binarySearch(this.x, x2);
12377      i1 = i3 - 1;
12378
12379      // We have our indexes i1 & i3, so we can calculate already:
12380      // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1
12381      return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];
12382    };
12383    return this;
12384  }
12385  function getInterpolateFunction(c) {
12386    swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);
12387  }
12388  function setTranslate(_t, byController) {
12389    const controlled = swiper.controller.control;
12390    let multiplier;
12391    let controlledTranslate;
12392    const Swiper = swiper.constructor;
12393    function setControlledTranslate(c) {
12394      if (c.destroyed) return;
12395
12396      // this will create an Interpolate function based on the snapGrids
12397      // x is the Grid of the scrolled scroller and y will be the controlled scroller
12398      // it makes sense to create this only once and recall it for the interpolation
12399      // the function does a lot of value caching for performance
12400      const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;
12401      if (swiper.params.controller.by === 'slide') {
12402        getInterpolateFunction(c);
12403        // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid
12404        // but it did not work out
12405        controlledTranslate = -swiper.controller.spline.interpolate(-translate);
12406      }
12407      if (!controlledTranslate || swiper.params.controller.by === 'container') {
12408        multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());
12409        if (Number.isNaN(multiplier) || !Number.isFinite(multiplier)) {
12410          multiplier = 1;
12411        }
12412        controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();
12413      }
12414      if (swiper.params.controller.inverse) {
12415        controlledTranslate = c.maxTranslate() - controlledTranslate;
12416      }
12417      c.updateProgress(controlledTranslate);
12418      c.setTranslate(controlledTranslate, swiper);
12419      c.updateActiveIndex();
12420      c.updateSlidesClasses();
12421    }
12422    if (Array.isArray(controlled)) {
12423      for (let i = 0; i < controlled.length; i += 1) {
12424        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
12425          setControlledTranslate(controlled[i]);
12426        }
12427      }
12428    } else if (controlled instanceof Swiper && byController !== controlled) {
12429      setControlledTranslate(controlled);
12430    }
12431  }
12432  function setTransition(duration, byController) {
12433    const Swiper = swiper.constructor;
12434    const controlled = swiper.controller.control;
12435    let i;
12436    function setControlledTransition(c) {
12437      if (c.destroyed) return;
12438      c.setTransition(duration, swiper);
12439      if (duration !== 0) {
12440        c.transitionStart();
12441        if (c.params.autoHeight) {
12442          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.n)(() => {
12443            c.updateAutoHeight();
12444          });
12445        }
12446        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(c.wrapperEl, () => {
12447          if (!controlled) return;
12448          c.transitionEnd();
12449        });
12450      }
12451    }
12452    if (Array.isArray(controlled)) {
12453      for (i = 0; i < controlled.length; i += 1) {
12454        if (controlled[i] !== byController && controlled[i] instanceof Swiper) {
12455          setControlledTransition(controlled[i]);
12456        }
12457      }
12458    } else if (controlled instanceof Swiper && byController !== controlled) {
12459      setControlledTransition(controlled);
12460    }
12461  }
12462  function removeSpline() {
12463    if (!swiper.controller.control) return;
12464    if (swiper.controller.spline) {
12465      swiper.controller.spline = undefined;
12466      delete swiper.controller.spline;
12467    }
12468  }
12469  on('beforeInit', () => {
12470    if (typeof window !== 'undefined' && (
12471    // eslint-disable-line
12472    typeof swiper.params.controller.control === 'string' || swiper.params.controller.control instanceof HTMLElement)) {
12473      const controlElements = typeof swiper.params.controller.control === 'string' ? [...document.querySelectorAll(swiper.params.controller.control)] : [swiper.params.controller.control];
12474      controlElements.forEach(controlElement => {
12475        if (!swiper.controller.control) swiper.controller.control = [];
12476        if (controlElement && controlElement.swiper) {
12477          swiper.controller.control.push(controlElement.swiper);
12478        } else if (controlElement) {
12479          const eventName = `${swiper.params.eventsPrefix}init`;
12480          const onControllerSwiper = e => {
12481            swiper.controller.control.push(e.detail[0]);
12482            swiper.update();
12483            controlElement.removeEventListener(eventName, onControllerSwiper);
12484          };
12485          controlElement.addEventListener(eventName, onControllerSwiper);
12486        }
12487      });
12488      return;
12489    }
12490    swiper.controller.control = swiper.params.controller.control;
12491  });
12492  on('update', () => {
12493    removeSpline();
12494  });
12495  on('resize', () => {
12496    removeSpline();
12497  });
12498  on('observerUpdate', () => {
12499    removeSpline();
12500  });
12501  on('setTranslate', (_s, translate, byController) => {
12502    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
12503    swiper.controller.setTranslate(translate, byController);
12504  });
12505  on('setTransition', (_s, duration, byController) => {
12506    if (!swiper.controller.control || swiper.controller.control.destroyed) return;
12507    swiper.controller.setTransition(duration, byController);
12508  });
12509  Object.assign(swiper.controller, {
12510    setTranslate,
12511    setTransition
12512  });
12513}
12514
12515
12516
12517
12518/***/ }),
12519
vendor: 5,916 bytes, lines 12520-12663
12520/***/ "./node_modules/swiper/modules/effect-cards.mjs":
12521/*!******************************************************!*\
12522  !*** ./node_modules/swiper/modules/effect-cards.mjs ***!
12523  \******************************************************/
12524/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12525
12526__webpack_require__.r(__webpack_exports__);
12527/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12528/* harmony export */   "default": function() { return /* binding */ EffectCards; }
12529/* harmony export */ });
12530/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
12531/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
12532/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
12533/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
12534/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
12535
12536
12537
12538
12539
12540
12541function EffectCards(_ref) {
12542  let {
12543    swiper,
12544    extendParams,
12545    on
12546  } = _ref;
12547  extendParams({
12548    cardsEffect: {
12549      slideShadows: true,
12550      rotate: true,
12551      perSlideRotate: 2,
12552      perSlideOffset: 8
12553    }
12554  });
12555  const setTranslate = () => {
12556    const {
12557      slides,
12558      activeIndex,
12559      rtlTranslate: rtl
12560    } = swiper;
12561    const params = swiper.params.cardsEffect;
12562    const {
12563      startTranslate,
12564      isTouched
12565    } = swiper.touchEventsData;
12566    const currentTranslate = rtl ? -swiper.translate : swiper.translate;
12567    for (let i = 0; i < slides.length; i += 1) {
12568      const slideEl = slides[i];
12569      const slideProgress = slideEl.progress;
12570      const progress = Math.min(Math.max(slideProgress, -4), 4);
12571      let offset = slideEl.swiperSlideOffset;
12572      if (swiper.params.centeredSlides && !swiper.params.cssMode) {
12573        swiper.wrapperEl.style.transform = `translateX(${swiper.minTranslate()}px)`;
12574      }
12575      if (swiper.params.centeredSlides && swiper.params.cssMode) {
12576        offset -= slides[0].swiperSlideOffset;
12577      }
12578      let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;
12579      let tY = 0;
12580      const tZ = -100 * Math.abs(progress);
12581      let scale = 1;
12582      let rotate = -params.perSlideRotate * progress;
12583      let tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75;
12584      const slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;
12585      const isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;
12586      const isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;
12587      if (isSwipeToNext || isSwipeToPrev) {
12588        const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;
12589        rotate += -28 * progress * subProgress;
12590        scale += -0.5 * subProgress;
12591        tXAdd += 96 * subProgress;
12592        tY = `${-25 * subProgress * Math.abs(progress)}%`;
12593      }
12594      if (progress < 0) {
12595        // next
12596        tX = `calc(${tX}px ${rtl ? '-' : '+'} (${tXAdd * Math.abs(progress)}%))`;
12597      } else if (progress > 0) {
12598        // prev
12599        tX = `calc(${tX}px ${rtl ? '-' : '+'} (-${tXAdd * Math.abs(progress)}%))`;
12600      } else {
12601        tX = `${tX}px`;
12602      }
12603      if (!swiper.isHorizontal()) {
12604        const prevY = tY;
12605        tY = tX;
12606        tX = prevY;
12607      }
12608      const scaleString = progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;
12609
12610      /* eslint-disable */
12611      const transform = `
12612        translate3d(${tX}, ${tY}, ${tZ}px)
12613        rotateZ(${params.rotate ? rtl ? -rotate : rotate : 0}deg)
12614        scale(${scaleString})
12615      `;
12616      /* eslint-enable */
12617
12618      if (params.slideShadows) {
12619        // Set shadows
12620        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
12621        if (!shadowEl) {
12622          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('cards', slideEl);
12623        }
12624        if (shadowEl) shadowEl.style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);
12625      }
12626      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
12627      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
12628      targetEl.style.transform = transform;
12629    }
12630  };
12631  const setTransition = duration => {
12632    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
12633    transformElements.forEach(el => {
12634      el.style.transitionDuration = `${duration}ms`;
12635      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
12636        shadowEl.style.transitionDuration = `${duration}ms`;
12637      });
12638    });
12639    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
12640      swiper,
12641      duration,
12642      transformElements
12643    });
12644  };
12645  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
12646    effect: 'cards',
12647    swiper,
12648    on,
12649    setTranslate,
12650    setTransition,
12651    perspective: () => true,
12652    overwriteParams: () => ({
12653      watchSlidesProgress: true,
12654      virtualTranslate: !swiper.params.cssMode
12655    })
12656  });
12657}
12658
12659
12660
12661
12662/***/ }),
12663
vendor: 5,700 bytes, lines 12664-12785
12664/***/ "./node_modules/swiper/modules/effect-coverflow.mjs":
12665/*!**********************************************************!*\
12666  !*** ./node_modules/swiper/modules/effect-coverflow.mjs ***!
12667  \**********************************************************/
12668/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12669
12670__webpack_require__.r(__webpack_exports__);
12671/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12672/* harmony export */   "default": function() { return /* binding */ EffectCoverflow; }
12673/* harmony export */ });
12674/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
12675/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
12676/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
12677/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
12678
12679
12680
12681
12682
12683function EffectCoverflow(_ref) {
12684  let {
12685    swiper,
12686    extendParams,
12687    on
12688  } = _ref;
12689  extendParams({
12690    coverflowEffect: {
12691      rotate: 50,
12692      stretch: 0,
12693      depth: 100,
12694      scale: 1,
12695      modifier: 1,
12696      slideShadows: true
12697    }
12698  });
12699  const setTranslate = () => {
12700    const {
12701      width: swiperWidth,
12702      height: swiperHeight,
12703      slides,
12704      slidesSizesGrid
12705    } = swiper;
12706    const params = swiper.params.coverflowEffect;
12707    const isHorizontal = swiper.isHorizontal();
12708    const transform = swiper.translate;
12709    const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;
12710    const rotate = isHorizontal ? params.rotate : -params.rotate;
12711    const translate = params.depth;
12712    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.o)(swiper);
12713    // Each slide offset from center
12714    for (let i = 0, length = slides.length; i < length; i += 1) {
12715      const slideEl = slides[i];
12716      const slideSize = slidesSizesGrid[i];
12717      const slideOffset = slideEl.swiperSlideOffset;
12718      const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;
12719      const offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier;
12720      let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;
12721      let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;
12722      // var rotateZ = 0
12723      let translateZ = -translate * Math.abs(offsetMultiplier);
12724      let stretch = params.stretch;
12725      // Allow percentage to make a relative stretch for responsive sliders
12726      if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {
12727        stretch = parseFloat(params.stretch) / 100 * slideSize;
12728      }
12729      let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;
12730      let translateX = isHorizontal ? stretch * offsetMultiplier : 0;
12731      let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);
12732
12733      // Fix for ultra small values
12734      if (Math.abs(translateX) < 0.001) translateX = 0;
12735      if (Math.abs(translateY) < 0.001) translateY = 0;
12736      if (Math.abs(translateZ) < 0.001) translateZ = 0;
12737      if (Math.abs(rotateY) < 0.001) rotateY = 0;
12738      if (Math.abs(rotateX) < 0.001) rotateX = 0;
12739      if (Math.abs(scale) < 0.001) scale = 0;
12740      const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px)  rotateX(${r(rotateX)}deg) rotateY(${r(rotateY)}deg) scale(${scale})`;
12741      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
12742      targetEl.style.transform = slideTransform;
12743      slideEl.style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;
12744      if (params.slideShadows) {
12745        // Set shadows
12746        let shadowBeforeEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
12747        let shadowAfterEl = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
12748        if (!shadowBeforeEl) {
12749          shadowBeforeEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'left' : 'top');
12750        }
12751        if (!shadowAfterEl) {
12752          shadowAfterEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('coverflow', slideEl, isHorizontal ? 'right' : 'bottom');
12753        }
12754        if (shadowBeforeEl) shadowBeforeEl.style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;
12755        if (shadowAfterEl) shadowAfterEl.style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;
12756      }
12757    }
12758  };
12759  const setTransition = duration => {
12760    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
12761    transformElements.forEach(el => {
12762      el.style.transitionDuration = `${duration}ms`;
12763      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
12764        shadowEl.style.transitionDuration = `${duration}ms`;
12765      });
12766    });
12767  };
12768  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
12769    effect: 'coverflow',
12770    swiper,
12771    on,
12772    setTranslate,
12773    setTransition,
12774    perspective: () => true,
12775    overwriteParams: () => ({
12776      watchSlidesProgress: true
12777    })
12778  });
12779}
12780
12781
12782
12783
12784/***/ }),
12785
vendor: 6,469 bytes, lines 12786-12950
12786/***/ "./node_modules/swiper/modules/effect-creative.mjs":
12787/*!*********************************************************!*\
12788  !*** ./node_modules/swiper/modules/effect-creative.mjs ***!
12789  \*********************************************************/
12790/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12791
12792__webpack_require__.r(__webpack_exports__);
12793/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12794/* harmony export */   "default": function() { return /* binding */ EffectCreative; }
12795/* harmony export */ });
12796/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
12797/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
12798/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
12799/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
12800/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
12801
12802
12803
12804
12805
12806
12807function EffectCreative(_ref) {
12808  let {
12809    swiper,
12810    extendParams,
12811    on
12812  } = _ref;
12813  extendParams({
12814    creativeEffect: {
12815      limitProgress: 1,
12816      shadowPerProgress: false,
12817      progressMultiplier: 1,
12818      perspective: true,
12819      prev: {
12820        translate: [0, 0, 0],
12821        rotate: [0, 0, 0],
12822        opacity: 1,
12823        scale: 1
12824      },
12825      next: {
12826        translate: [0, 0, 0],
12827        rotate: [0, 0, 0],
12828        opacity: 1,
12829        scale: 1
12830      }
12831    }
12832  });
12833  const getTranslateValue = value => {
12834    if (typeof value === 'string') return value;
12835    return `${value}px`;
12836  };
12837  const setTranslate = () => {
12838    const {
12839      slides,
12840      wrapperEl,
12841      slidesSizesGrid
12842    } = swiper;
12843    const params = swiper.params.creativeEffect;
12844    const {
12845      progressMultiplier: multiplier
12846    } = params;
12847    const isCenteredSlides = swiper.params.centeredSlides;
12848    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
12849    if (isCenteredSlides) {
12850      const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;
12851      wrapperEl.style.transform = `translateX(calc(50% - ${margin}px))`;
12852    }
12853    for (let i = 0; i < slides.length; i += 1) {
12854      const slideEl = slides[i];
12855      const slideProgress = slideEl.progress;
12856      const progress = Math.min(Math.max(slideEl.progress, -params.limitProgress), params.limitProgress);
12857      let originalProgress = progress;
12858      if (!isCenteredSlides) {
12859        originalProgress = Math.min(Math.max(slideEl.originalProgress, -params.limitProgress), params.limitProgress);
12860      }
12861      const offset = slideEl.swiperSlideOffset;
12862      const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];
12863      const r = [0, 0, 0];
12864      let custom = false;
12865      if (!swiper.isHorizontal()) {
12866        t[1] = t[0];
12867        t[0] = 0;
12868      }
12869      let data = {
12870        translate: [0, 0, 0],
12871        rotate: [0, 0, 0],
12872        scale: 1,
12873        opacity: 1
12874      };
12875      if (progress < 0) {
12876        data = params.next;
12877        custom = true;
12878      } else if (progress > 0) {
12879        data = params.prev;
12880        custom = true;
12881      }
12882      // set translate
12883      t.forEach((value, index) => {
12884        t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(progress * multiplier)}))`;
12885      });
12886      // set rotates
12887      r.forEach((value, index) => {
12888        let val = data.rotate[index] * Math.abs(progress * multiplier);
12889        r[index] = val;
12890      });
12891      slideEl.style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;
12892      const translateString = t.join(', ');
12893      const rotateString = `rotateX(${rotateFix(r[0])}deg) rotateY(${rotateFix(r[1])}deg) rotateZ(${rotateFix(r[2])}deg)`;
12894      const scaleString = originalProgress < 0 ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})` : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;
12895      const opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier;
12896      const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;
12897
12898      // Set shadows
12899      if (custom && data.shadow || !custom) {
12900        let shadowEl = slideEl.querySelector('.swiper-slide-shadow');
12901        if (!shadowEl && data.shadow) {
12902          shadowEl = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('creative', slideEl);
12903        }
12904        if (shadowEl) {
12905          const shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;
12906          shadowEl.style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);
12907        }
12908      }
12909      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
12910      targetEl.style.transform = transform;
12911      targetEl.style.opacity = opacityString;
12912      if (data.origin) {
12913        targetEl.style.transformOrigin = data.origin;
12914      }
12915    }
12916  };
12917  const setTransition = duration => {
12918    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
12919    transformElements.forEach(el => {
12920      el.style.transitionDuration = `${duration}ms`;
12921      el.querySelectorAll('.swiper-slide-shadow').forEach(shadowEl => {
12922        shadowEl.style.transitionDuration = `${duration}ms`;
12923      });
12924    });
12925    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
12926      swiper,
12927      duration,
12928      transformElements,
12929      allSlides: true
12930    });
12931  };
12932  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
12933    effect: 'creative',
12934    swiper,
12935    on,
12936    setTranslate,
12937    setTransition,
12938    perspective: () => swiper.params.creativeEffect.perspective,
12939    overwriteParams: () => ({
12940      watchSlidesProgress: true,
12941      virtualTranslate: !swiper.params.cssMode
12942    })
12943  });
12944}
12945
12946
12947
12948
12949/***/ }),
12950
vendor: 7,622 bytes, lines 12951-13140
12951/***/ "./node_modules/swiper/modules/effect-cube.mjs":
12952/*!*****************************************************!*\
12953  !*** ./node_modules/swiper/modules/effect-cube.mjs ***!
12954  \*****************************************************/
12955/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
12956
12957__webpack_require__.r(__webpack_exports__);
12958/* harmony export */ __webpack_require__.d(__webpack_exports__, {
12959/* harmony export */   "default": function() { return /* binding */ EffectCube; }
12960/* harmony export */ });
12961/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
12962/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
12963
12964
12965
12966function EffectCube(_ref) {
12967  let {
12968    swiper,
12969    extendParams,
12970    on
12971  } = _ref;
12972  extendParams({
12973    cubeEffect: {
12974      slideShadows: true,
12975      shadow: true,
12976      shadowOffset: 20,
12977      shadowScale: 0.94
12978    }
12979  });
12980  const createSlideShadows = (slideEl, progress, isHorizontal) => {
12981    let shadowBefore = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
12982    let shadowAfter = isHorizontal ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
12983    if (!shadowBefore) {
12984      shadowBefore = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'left' : 'top'}`.split(' '));
12985      slideEl.append(shadowBefore);
12986    }
12987    if (!shadowAfter) {
12988      shadowAfter = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', `swiper-slide-shadow-cube swiper-slide-shadow-${isHorizontal ? 'right' : 'bottom'}`.split(' '));
12989      slideEl.append(shadowAfter);
12990    }
12991    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
12992    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
12993  };
12994  const recreateShadows = () => {
12995    // create new ones
12996    const isHorizontal = swiper.isHorizontal();
12997    swiper.slides.forEach(slideEl => {
12998      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
12999      createSlideShadows(slideEl, progress, isHorizontal);
13000    });
13001  };
13002  const setTranslate = () => {
13003    const {
13004      el,
13005      wrapperEl,
13006      slides,
13007      width: swiperWidth,
13008      height: swiperHeight,
13009      rtlTranslate: rtl,
13010      size: swiperSize,
13011      browser
13012    } = swiper;
13013    const r = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.o)(swiper);
13014    const params = swiper.params.cubeEffect;
13015    const isHorizontal = swiper.isHorizontal();
13016    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
13017    let wrapperRotate = 0;
13018    let cubeShadowEl;
13019    if (params.shadow) {
13020      if (isHorizontal) {
13021        cubeShadowEl = swiper.wrapperEl.querySelector('.swiper-cube-shadow');
13022        if (!cubeShadowEl) {
13023          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
13024          swiper.wrapperEl.append(cubeShadowEl);
13025        }
13026        cubeShadowEl.style.height = `${swiperWidth}px`;
13027      } else {
13028        cubeShadowEl = el.querySelector('.swiper-cube-shadow');
13029        if (!cubeShadowEl) {
13030          cubeShadowEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', 'swiper-cube-shadow');
13031          el.append(cubeShadowEl);
13032        }
13033      }
13034    }
13035    for (let i = 0; i < slides.length; i += 1) {
13036      const slideEl = slides[i];
13037      let slideIndex = i;
13038      if (isVirtual) {
13039        slideIndex = parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10);
13040      }
13041      let slideAngle = slideIndex * 90;
13042      let round = Math.floor(slideAngle / 360);
13043      if (rtl) {
13044        slideAngle = -slideAngle;
13045        round = Math.floor(-slideAngle / 360);
13046      }
13047      const progress = Math.max(Math.min(slideEl.progress, 1), -1);
13048      let tx = 0;
13049      let ty = 0;
13050      let tz = 0;
13051      if (slideIndex % 4 === 0) {
13052        tx = -round * 4 * swiperSize;
13053        tz = 0;
13054      } else if ((slideIndex - 1) % 4 === 0) {
13055        tx = 0;
13056        tz = -round * 4 * swiperSize;
13057      } else if ((slideIndex - 2) % 4 === 0) {
13058        tx = swiperSize + round * 4 * swiperSize;
13059        tz = swiperSize;
13060      } else if ((slideIndex - 3) % 4 === 0) {
13061        tx = -swiperSize;
13062        tz = 3 * swiperSize + swiperSize * 4 * round;
13063      }
13064      if (rtl) {
13065        tx = -tx;
13066      }
13067      if (!isHorizontal) {
13068        ty = tx;
13069        tx = 0;
13070      }
13071      const transform = `rotateX(${r(isHorizontal ? 0 : -slideAngle)}deg) rotateY(${r(isHorizontal ? slideAngle : 0)}deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;
13072      if (progress <= 1 && progress > -1) {
13073        wrapperRotate = slideIndex * 90 + progress * 90;
13074        if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;
13075      }
13076      slideEl.style.transform = transform;
13077      if (params.slideShadows) {
13078        createSlideShadows(slideEl, progress, isHorizontal);
13079      }
13080    }
13081    wrapperEl.style.transformOrigin = `50% 50% -${swiperSize / 2}px`;
13082    wrapperEl.style['-webkit-transform-origin'] = `50% 50% -${swiperSize / 2}px`;
13083    if (params.shadow) {
13084      if (isHorizontal) {
13085        cubeShadowEl.style.transform = `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${-swiperWidth / 2}px) rotateX(89.99deg) rotateZ(0deg) scale(${params.shadowScale})`;
13086      } else {
13087        const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;
13088        const multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);
13089        const scale1 = params.shadowScale;
13090        const scale2 = params.shadowScale / multiplier;
13091        const offset = params.shadowOffset;
13092        cubeShadowEl.style.transform = `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${-swiperHeight / 2 / scale2}px) rotateX(-89.99deg)`;
13093      }
13094    }
13095    const zFactor = (browser.isSafari || browser.isWebView) && browser.needPerspectiveFix ? -swiperSize / 2 : 0;
13096    wrapperEl.style.transform = `translate3d(0px,0,${zFactor}px) rotateX(${r(swiper.isHorizontal() ? 0 : wrapperRotate)}deg) rotateY(${r(swiper.isHorizontal() ? -wrapperRotate : 0)}deg)`;
13097    wrapperEl.style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);
13098  };
13099  const setTransition = duration => {
13100    const {
13101      el,
13102      slides
13103    } = swiper;
13104    slides.forEach(slideEl => {
13105      slideEl.style.transitionDuration = `${duration}ms`;
13106      slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(subEl => {
13107        subEl.style.transitionDuration = `${duration}ms`;
13108      });
13109    });
13110    if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {
13111      const shadowEl = el.querySelector('.swiper-cube-shadow');
13112      if (shadowEl) shadowEl.style.transitionDuration = `${duration}ms`;
13113    }
13114  };
13115  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
13116    effect: 'cube',
13117    swiper,
13118    on,
13119    setTranslate,
13120    setTransition,
13121    recreateShadows,
13122    getEffectParams: () => swiper.params.cubeEffect,
13123    perspective: () => true,
13124    overwriteParams: () => ({
13125      slidesPerView: 1,
13126      slidesPerGroup: 1,
13127      watchSlidesProgress: true,
13128      resistanceRatio: 0,
13129      spaceBetween: 0,
13130      centeredSlides: false,
13131      virtualTranslate: true
13132    })
13133  });
13134}
13135
13136
13137
13138
13139/***/ }),
13140
vendor: 3,089 bytes, lines 13141-13224
13141/***/ "./node_modules/swiper/modules/effect-fade.mjs":
13142/*!*****************************************************!*\
13143  !*** ./node_modules/swiper/modules/effect-fade.mjs ***!
13144  \*****************************************************/
13145/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13146
13147__webpack_require__.r(__webpack_exports__);
13148/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13149/* harmony export */   "default": function() { return /* binding */ EffectFade; }
13150/* harmony export */ });
13151/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
13152/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
13153/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
13154/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
13155
13156
13157
13158
13159
13160function EffectFade(_ref) {
13161  let {
13162    swiper,
13163    extendParams,
13164    on
13165  } = _ref;
13166  extendParams({
13167    fadeEffect: {
13168      crossFade: false
13169    }
13170  });
13171  const setTranslate = () => {
13172    const {
13173      slides
13174    } = swiper;
13175    const params = swiper.params.fadeEffect;
13176    for (let i = 0; i < slides.length; i += 1) {
13177      const slideEl = swiper.slides[i];
13178      const offset = slideEl.swiperSlideOffset;
13179      let tx = -offset;
13180      if (!swiper.params.virtualTranslate) tx -= swiper.translate;
13181      let ty = 0;
13182      if (!swiper.isHorizontal()) {
13183        ty = tx;
13184        tx = 0;
13185      }
13186      const slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs(slideEl.progress), 0) : 1 + Math.min(Math.max(slideEl.progress, -1), 0);
13187      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(params, slideEl);
13188      targetEl.style.opacity = slideOpacity;
13189      targetEl.style.transform = `translate3d(${tx}px, ${ty}px, 0px)`;
13190    }
13191  };
13192  const setTransition = duration => {
13193    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_3__.g)(slideEl));
13194    transformElements.forEach(el => {
13195      el.style.transitionDuration = `${duration}ms`;
13196    });
13197    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_2__.e)({
13198      swiper,
13199      duration,
13200      transformElements,
13201      allSlides: true
13202    });
13203  };
13204  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_0__.e)({
13205    effect: 'fade',
13206    swiper,
13207    on,
13208    setTranslate,
13209    setTransition,
13210    overwriteParams: () => ({
13211      slidesPerView: 1,
13212      slidesPerGroup: 1,
13213      watchSlidesProgress: true,
13214      spaceBetween: 0,
13215      virtualTranslate: !swiper.params.cssMode
13216    })
13217  });
13218}
13219
13220
13221
13222
13223/***/ }),
13224
vendor: 5,322 bytes, lines 13225-13354
13225/***/ "./node_modules/swiper/modules/effect-flip.mjs":
13226/*!*****************************************************!*\
13227  !*** ./node_modules/swiper/modules/effect-flip.mjs ***!
13228  \*****************************************************/
13229/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13230
13231__webpack_require__.r(__webpack_exports__);
13232/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13233/* harmony export */   "default": function() { return /* binding */ EffectFlip; }
13234/* harmony export */ });
13235/* harmony import */ var _shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-shadow.mjs */ "./node_modules/swiper/shared/create-shadow.mjs");
13236/* harmony import */ var _shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/effect-init.mjs */ "./node_modules/swiper/shared/effect-init.mjs");
13237/* harmony import */ var _shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/effect-target.mjs */ "./node_modules/swiper/shared/effect-target.mjs");
13238/* harmony import */ var _shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/effect-virtual-transition-end.mjs */ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs");
13239/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
13240
13241
13242
13243
13244
13245
13246function EffectFlip(_ref) {
13247  let {
13248    swiper,
13249    extendParams,
13250    on
13251  } = _ref;
13252  extendParams({
13253    flipEffect: {
13254      slideShadows: true,
13255      limitRotation: true
13256    }
13257  });
13258  const createSlideShadows = (slideEl, progress) => {
13259    let shadowBefore = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-left') : slideEl.querySelector('.swiper-slide-shadow-top');
13260    let shadowAfter = swiper.isHorizontal() ? slideEl.querySelector('.swiper-slide-shadow-right') : slideEl.querySelector('.swiper-slide-shadow-bottom');
13261    if (!shadowBefore) {
13262      shadowBefore = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'left' : 'top');
13263    }
13264    if (!shadowAfter) {
13265      shadowAfter = (0,_shared_create_shadow_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('flip', slideEl, swiper.isHorizontal() ? 'right' : 'bottom');
13266    }
13267    if (shadowBefore) shadowBefore.style.opacity = Math.max(-progress, 0);
13268    if (shadowAfter) shadowAfter.style.opacity = Math.max(progress, 0);
13269  };
13270  const recreateShadows = () => {
13271    // Set shadows
13272    swiper.params.flipEffect;
13273    swiper.slides.forEach(slideEl => {
13274      let progress = slideEl.progress;
13275      if (swiper.params.flipEffect.limitRotation) {
13276        progress = Math.max(Math.min(slideEl.progress, 1), -1);
13277      }
13278      createSlideShadows(slideEl, progress);
13279    });
13280  };
13281  const setTranslate = () => {
13282    const {
13283      slides,
13284      rtlTranslate: rtl
13285    } = swiper;
13286    const params = swiper.params.flipEffect;
13287    const rotateFix = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.o)(swiper);
13288    for (let i = 0; i < slides.length; i += 1) {
13289      const slideEl = slides[i];
13290      let progress = slideEl.progress;
13291      if (swiper.params.flipEffect.limitRotation) {
13292        progress = Math.max(Math.min(slideEl.progress, 1), -1);
13293      }
13294      const offset = slideEl.swiperSlideOffset;
13295      const rotate = -180 * progress;
13296      let rotateY = rotate;
13297      let rotateX = 0;
13298      let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;
13299      let ty = 0;
13300      if (!swiper.isHorizontal()) {
13301        ty = tx;
13302        tx = 0;
13303        rotateX = -rotateY;
13304        rotateY = 0;
13305      } else if (rtl) {
13306        rotateY = -rotateY;
13307      }
13308      slideEl.style.zIndex = -Math.abs(Math.round(progress)) + slides.length;
13309      if (params.slideShadows) {
13310        createSlideShadows(slideEl, progress);
13311      }
13312      const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateFix(rotateX)}deg) rotateY(${rotateFix(rotateY)}deg)`;
13313      const targetEl = (0,_shared_effect_target_mjs__WEBPACK_IMPORTED_MODULE_2__.e)(params, slideEl);
13314      targetEl.style.transform = transform;
13315    }
13316  };
13317  const setTransition = duration => {
13318    const transformElements = swiper.slides.map(slideEl => (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_4__.g)(slideEl));
13319    transformElements.forEach(el => {
13320      el.style.transitionDuration = `${duration}ms`;
13321      el.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => {
13322        shadowEl.style.transitionDuration = `${duration}ms`;
13323      });
13324    });
13325    (0,_shared_effect_virtual_transition_end_mjs__WEBPACK_IMPORTED_MODULE_3__.e)({
13326      swiper,
13327      duration,
13328      transformElements
13329    });
13330  };
13331  (0,_shared_effect_init_mjs__WEBPACK_IMPORTED_MODULE_1__.e)({
13332    effect: 'flip',
13333    swiper,
13334    on,
13335    setTranslate,
13336    setTransition,
13337    recreateShadows,
13338    getEffectParams: () => swiper.params.flipEffect,
13339    perspective: () => true,
13340    overwriteParams: () => ({
13341      slidesPerView: 1,
13342      slidesPerGroup: 1,
13343      watchSlidesProgress: true,
13344      spaceBetween: 0,
13345      virtualTranslate: !swiper.params.cssMode
13346    })
13347  });
13348}
13349
13350
13351
13352
13353/***/ }),
13354
vendor: 9,247 bytes, lines 13355-13606
13355/***/ "./node_modules/swiper/modules/free-mode.mjs":
13356/*!***************************************************!*\
13357  !*** ./node_modules/swiper/modules/free-mode.mjs ***!
13358  \***************************************************/
13359/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13360
13361__webpack_require__.r(__webpack_exports__);
13362/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13363/* harmony export */   "default": function() { return /* binding */ freeMode; }
13364/* harmony export */ });
13365/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
13366
13367
13368function freeMode(_ref) {
13369  let {
13370    swiper,
13371    extendParams,
13372    emit,
13373    once
13374  } = _ref;
13375  extendParams({
13376    freeMode: {
13377      enabled: false,
13378      momentum: true,
13379      momentumRatio: 1,
13380      momentumBounce: true,
13381      momentumBounceRatio: 1,
13382      momentumVelocityRatio: 1,
13383      sticky: false,
13384      minimumVelocity: 0.02
13385    }
13386  });
13387  function onTouchStart() {
13388    if (swiper.params.cssMode) return;
13389    const translate = swiper.getTranslate();
13390    swiper.setTranslate(translate);
13391    swiper.setTransition(0);
13392    swiper.touchEventsData.velocities.length = 0;
13393    swiper.freeMode.onTouchEnd({
13394      currentPos: swiper.rtl ? swiper.translate : -swiper.translate
13395    });
13396  }
13397  function onTouchMove() {
13398    if (swiper.params.cssMode) return;
13399    const {
13400      touchEventsData: data,
13401      touches
13402    } = swiper;
13403    // Velocity
13404    if (data.velocities.length === 0) {
13405      data.velocities.push({
13406        position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],
13407        time: data.touchStartTime
13408      });
13409    }
13410    data.velocities.push({
13411      position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],
13412      time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)()
13413    });
13414  }
13415  function onTouchEnd(_ref2) {
13416    let {
13417      currentPos
13418    } = _ref2;
13419    if (swiper.params.cssMode) return;
13420    const {
13421      params,
13422      wrapperEl,
13423      rtlTranslate: rtl,
13424      snapGrid,
13425      touchEventsData: data
13426    } = swiper;
13427    // Time diff
13428    const touchEndTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)();
13429    const timeDiff = touchEndTime - data.touchStartTime;
13430    if (currentPos < -swiper.minTranslate()) {
13431      swiper.slideTo(swiper.activeIndex);
13432      return;
13433    }
13434    if (currentPos > -swiper.maxTranslate()) {
13435      if (swiper.slides.length < snapGrid.length) {
13436        swiper.slideTo(snapGrid.length - 1);
13437      } else {
13438        swiper.slideTo(swiper.slides.length - 1);
13439      }
13440      return;
13441    }
13442    if (params.freeMode.momentum) {
13443      if (data.velocities.length > 1) {
13444        const lastMoveEvent = data.velocities.pop();
13445        const velocityEvent = data.velocities.pop();
13446        const distance = lastMoveEvent.position - velocityEvent.position;
13447        const time = lastMoveEvent.time - velocityEvent.time;
13448        swiper.velocity = distance / time;
13449        swiper.velocity /= 2;
13450        if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {
13451          swiper.velocity = 0;
13452        }
13453        // this implies that the user stopped moving a finger then released.
13454        // There would be no events with distance zero, so the last event is stale.
13455        if (time > 150 || (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.d)() - lastMoveEvent.time > 300) {
13456          swiper.velocity = 0;
13457        }
13458      } else {
13459        swiper.velocity = 0;
13460      }
13461      swiper.velocity *= params.freeMode.momentumVelocityRatio;
13462      data.velocities.length = 0;
13463      let momentumDuration = 1000 * params.freeMode.momentumRatio;
13464      const momentumDistance = swiper.velocity * momentumDuration;
13465      let newPosition = swiper.translate + momentumDistance;
13466      if (rtl) newPosition = -newPosition;
13467      let doBounce = false;
13468      let afterBouncePosition;
13469      const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;
13470      let needsLoopFix;
13471      if (newPosition < swiper.maxTranslate()) {
13472        if (params.freeMode.momentumBounce) {
13473          if (newPosition + swiper.maxTranslate() < -bounceAmount) {
13474            newPosition = swiper.maxTranslate() - bounceAmount;
13475          }
13476          afterBouncePosition = swiper.maxTranslate();
13477          doBounce = true;
13478          data.allowMomentumBounce = true;
13479        } else {
13480          newPosition = swiper.maxTranslate();
13481        }
13482        if (params.loop && params.centeredSlides) needsLoopFix = true;
13483      } else if (newPosition > swiper.minTranslate()) {
13484        if (params.freeMode.momentumBounce) {
13485          if (newPosition - swiper.minTranslate() > bounceAmount) {
13486            newPosition = swiper.minTranslate() + bounceAmount;
13487          }
13488          afterBouncePosition = swiper.minTranslate();
13489          doBounce = true;
13490          data.allowMomentumBounce = true;
13491        } else {
13492          newPosition = swiper.minTranslate();
13493        }
13494        if (params.loop && params.centeredSlides) needsLoopFix = true;
13495      } else if (params.freeMode.sticky) {
13496        let nextSlide;
13497        for (let j = 0; j < snapGrid.length; j += 1) {
13498          if (snapGrid[j] > -newPosition) {
13499            nextSlide = j;
13500            break;
13501          }
13502        }
13503        if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {
13504          newPosition = snapGrid[nextSlide];
13505        } else {
13506          newPosition = snapGrid[nextSlide - 1];
13507        }
13508        newPosition = -newPosition;
13509      }
13510      if (needsLoopFix) {
13511        once('transitionEnd', () => {
13512          swiper.loopFix();
13513        });
13514      }
13515      // Fix duration
13516      if (swiper.velocity !== 0) {
13517        if (rtl) {
13518          momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);
13519        } else {
13520          momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);
13521        }
13522        if (params.freeMode.sticky) {
13523          // If freeMode.sticky is active and the user ends a swipe with a slow-velocity
13524          // event, then durations can be 20+ seconds to slide one (or zero!) slides.
13525          // It's easy to see this when simulating touch with mouse events. To fix this,
13526          // limit single-slide swipes to the default slide duration. This also has the
13527          // nice side effect of matching slide speed if the user stopped moving before
13528          // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.
13529          // For faster swipes, also apply limits (albeit higher ones).
13530          const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);
13531          const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];
13532          if (moveDistance < currentSlideSize) {
13533            momentumDuration = params.speed;
13534          } else if (moveDistance < 2 * currentSlideSize) {
13535            momentumDuration = params.speed * 1.5;
13536          } else {
13537            momentumDuration = params.speed * 2.5;
13538          }
13539        }
13540      } else if (params.freeMode.sticky) {
13541        swiper.slideToClosest();
13542        return;
13543      }
13544      if (params.freeMode.momentumBounce && doBounce) {
13545        swiper.updateProgress(afterBouncePosition);
13546        swiper.setTransition(momentumDuration);
13547        swiper.setTranslate(newPosition);
13548        swiper.transitionStart(true, swiper.swipeDirection);
13549        swiper.animating = true;
13550        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
13551          if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;
13552          emit('momentumBounce');
13553          swiper.setTransition(params.speed);
13554          setTimeout(() => {
13555            swiper.setTranslate(afterBouncePosition);
13556            (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
13557              if (!swiper || swiper.destroyed) return;
13558              swiper.transitionEnd();
13559            });
13560          }, 0);
13561        });
13562      } else if (swiper.velocity) {
13563        emit('_freeModeNoMomentumRelease');
13564        swiper.updateProgress(newPosition);
13565        swiper.setTransition(momentumDuration);
13566        swiper.setTranslate(newPosition);
13567        swiper.transitionStart(true, swiper.swipeDirection);
13568        if (!swiper.animating) {
13569          swiper.animating = true;
13570          (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(wrapperEl, () => {
13571            if (!swiper || swiper.destroyed) return;
13572            swiper.transitionEnd();
13573          });
13574        }
13575      } else {
13576        swiper.updateProgress(newPosition);
13577      }
13578      swiper.updateActiveIndex();
13579      swiper.updateSlidesClasses();
13580    } else if (params.freeMode.sticky) {
13581      swiper.slideToClosest();
13582      return;
13583    } else if (params.freeMode) {
13584      emit('_freeModeNoMomentumRelease');
13585    }
13586    if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {
13587      emit('_freeModeStaticRelease');
13588      swiper.updateProgress();
13589      swiper.updateActiveIndex();
13590      swiper.updateSlidesClasses();
13591    }
13592  }
13593  Object.assign(swiper, {
13594    freeMode: {
13595      onTouchStart,
13596      onTouchMove,
13597      onTouchEnd
13598    }
13599  });
13600}
13601
13602
13603
13604
13605/***/ }),
13606
vendor: 5,717 bytes, lines 13607-13775
13607/***/ "./node_modules/swiper/modules/grid.mjs":
13608/*!**********************************************!*\
13609  !*** ./node_modules/swiper/modules/grid.mjs ***!
13610  \**********************************************/
13611/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13612
13613__webpack_require__.r(__webpack_exports__);
13614/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13615/* harmony export */   "default": function() { return /* binding */ Grid; }
13616/* harmony export */ });
13617function Grid(_ref) {
13618  let {
13619    swiper,
13620    extendParams,
13621    on
13622  } = _ref;
13623  extendParams({
13624    grid: {
13625      rows: 1,
13626      fill: 'column'
13627    }
13628  });
13629  let slidesNumberEvenToRows;
13630  let slidesPerRow;
13631  let numFullColumns;
13632  let wasMultiRow;
13633  const getSpaceBetween = () => {
13634    let spaceBetween = swiper.params.spaceBetween;
13635    if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
13636      spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
13637    } else if (typeof spaceBetween === 'string') {
13638      spaceBetween = parseFloat(spaceBetween);
13639    }
13640    return spaceBetween;
13641  };
13642  const initSlides = slides => {
13643    const {
13644      slidesPerView
13645    } = swiper.params;
13646    const {
13647      rows,
13648      fill
13649    } = swiper.params.grid;
13650    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
13651    numFullColumns = Math.floor(slidesLength / rows);
13652    if (Math.floor(slidesLength / rows) === slidesLength / rows) {
13653      slidesNumberEvenToRows = slidesLength;
13654    } else {
13655      slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;
13656    }
13657    if (slidesPerView !== 'auto' && fill === 'row') {
13658      slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);
13659    }
13660    slidesPerRow = slidesNumberEvenToRows / rows;
13661  };
13662  const unsetSlides = () => {
13663    if (swiper.slides) {
13664      swiper.slides.forEach(slide => {
13665        if (slide.swiperSlideGridSet) {
13666          slide.style.height = '';
13667          slide.style[swiper.getDirectionLabel('margin-top')] = '';
13668        }
13669      });
13670    }
13671  };
13672  const updateSlide = (i, slide, slides) => {
13673    const {
13674      slidesPerGroup
13675    } = swiper.params;
13676    const spaceBetween = getSpaceBetween();
13677    const {
13678      rows,
13679      fill
13680    } = swiper.params.grid;
13681    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;
13682    // Set slides order
13683    let newSlideOrderIndex;
13684    let column;
13685    let row;
13686    if (fill === 'row' && slidesPerGroup > 1) {
13687      const groupIndex = Math.floor(i / (slidesPerGroup * rows));
13688      const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;
13689      const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);
13690      row = Math.floor(slideIndexInGroup / columnsInGroup);
13691      column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;
13692      newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;
13693      slide.style.order = newSlideOrderIndex;
13694    } else if (fill === 'column') {
13695      column = Math.floor(i / rows);
13696      row = i - column * rows;
13697      if (column > numFullColumns || column === numFullColumns && row === rows - 1) {
13698        row += 1;
13699        if (row >= rows) {
13700          row = 0;
13701          column += 1;
13702        }
13703      }
13704    } else {
13705      row = Math.floor(i / slidesPerRow);
13706      column = i - row * slidesPerRow;
13707    }
13708    slide.row = row;
13709    slide.column = column;
13710    slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;
13711    slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';
13712    slide.swiperSlideGridSet = true;
13713  };
13714  const updateWrapperSize = (slideSize, snapGrid) => {
13715    const {
13716      centeredSlides,
13717      roundLengths
13718    } = swiper.params;
13719    const spaceBetween = getSpaceBetween();
13720    const {
13721      rows
13722    } = swiper.params.grid;
13723    swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;
13724    swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;
13725    if (!swiper.params.cssMode) {
13726      swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
13727    }
13728    if (centeredSlides) {
13729      const newSlidesGrid = [];
13730      for (let i = 0; i < snapGrid.length; i += 1) {
13731        let slidesGridItem = snapGrid[i];
13732        if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);
13733        if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);
13734      }
13735      snapGrid.splice(0, snapGrid.length);
13736      snapGrid.push(...newSlidesGrid);
13737    }
13738  };
13739  const onInit = () => {
13740    wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
13741  };
13742  const onUpdate = () => {
13743    const {
13744      params,
13745      el
13746    } = swiper;
13747    const isMultiRow = params.grid && params.grid.rows > 1;
13748    if (wasMultiRow && !isMultiRow) {
13749      el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
13750      numFullColumns = 1;
13751      swiper.emitContainerClasses();
13752    } else if (!wasMultiRow && isMultiRow) {
13753      el.classList.add(`${params.containerModifierClass}grid`);
13754      if (params.grid.fill === 'column') {
13755        el.classList.add(`${params.containerModifierClass}grid-column`);
13756      }
13757      swiper.emitContainerClasses();
13758    }
13759    wasMultiRow = isMultiRow;
13760  };
13761  on('init', onInit);
13762  on('update', onUpdate);
13763  swiper.grid = {
13764    initSlides,
13765    unsetSlides,
13766    updateSlide,
13767    updateWrapperSize
13768  };
13769}
13770
13771
13772
13773
13774/***/ }),
13775
vendor: 4,418 bytes, lines 13776-13884
13776/***/ "./node_modules/swiper/modules/hash-navigation.mjs":
13777/*!*********************************************************!*\
13778  !*** ./node_modules/swiper/modules/hash-navigation.mjs ***!
13779  \*********************************************************/
13780/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13781
13782__webpack_require__.r(__webpack_exports__);
13783/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13784/* harmony export */   "default": function() { return /* binding */ HashNavigation; }
13785/* harmony export */ });
13786/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
13787/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
13788
13789
13790
13791function HashNavigation(_ref) {
13792  let {
13793    swiper,
13794    extendParams,
13795    emit,
13796    on
13797  } = _ref;
13798  let initialized = false;
13799  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
13800  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
13801  extendParams({
13802    hashNavigation: {
13803      enabled: false,
13804      replaceState: false,
13805      watchState: false,
13806      getSlideIndex(_s, hash) {
13807        if (swiper.virtual && swiper.params.virtual.enabled) {
13808          const slideWithHash = swiper.slides.filter(slideEl => slideEl.getAttribute('data-hash') === hash)[0];
13809          if (!slideWithHash) return 0;
13810          const index = parseInt(slideWithHash.getAttribute('data-swiper-slide-index'), 10);
13811          return index;
13812        }
13813        return swiper.getSlideIndex((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideClass}[data-hash="${hash}"], swiper-slide[data-hash="${hash}"]`)[0]);
13814      }
13815    }
13816  });
13817  const onHashChange = () => {
13818    emit('hashChange');
13819    const newHash = document.location.hash.replace('#', '');
13820    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
13821    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') : '';
13822    if (newHash !== activeSlideHash) {
13823      const newIndex = swiper.params.hashNavigation.getSlideIndex(swiper, newHash);
13824      if (typeof newIndex === 'undefined' || Number.isNaN(newIndex)) return;
13825      swiper.slideTo(newIndex);
13826    }
13827  };
13828  const setHash = () => {
13829    if (!initialized || !swiper.params.hashNavigation.enabled) return;
13830    const activeSlideEl = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${swiper.activeIndex}"]`) : swiper.slides[swiper.activeIndex];
13831    const activeSlideHash = activeSlideEl ? activeSlideEl.getAttribute('data-hash') || activeSlideEl.getAttribute('data-history') : '';
13832    if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {
13833      window.history.replaceState(null, null, `#${activeSlideHash}` || '');
13834      emit('hashSet');
13835    } else {
13836      document.location.hash = activeSlideHash || '';
13837      emit('hashSet');
13838    }
13839  };
13840  const init = () => {
13841    if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;
13842    initialized = true;
13843    const hash = document.location.hash.replace('#', '');
13844    if (hash) {
13845      const speed = 0;
13846      const index = swiper.params.hashNavigation.getSlideIndex(swiper, hash);
13847      swiper.slideTo(index || 0, speed, swiper.params.runCallbacksOnInit, true);
13848    }
13849    if (swiper.params.hashNavigation.watchState) {
13850      window.addEventListener('hashchange', onHashChange);
13851    }
13852  };
13853  const destroy = () => {
13854    if (swiper.params.hashNavigation.watchState) {
13855      window.removeEventListener('hashchange', onHashChange);
13856    }
13857  };
13858  on('init', () => {
13859    if (swiper.params.hashNavigation.enabled) {
13860      init();
13861    }
13862  });
13863  on('destroy', () => {
13864    if (swiper.params.hashNavigation.enabled) {
13865      destroy();
13866    }
13867  });
13868  on('transitionEnd _freeModeNoMomentumRelease', () => {
13869    if (initialized) {
13870      setHash();
13871    }
13872  });
13873  on('slideChange', () => {
13874    if (initialized && swiper.params.cssMode) {
13875      setHash();
13876    }
13877  });
13878}
13879
13880
13881
13882
13883/***/ }),
13884
vendor: 5,130 bytes, lines 13885-14041
13885/***/ "./node_modules/swiper/modules/history.mjs":
13886/*!*************************************************!*\
13887  !*** ./node_modules/swiper/modules/history.mjs ***!
13888  \*************************************************/
13889/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
13890
13891__webpack_require__.r(__webpack_exports__);
13892/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13893/* harmony export */   "default": function() { return /* binding */ History; }
13894/* harmony export */ });
13895/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
13896
13897
13898function History(_ref) {
13899  let {
13900    swiper,
13901    extendParams,
13902    on
13903  } = _ref;
13904  extendParams({
13905    history: {
13906      enabled: false,
13907      root: '',
13908      replaceState: false,
13909      key: 'slides',
13910      keepQuery: false
13911    }
13912  });
13913  let initialized = false;
13914  let paths = {};
13915  const slugify = text => {
13916    return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');
13917  };
13918  const getPathValues = urlOverride => {
13919    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
13920    let location;
13921    if (urlOverride) {
13922      location = new URL(urlOverride);
13923    } else {
13924      location = window.location;
13925    }
13926    const pathArray = location.pathname.slice(1).split('/').filter(part => part !== '');
13927    const total = pathArray.length;
13928    const key = pathArray[total - 2];
13929    const value = pathArray[total - 1];
13930    return {
13931      key,
13932      value
13933    };
13934  };
13935  const setHistory = (key, index) => {
13936    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
13937    if (!initialized || !swiper.params.history.enabled) return;
13938    let location;
13939    if (swiper.params.url) {
13940      location = new URL(swiper.params.url);
13941    } else {
13942      location = window.location;
13943    }
13944    const slide = swiper.virtual && swiper.params.virtual.enabled ? swiper.slidesEl.querySelector(`[data-swiper-slide-index="${index}"]`) : swiper.slides[index];
13945    let value = slugify(slide.getAttribute('data-history'));
13946    if (swiper.params.history.root.length > 0) {
13947      let root = swiper.params.history.root;
13948      if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);
13949      value = `${root}/${key ? `${key}/` : ''}${value}`;
13950    } else if (!location.pathname.includes(key)) {
13951      value = `${key ? `${key}/` : ''}${value}`;
13952    }
13953    if (swiper.params.history.keepQuery) {
13954      value += location.search;
13955    }
13956    const currentState = window.history.state;
13957    if (currentState && currentState.value === value) {
13958      return;
13959    }
13960    if (swiper.params.history.replaceState) {
13961      window.history.replaceState({
13962        value
13963      }, null, value);
13964    } else {
13965      window.history.pushState({
13966        value
13967      }, null, value);
13968    }
13969  };
13970  const scrollToSlide = (speed, value, runCallbacks) => {
13971    if (value) {
13972      for (let i = 0, length = swiper.slides.length; i < length; i += 1) {
13973        const slide = swiper.slides[i];
13974        const slideHistory = slugify(slide.getAttribute('data-history'));
13975        if (slideHistory === value) {
13976          const index = swiper.getSlideIndex(slide);
13977          swiper.slideTo(index, speed, runCallbacks);
13978        }
13979      }
13980    } else {
13981      swiper.slideTo(0, speed, runCallbacks);
13982    }
13983  };
13984  const setHistoryPopState = () => {
13985    paths = getPathValues(swiper.params.url);
13986    scrollToSlide(swiper.params.speed, paths.value, false);
13987  };
13988  const init = () => {
13989    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
13990    if (!swiper.params.history) return;
13991    if (!window.history || !window.history.pushState) {
13992      swiper.params.history.enabled = false;
13993      swiper.params.hashNavigation.enabled = true;
13994      return;
13995    }
13996    initialized = true;
13997    paths = getPathValues(swiper.params.url);
13998    if (!paths.key && !paths.value) {
13999      if (!swiper.params.history.replaceState) {
14000        window.addEventListener('popstate', setHistoryPopState);
14001      }
14002      return;
14003    }
14004    scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);
14005    if (!swiper.params.history.replaceState) {
14006      window.addEventListener('popstate', setHistoryPopState);
14007    }
14008  };
14009  const destroy = () => {
14010    const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
14011    if (!swiper.params.history.replaceState) {
14012      window.removeEventListener('popstate', setHistoryPopState);
14013    }
14014  };
14015  on('init', () => {
14016    if (swiper.params.history.enabled) {
14017      init();
14018    }
14019  });
14020  on('destroy', () => {
14021    if (swiper.params.history.enabled) {
14022      destroy();
14023    }
14024  });
14025  on('transitionEnd _freeModeNoMomentumRelease', () => {
14026    if (initialized) {
14027      setHistory(swiper.params.history.key, swiper.activeIndex);
14028    }
14029  });
14030  on('slideChange', () => {
14031    if (initialized && swiper.params.cssMode) {
14032      setHistory(swiper.params.history.key, swiper.activeIndex);
14033    }
14034  });
14035}
14036
14037
14038
14039
14040/***/ }),
14041
vendor: 7,327 bytes, lines 14042-14122
14042/***/ "./node_modules/swiper/modules/index.mjs":
14043/*!***********************************************!*\
14044  !*** ./node_modules/swiper/modules/index.mjs ***!
14045  \***********************************************/
14046/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14047
14048__webpack_require__.r(__webpack_exports__);
14049/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14050/* harmony export */   A11y: function() { return /* reexport safe */ _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]; },
14051/* harmony export */   Autoplay: function() { return /* reexport safe */ _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]; },
14052/* harmony export */   Controller: function() { return /* reexport safe */ _controller_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]; },
14053/* harmony export */   EffectCards: function() { return /* reexport safe */ _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]; },
14054/* harmony export */   EffectCoverflow: function() { return /* reexport safe */ _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]; },
14055/* harmony export */   EffectCreative: function() { return /* reexport safe */ _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]; },
14056/* harmony export */   EffectCube: function() { return /* reexport safe */ _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]; },
14057/* harmony export */   EffectFade: function() { return /* reexport safe */ _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]; },
14058/* harmony export */   EffectFlip: function() { return /* reexport safe */ _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]; },
14059/* harmony export */   FreeMode: function() { return /* reexport safe */ _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]; },
14060/* harmony export */   Grid: function() { return /* reexport safe */ _grid_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]; },
14061/* harmony export */   HashNavigation: function() { return /* reexport safe */ _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]; },
14062/* harmony export */   History: function() { return /* reexport safe */ _history_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]; },
14063/* harmony export */   Keyboard: function() { return /* reexport safe */ _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]; },
14064/* harmony export */   Manipulation: function() { return /* reexport safe */ _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]; },
14065/* harmony export */   Mousewheel: function() { return /* reexport safe */ _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]; },
14066/* harmony export */   Navigation: function() { return /* reexport safe */ _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]; },
14067/* harmony export */   Pagination: function() { return /* reexport safe */ _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]; },
14068/* harmony export */   Parallax: function() { return /* reexport safe */ _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]; },
14069/* harmony export */   Scrollbar: function() { return /* reexport safe */ _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]; },
14070/* harmony export */   Thumbs: function() { return /* reexport safe */ _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]; },
14071/* harmony export */   Virtual: function() { return /* reexport safe */ _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__["default"]; },
14072/* harmony export */   Zoom: function() { return /* reexport safe */ _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]; }
14073/* harmony export */ });
14074/* harmony import */ var _virtual_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./virtual.mjs */ "./node_modules/swiper/modules/virtual.mjs");
14075/* harmony import */ var _keyboard_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboard.mjs */ "./node_modules/swiper/modules/keyboard.mjs");
14076/* harmony import */ var _mousewheel_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./mousewheel.mjs */ "./node_modules/swiper/modules/mousewheel.mjs");
14077/* harmony import */ var _navigation_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./navigation.mjs */ "./node_modules/swiper/modules/navigation.mjs");
14078/* harmony import */ var _pagination_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pagination.mjs */ "./node_modules/swiper/modules/pagination.mjs");
14079/* harmony import */ var _scrollbar_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./scrollbar.mjs */ "./node_modules/swiper/modules/scrollbar.mjs");
14080/* harmony import */ var _parallax_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./parallax.mjs */ "./node_modules/swiper/modules/parallax.mjs");
14081/* harmony import */ var _zoom_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./zoom.mjs */ "./node_modules/swiper/modules/zoom.mjs");
14082/* harmony import */ var _controller_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./controller.mjs */ "./node_modules/swiper/modules/controller.mjs");
14083/* harmony import */ var _a11y_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./a11y.mjs */ "./node_modules/swiper/modules/a11y.mjs");
14084/* harmony import */ var _history_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./history.mjs */ "./node_modules/swiper/modules/history.mjs");
14085/* harmony import */ var _hash_navigation_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./hash-navigation.mjs */ "./node_modules/swiper/modules/hash-navigation.mjs");
14086/* harmony import */ var _autoplay_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./autoplay.mjs */ "./node_modules/swiper/modules/autoplay.mjs");
14087/* harmony import */ var _thumbs_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./thumbs.mjs */ "./node_modules/swiper/modules/thumbs.mjs");
14088/* harmony import */ var _free_mode_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./free-mode.mjs */ "./node_modules/swiper/modules/free-mode.mjs");
14089/* harmony import */ var _grid_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./grid.mjs */ "./node_modules/swiper/modules/grid.mjs");
14090/* harmony import */ var _manipulation_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./manipulation.mjs */ "./node_modules/swiper/modules/manipulation.mjs");
14091/* harmony import */ var _effect_fade_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./effect-fade.mjs */ "./node_modules/swiper/modules/effect-fade.mjs");
14092/* harmony import */ var _effect_cube_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./effect-cube.mjs */ "./node_modules/swiper/modules/effect-cube.mjs");
14093/* harmony import */ var _effect_flip_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./effect-flip.mjs */ "./node_modules/swiper/modules/effect-flip.mjs");
14094/* harmony import */ var _effect_coverflow_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./effect-coverflow.mjs */ "./node_modules/swiper/modules/effect-coverflow.mjs");
14095/* harmony import */ var _effect_creative_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./effect-creative.mjs */ "./node_modules/swiper/modules/effect-creative.mjs");
14096/* harmony import */ var _effect_cards_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./effect-cards.mjs */ "./node_modules/swiper/modules/effect-cards.mjs");
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121/***/ }),
14122
vendor: 5,279 bytes, lines 14123-14255
14123/***/ "./node_modules/swiper/modules/keyboard.mjs":
14124/*!**************************************************!*\
14125  !*** ./node_modules/swiper/modules/keyboard.mjs ***!
14126  \**************************************************/
14127/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14128
14129__webpack_require__.r(__webpack_exports__);
14130/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14131/* harmony export */   "default": function() { return /* binding */ Keyboard; }
14132/* harmony export */ });
14133/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
14134/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
14135
14136
14137
14138/* eslint-disable consistent-return */
14139function Keyboard(_ref) {
14140  let {
14141    swiper,
14142    extendParams,
14143    on,
14144    emit
14145  } = _ref;
14146  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
14147  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
14148  swiper.keyboard = {
14149    enabled: false
14150  };
14151  extendParams({
14152    keyboard: {
14153      enabled: false,
14154      onlyInViewport: true,
14155      pageUpDown: true
14156    }
14157  });
14158  function handle(event) {
14159    if (!swiper.enabled) return;
14160    const {
14161      rtlTranslate: rtl
14162    } = swiper;
14163    let e = event;
14164    if (e.originalEvent) e = e.originalEvent; // jquery fix
14165    const kc = e.keyCode || e.charCode;
14166    const pageUpDown = swiper.params.keyboard.pageUpDown;
14167    const isPageUp = pageUpDown && kc === 33;
14168    const isPageDown = pageUpDown && kc === 34;
14169    const isArrowLeft = kc === 37;
14170    const isArrowRight = kc === 39;
14171    const isArrowUp = kc === 38;
14172    const isArrowDown = kc === 40;
14173    // Directions locks
14174    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {
14175      return false;
14176    }
14177    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {
14178      return false;
14179    }
14180    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
14181      return undefined;
14182    }
14183    if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {
14184      return undefined;
14185    }
14186    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {
14187      let inView = false;
14188      // Check that swiper should be inside of visible area of window
14189      if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {
14190        return undefined;
14191      }
14192      const el = swiper.el;
14193      const swiperWidth = el.clientWidth;
14194      const swiperHeight = el.clientHeight;
14195      const windowWidth = window.innerWidth;
14196      const windowHeight = window.innerHeight;
14197      const swiperOffset = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el);
14198      if (rtl) swiperOffset.left -= el.scrollLeft;
14199      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];
14200      for (let i = 0; i < swiperCoord.length; i += 1) {
14201        const point = swiperCoord[i];
14202        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {
14203          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line
14204          inView = true;
14205        }
14206      }
14207      if (!inView) return undefined;
14208    }
14209    if (swiper.isHorizontal()) {
14210      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {
14211        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
14212      }
14213      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();
14214      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();
14215    } else {
14216      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {
14217        if (e.preventDefault) e.preventDefault();else e.returnValue = false;
14218      }
14219      if (isPageDown || isArrowDown) swiper.slideNext();
14220      if (isPageUp || isArrowUp) swiper.slidePrev();
14221    }
14222    emit('keyPress', kc);
14223    return undefined;
14224  }
14225  function enable() {
14226    if (swiper.keyboard.enabled) return;
14227    document.addEventListener('keydown', handle);
14228    swiper.keyboard.enabled = true;
14229  }
14230  function disable() {
14231    if (!swiper.keyboard.enabled) return;
14232    document.removeEventListener('keydown', handle);
14233    swiper.keyboard.enabled = false;
14234  }
14235  on('init', () => {
14236    if (swiper.params.keyboard.enabled) {
14237      enable();
14238    }
14239  });
14240  on('destroy', () => {
14241    if (swiper.keyboard.enabled) {
14242      disable();
14243    }
14244  });
14245  Object.assign(swiper.keyboard, {
14246    enable,
14247    disable
14248  });
14249}
14250
14251
14252
14253
14254/***/ }),
14255
vendor: 5,523 bytes, lines 14256-14460
14256/***/ "./node_modules/swiper/modules/manipulation.mjs":
14257/*!******************************************************!*\
14258  !*** ./node_modules/swiper/modules/manipulation.mjs ***!
14259  \******************************************************/
14260/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14261
14262__webpack_require__.r(__webpack_exports__);
14263/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14264/* harmony export */   "default": function() { return /* binding */ Manipulation; }
14265/* harmony export */ });
14266function appendSlide(slides) {
14267  const swiper = this;
14268  const {
14269    params,
14270    slidesEl
14271  } = swiper;
14272  if (params.loop) {
14273    swiper.loopDestroy();
14274  }
14275  const appendElement = slideEl => {
14276    if (typeof slideEl === 'string') {
14277      const tempDOM = document.createElement('div');
14278      tempDOM.innerHTML = slideEl;
14279      slidesEl.append(tempDOM.children[0]);
14280      tempDOM.innerHTML = '';
14281    } else {
14282      slidesEl.append(slideEl);
14283    }
14284  };
14285  if (typeof slides === 'object' && 'length' in slides) {
14286    for (let i = 0; i < slides.length; i += 1) {
14287      if (slides[i]) appendElement(slides[i]);
14288    }
14289  } else {
14290    appendElement(slides);
14291  }
14292  swiper.recalcSlides();
14293  if (params.loop) {
14294    swiper.loopCreate();
14295  }
14296  if (!params.observer || swiper.isElement) {
14297    swiper.update();
14298  }
14299}
14300
14301function prependSlide(slides) {
14302  const swiper = this;
14303  const {
14304    params,
14305    activeIndex,
14306    slidesEl
14307  } = swiper;
14308  if (params.loop) {
14309    swiper.loopDestroy();
14310  }
14311  let newActiveIndex = activeIndex + 1;
14312  const prependElement = slideEl => {
14313    if (typeof slideEl === 'string') {
14314      const tempDOM = document.createElement('div');
14315      tempDOM.innerHTML = slideEl;
14316      slidesEl.prepend(tempDOM.children[0]);
14317      tempDOM.innerHTML = '';
14318    } else {
14319      slidesEl.prepend(slideEl);
14320    }
14321  };
14322  if (typeof slides === 'object' && 'length' in slides) {
14323    for (let i = 0; i < slides.length; i += 1) {
14324      if (slides[i]) prependElement(slides[i]);
14325    }
14326    newActiveIndex = activeIndex + slides.length;
14327  } else {
14328    prependElement(slides);
14329  }
14330  swiper.recalcSlides();
14331  if (params.loop) {
14332    swiper.loopCreate();
14333  }
14334  if (!params.observer || swiper.isElement) {
14335    swiper.update();
14336  }
14337  swiper.slideTo(newActiveIndex, 0, false);
14338}
14339
14340function addSlide(index, slides) {
14341  const swiper = this;
14342  const {
14343    params,
14344    activeIndex,
14345    slidesEl
14346  } = swiper;
14347  let activeIndexBuffer = activeIndex;
14348  if (params.loop) {
14349    activeIndexBuffer -= swiper.loopedSlides;
14350    swiper.loopDestroy();
14351    swiper.recalcSlides();
14352  }
14353  const baseLength = swiper.slides.length;
14354  if (index <= 0) {
14355    swiper.prependSlide(slides);
14356    return;
14357  }
14358  if (index >= baseLength) {
14359    swiper.appendSlide(slides);
14360    return;
14361  }
14362  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;
14363  const slidesBuffer = [];
14364  for (let i = baseLength - 1; i >= index; i -= 1) {
14365    const currentSlide = swiper.slides[i];
14366    currentSlide.remove();
14367    slidesBuffer.unshift(currentSlide);
14368  }
14369  if (typeof slides === 'object' && 'length' in slides) {
14370    for (let i = 0; i < slides.length; i += 1) {
14371      if (slides[i]) slidesEl.append(slides[i]);
14372    }
14373    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;
14374  } else {
14375    slidesEl.append(slides);
14376  }
14377  for (let i = 0; i < slidesBuffer.length; i += 1) {
14378    slidesEl.append(slidesBuffer[i]);
14379  }
14380  swiper.recalcSlides();
14381  if (params.loop) {
14382    swiper.loopCreate();
14383  }
14384  if (!params.observer || swiper.isElement) {
14385    swiper.update();
14386  }
14387  if (params.loop) {
14388    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
14389  } else {
14390    swiper.slideTo(newActiveIndex, 0, false);
14391  }
14392}
14393
14394function removeSlide(slidesIndexes) {
14395  const swiper = this;
14396  const {
14397    params,
14398    activeIndex
14399  } = swiper;
14400  let activeIndexBuffer = activeIndex;
14401  if (params.loop) {
14402    activeIndexBuffer -= swiper.loopedSlides;
14403    swiper.loopDestroy();
14404  }
14405  let newActiveIndex = activeIndexBuffer;
14406  let indexToRemove;
14407  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {
14408    for (let i = 0; i < slidesIndexes.length; i += 1) {
14409      indexToRemove = slidesIndexes[i];
14410      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
14411      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
14412    }
14413    newActiveIndex = Math.max(newActiveIndex, 0);
14414  } else {
14415    indexToRemove = slidesIndexes;
14416    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();
14417    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;
14418    newActiveIndex = Math.max(newActiveIndex, 0);
14419  }
14420  swiper.recalcSlides();
14421  if (params.loop) {
14422    swiper.loopCreate();
14423  }
14424  if (!params.observer || swiper.isElement) {
14425    swiper.update();
14426  }
14427  if (params.loop) {
14428    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);
14429  } else {
14430    swiper.slideTo(newActiveIndex, 0, false);
14431  }
14432}
14433
14434function removeAllSlides() {
14435  const swiper = this;
14436  const slidesIndexes = [];
14437  for (let i = 0; i < swiper.slides.length; i += 1) {
14438    slidesIndexes.push(i);
14439  }
14440  swiper.removeSlide(slidesIndexes);
14441}
14442
14443function Manipulation(_ref) {
14444  let {
14445    swiper
14446  } = _ref;
14447  Object.assign(swiper, {
14448    appendSlide: appendSlide.bind(swiper),
14449    prependSlide: prependSlide.bind(swiper),
14450    addSlide: addSlide.bind(swiper),
14451    removeSlide: removeSlide.bind(swiper),
14452    removeAllSlides: removeAllSlides.bind(swiper)
14453  });
14454}
14455
14456
14457
14458
14459/***/ }),
14460
vendor: 15,890 bytes, lines 14461-14869
14461/***/ "./node_modules/swiper/modules/mousewheel.mjs":
14462/*!****************************************************!*\
14463  !*** ./node_modules/swiper/modules/mousewheel.mjs ***!
14464  \****************************************************/
14465/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14466
14467__webpack_require__.r(__webpack_exports__);
14468/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14469/* harmony export */   "default": function() { return /* binding */ Mousewheel; }
14470/* harmony export */ });
14471/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
14472/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
14473
14474
14475
14476/* eslint-disable consistent-return */
14477function Mousewheel(_ref) {
14478  let {
14479    swiper,
14480    extendParams,
14481    on,
14482    emit
14483  } = _ref;
14484  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
14485  extendParams({
14486    mousewheel: {
14487      enabled: false,
14488      releaseOnEdges: false,
14489      invert: false,
14490      forceToAxis: false,
14491      sensitivity: 1,
14492      eventsTarget: 'container',
14493      thresholdDelta: null,
14494      thresholdTime: null,
14495      noMousewheelClass: 'swiper-no-mousewheel'
14496    }
14497  });
14498  swiper.mousewheel = {
14499    enabled: false
14500  };
14501  let timeout;
14502  let lastScrollTime = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
14503  let lastEventBeforeSnap;
14504  const recentWheelEvents = [];
14505  function normalize(e) {
14506    // Reasonable defaults
14507    const PIXEL_STEP = 10;
14508    const LINE_HEIGHT = 40;
14509    const PAGE_HEIGHT = 800;
14510    let sX = 0;
14511    let sY = 0; // spinX, spinY
14512    let pX = 0;
14513    let pY = 0; // pixelX, pixelY
14514
14515    // Legacy
14516    if ('detail' in e) {
14517      sY = e.detail;
14518    }
14519    if ('wheelDelta' in e) {
14520      sY = -e.wheelDelta / 120;
14521    }
14522    if ('wheelDeltaY' in e) {
14523      sY = -e.wheelDeltaY / 120;
14524    }
14525    if ('wheelDeltaX' in e) {
14526      sX = -e.wheelDeltaX / 120;
14527    }
14528
14529    // side scrolling on FF with DOMMouseScroll
14530    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {
14531      sX = sY;
14532      sY = 0;
14533    }
14534    pX = sX * PIXEL_STEP;
14535    pY = sY * PIXEL_STEP;
14536    if ('deltaY' in e) {
14537      pY = e.deltaY;
14538    }
14539    if ('deltaX' in e) {
14540      pX = e.deltaX;
14541    }
14542    if (e.shiftKey && !pX) {
14543      // if user scrolls with shift he wants horizontal scroll
14544      pX = pY;
14545      pY = 0;
14546    }
14547    if ((pX || pY) && e.deltaMode) {
14548      if (e.deltaMode === 1) {
14549        // delta in LINE units
14550        pX *= LINE_HEIGHT;
14551        pY *= LINE_HEIGHT;
14552      } else {
14553        // delta in PAGE units
14554        pX *= PAGE_HEIGHT;
14555        pY *= PAGE_HEIGHT;
14556      }
14557    }
14558
14559    // Fall-back if spin cannot be determined
14560    if (pX && !sX) {
14561      sX = pX < 1 ? -1 : 1;
14562    }
14563    if (pY && !sY) {
14564      sY = pY < 1 ? -1 : 1;
14565    }
14566    return {
14567      spinX: sX,
14568      spinY: sY,
14569      pixelX: pX,
14570      pixelY: pY
14571    };
14572  }
14573  function handleMouseEnter() {
14574    if (!swiper.enabled) return;
14575    swiper.mouseEntered = true;
14576  }
14577  function handleMouseLeave() {
14578    if (!swiper.enabled) return;
14579    swiper.mouseEntered = false;
14580  }
14581  function animateSlider(newEvent) {
14582    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {
14583      // Prevent if delta of wheel scroll delta is below configured threshold
14584      return false;
14585    }
14586    if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {
14587      // Prevent if time between scrolls is below configured threshold
14588      return false;
14589    }
14590
14591    // If the movement is NOT big enough and
14592    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):
14593    //   Don't go any further (avoid insignificant scroll movement).
14594    if (newEvent.delta >= 6 && (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)() - lastScrollTime < 60) {
14595      // Return false as a default
14596      return true;
14597    }
14598    // If user is scrolling towards the end:
14599    //   If the slider hasn't hit the latest slide or
14600    //   if the slider is a loop and
14601    //   if the slider isn't moving right now:
14602    //     Go to next slide and
14603    //     emit a scroll event.
14604    // Else (the user is scrolling towards the beginning) and
14605    // if the slider hasn't hit the first slide or
14606    // if the slider is a loop and
14607    // if the slider isn't moving right now:
14608    //   Go to prev slide and
14609    //   emit a scroll event.
14610    if (newEvent.direction < 0) {
14611      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {
14612        swiper.slideNext();
14613        emit('scroll', newEvent.raw);
14614      }
14615    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {
14616      swiper.slidePrev();
14617      emit('scroll', newEvent.raw);
14618    }
14619    // If you got here is because an animation has been triggered so store the current time
14620    lastScrollTime = new window.Date().getTime();
14621    // Return false as a default
14622    return false;
14623  }
14624  function releaseScroll(newEvent) {
14625    const params = swiper.params.mousewheel;
14626    if (newEvent.direction < 0) {
14627      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {
14628        // Return true to animate scroll on edges
14629        return true;
14630      }
14631    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {
14632      // Return true to animate scroll on edges
14633      return true;
14634    }
14635    return false;
14636  }
14637  function handle(event) {
14638    let e = event;
14639    let disableParentSwiper = true;
14640    if (!swiper.enabled) return;
14641
14642    // Ignore event if the target or its parents have the swiper-no-mousewheel class
14643    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;
14644    const params = swiper.params.mousewheel;
14645    if (swiper.params.cssMode) {
14646      e.preventDefault();
14647    }
14648    let targetEl = swiper.el;
14649    if (swiper.params.mousewheel.eventsTarget !== 'container') {
14650      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
14651    }
14652    const targetElContainsTarget = targetEl && targetEl.contains(e.target);
14653    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;
14654    if (e.originalEvent) e = e.originalEvent; // jquery fix
14655    let delta = 0;
14656    const rtlFactor = swiper.rtlTranslate ? -1 : 1;
14657    const data = normalize(e);
14658    if (params.forceToAxis) {
14659      if (swiper.isHorizontal()) {
14660        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;
14661      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;
14662    } else {
14663      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;
14664    }
14665    if (delta === 0) return true;
14666    if (params.invert) delta = -delta;
14667
14668    // Get the scroll positions
14669    let positions = swiper.getTranslate() + delta * params.sensitivity;
14670    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();
14671    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();
14672
14673    // When loop is true:
14674    //     the disableParentSwiper will be true.
14675    // When loop is false:
14676    //     if the scroll positions is not on edge,
14677    //     then the disableParentSwiper will be true.
14678    //     if the scroll on edge positions,
14679    //     then the disableParentSwiper will be false.
14680    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());
14681    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();
14682    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {
14683      // Register the new event in a variable which stores the relevant data
14684      const newEvent = {
14685        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
14686        delta: Math.abs(delta),
14687        direction: Math.sign(delta),
14688        raw: event
14689      };
14690
14691      // Keep the most recent events
14692      if (recentWheelEvents.length >= 2) {
14693        recentWheelEvents.shift(); // only store the last N events
14694      }
14695
14696      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
14697      recentWheelEvents.push(newEvent);
14698
14699      // If there is at least one previous recorded event:
14700      //   If direction has changed or
14701      //   if the scroll is quicker than the previous one:
14702      //     Animate the slider.
14703      // Else (this is the first time the wheel is moved):
14704      //     Animate the slider.
14705      if (prevEvent) {
14706        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {
14707          animateSlider(newEvent);
14708        }
14709      } else {
14710        animateSlider(newEvent);
14711      }
14712
14713      // If it's time to release the scroll:
14714      //   Return now so you don't hit the preventDefault.
14715      if (releaseScroll(newEvent)) {
14716        return true;
14717      }
14718    } else {
14719      // Freemode or scrollContainer:
14720
14721      // If we recently snapped after a momentum scroll, then ignore wheel events
14722      // to give time for the deceleration to finish. Stop ignoring after 500 msecs
14723      // or if it's a new scroll (larger delta or inverse sign as last event before
14724      // an end-of-momentum snap).
14725      const newEvent = {
14726        time: (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)(),
14727        delta: Math.abs(delta),
14728        direction: Math.sign(delta)
14729      };
14730      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;
14731      if (!ignoreWheelEvents) {
14732        lastEventBeforeSnap = undefined;
14733        let position = swiper.getTranslate() + delta * params.sensitivity;
14734        const wasBeginning = swiper.isBeginning;
14735        const wasEnd = swiper.isEnd;
14736        if (position >= swiper.minTranslate()) position = swiper.minTranslate();
14737        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();
14738        swiper.setTransition(0);
14739        swiper.setTranslate(position);
14740        swiper.updateProgress();
14741        swiper.updateActiveIndex();
14742        swiper.updateSlidesClasses();
14743        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {
14744          swiper.updateSlidesClasses();
14745        }
14746        if (swiper.params.loop) {
14747          swiper.loopFix({
14748            direction: newEvent.direction < 0 ? 'next' : 'prev',
14749            byMousewheel: true
14750          });
14751        }
14752        if (swiper.params.freeMode.sticky) {
14753          // When wheel scrolling starts with sticky (aka snap) enabled, then detect
14754          // the end of a momentum scroll by storing recent (N=15?) wheel events.
14755          // 1. do all N events have decreasing or same (absolute value) delta?
14756          // 2. did all N events arrive in the last M (M=500?) msecs?
14757          // 3. does the earliest event have an (absolute value) delta that's
14758          //    at least P (P=1?) larger than the most recent event's delta?
14759          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?
14760          // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration.
14761          // Snap immediately and ignore remaining wheel events in this scroll.
14762          // See comment above for "remaining wheel events in this scroll" determination.
14763          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.
14764          clearTimeout(timeout);
14765          timeout = undefined;
14766          if (recentWheelEvents.length >= 15) {
14767            recentWheelEvents.shift(); // only store the last N events
14768          }
14769
14770          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;
14771          const firstEvent = recentWheelEvents[0];
14772          recentWheelEvents.push(newEvent);
14773          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {
14774            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.
14775            recentWheelEvents.splice(0);
14776          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {
14777            // We're at the end of the deceleration of a momentum scroll, so there's no need
14778            // to wait for more events. Snap ASAP on the next tick.
14779            // Also, because there's some remaining momentum we'll bias the snap in the
14780            // direction of the ongoing scroll because it's better UX for the scroll to snap
14781            // in the same direction as the scroll instead of reversing to snap.  Therefore,
14782            // if it's already scrolled more than 20% in the current direction, keep going.
14783            const snapToThreshold = delta > 0 ? 0.8 : 0.2;
14784            lastEventBeforeSnap = newEvent;
14785            recentWheelEvents.splice(0);
14786            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
14787              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
14788            }, 0); // no delay; move on next tick
14789          }
14790
14791          if (!timeout) {
14792            // if we get here, then we haven't detected the end of a momentum scroll, so
14793            // we'll consider a scroll "complete" when there haven't been any wheel events
14794            // for 500ms.
14795            timeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
14796              const snapToThreshold = 0.5;
14797              lastEventBeforeSnap = newEvent;
14798              recentWheelEvents.splice(0);
14799              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);
14800            }, 500);
14801          }
14802        }
14803
14804        // Emit event
14805        if (!ignoreWheelEvents) emit('scroll', e);
14806
14807        // Stop autoplay
14808        if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();
14809        // Return page scroll on edge positions
14810        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {
14811          return true;
14812        }
14813      }
14814    }
14815    if (e.preventDefault) e.preventDefault();else e.returnValue = false;
14816    return false;
14817  }
14818  function events(method) {
14819    let targetEl = swiper.el;
14820    if (swiper.params.mousewheel.eventsTarget !== 'container') {
14821      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);
14822    }
14823    targetEl[method]('mouseenter', handleMouseEnter);
14824    targetEl[method]('mouseleave', handleMouseLeave);
14825    targetEl[method]('wheel', handle);
14826  }
14827  function enable() {
14828    if (swiper.params.cssMode) {
14829      swiper.wrapperEl.removeEventListener('wheel', handle);
14830      return true;
14831    }
14832    if (swiper.mousewheel.enabled) return false;
14833    events('addEventListener');
14834    swiper.mousewheel.enabled = true;
14835    return true;
14836  }
14837  function disable() {
14838    if (swiper.params.cssMode) {
14839      swiper.wrapperEl.addEventListener(event, handle);
14840      return true;
14841    }
14842    if (!swiper.mousewheel.enabled) return false;
14843    events('removeEventListener');
14844    swiper.mousewheel.enabled = false;
14845    return true;
14846  }
14847  on('init', () => {
14848    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {
14849      disable();
14850    }
14851    if (swiper.params.mousewheel.enabled) enable();
14852  });
14853  on('destroy', () => {
14854    if (swiper.params.cssMode) {
14855      enable();
14856    }
14857    if (swiper.mousewheel.enabled) disable();
14858  });
14859  Object.assign(swiper.mousewheel, {
14860    enable,
14861    disable
14862  });
14863}
14864
14865
14866
14867
14868/***/ }),
14869
vendor: 7,393 bytes, lines 14870-15085
14870/***/ "./node_modules/swiper/modules/navigation.mjs":
14871/*!****************************************************!*\
14872  !*** ./node_modules/swiper/modules/navigation.mjs ***!
14873  \****************************************************/
14874/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
14875
14876__webpack_require__.r(__webpack_exports__);
14877/* harmony export */ __webpack_require__.d(__webpack_exports__, {
14878/* harmony export */   "default": function() { return /* binding */ Navigation; }
14879/* harmony export */ });
14880/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
14881/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
14882
14883
14884
14885function Navigation(_ref) {
14886  let {
14887    swiper,
14888    extendParams,
14889    on,
14890    emit
14891  } = _ref;
14892  extendParams({
14893    navigation: {
14894      nextEl: null,
14895      prevEl: null,
14896      hideOnClick: false,
14897      disabledClass: 'swiper-button-disabled',
14898      hiddenClass: 'swiper-button-hidden',
14899      lockClass: 'swiper-button-lock',
14900      navigationDisabledClass: 'swiper-navigation-disabled'
14901    }
14902  });
14903  swiper.navigation = {
14904    nextEl: null,
14905    prevEl: null
14906  };
14907  function getEl(el) {
14908    let res;
14909    if (el && typeof el === 'string' && swiper.isElement) {
14910      res = swiper.el.querySelector(el);
14911      if (res) return res;
14912    }
14913    if (el) {
14914      if (typeof el === 'string') res = [...document.querySelectorAll(el)];
14915      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {
14916        res = swiper.el.querySelector(el);
14917      } else if (res && res.length === 1) {
14918        res = res[0];
14919      }
14920    }
14921    if (el && !res) return el;
14922    // if (Array.isArray(res) && res.length === 1) res = res[0];
14923    return res;
14924  }
14925  function toggleEl(el, disabled) {
14926    const params = swiper.params.navigation;
14927    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
14928    el.forEach(subEl => {
14929      if (subEl) {
14930        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));
14931        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;
14932        if (swiper.params.watchOverflow && swiper.enabled) {
14933          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
14934        }
14935      }
14936    });
14937  }
14938  function update() {
14939    // Update Navigation Buttons
14940    const {
14941      nextEl,
14942      prevEl
14943    } = swiper.navigation;
14944    if (swiper.params.loop) {
14945      toggleEl(prevEl, false);
14946      toggleEl(nextEl, false);
14947      return;
14948    }
14949    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);
14950    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);
14951  }
14952  function onPrevClick(e) {
14953    e.preventDefault();
14954    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;
14955    swiper.slidePrev();
14956    emit('navigationPrev');
14957  }
14958  function onNextClick(e) {
14959    e.preventDefault();
14960    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;
14961    swiper.slideNext();
14962    emit('navigationNext');
14963  }
14964  function init() {
14965    const params = swiper.params.navigation;
14966    swiper.params.navigation = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper, swiper.originalParams.navigation, swiper.params.navigation, {
14967      nextEl: 'swiper-button-next',
14968      prevEl: 'swiper-button-prev'
14969    });
14970    if (!(params.nextEl || params.prevEl)) return;
14971    let nextEl = getEl(params.nextEl);
14972    let prevEl = getEl(params.prevEl);
14973    Object.assign(swiper.navigation, {
14974      nextEl,
14975      prevEl
14976    });
14977    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
14978    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
14979    const initButton = (el, dir) => {
14980      if (el) {
14981        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
14982      }
14983      if (!swiper.enabled && el) {
14984        el.classList.add(...params.lockClass.split(' '));
14985      }
14986    };
14987    nextEl.forEach(el => initButton(el, 'next'));
14988    prevEl.forEach(el => initButton(el, 'prev'));
14989  }
14990  function destroy() {
14991    let {
14992      nextEl,
14993      prevEl
14994    } = swiper.navigation;
14995    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
14996    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
14997    const destroyButton = (el, dir) => {
14998      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);
14999      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));
15000    };
15001    nextEl.forEach(el => destroyButton(el, 'next'));
15002    prevEl.forEach(el => destroyButton(el, 'prev'));
15003  }
15004  on('init', () => {
15005    if (swiper.params.navigation.enabled === false) {
15006      // eslint-disable-next-line
15007      disable();
15008    } else {
15009      init();
15010      update();
15011    }
15012  });
15013  on('toEdge fromEdge lock unlock', () => {
15014    update();
15015  });
15016  on('destroy', () => {
15017    destroy();
15018  });
15019  on('enable disable', () => {
15020    let {
15021      nextEl,
15022      prevEl
15023    } = swiper.navigation;
15024    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
15025    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
15026    if (swiper.enabled) {
15027      update();
15028      return;
15029    }
15030    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));
15031  });
15032  on('click', (_s, e) => {
15033    let {
15034      nextEl,
15035      prevEl
15036    } = swiper.navigation;
15037    nextEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(nextEl);
15038    prevEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(prevEl);
15039    const targetEl = e.target;
15040    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);
15041    if (swiper.isElement && !targetIsButton) {
15042      const path = e.path || e.composedPath && e.composedPath();
15043      if (path) {
15044        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));
15045      }
15046    }
15047    if (swiper.params.navigation.hideOnClick && !targetIsButton) {
15048      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;
15049      let isHidden;
15050      if (nextEl.length) {
15051        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);
15052      } else if (prevEl.length) {
15053        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);
15054      }
15055      if (isHidden === true) {
15056        emit('navigationShow');
15057      } else {
15058        emit('navigationHide');
15059      }
15060      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));
15061    }
15062  });
15063  const enable = () => {
15064    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));
15065    init();
15066    update();
15067  };
15068  const disable = () => {
15069    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));
15070    destroy();
15071  };
15072  Object.assign(swiper.navigation, {
15073    enable,
15074    disable,
15075    update,
15076    init,
15077    destroy
15078  });
15079}
15080
15081
15082
15083
15084/***/ }),
15085
vendor: 18,514 bytes, lines 15086-15545
15086/***/ "./node_modules/swiper/modules/pagination.mjs":
15087/*!****************************************************!*\
15088  !*** ./node_modules/swiper/modules/pagination.mjs ***!
15089  \****************************************************/
15090/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
15091
15092__webpack_require__.r(__webpack_exports__);
15093/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15094/* harmony export */   "default": function() { return /* binding */ Pagination; }
15095/* harmony export */ });
15096/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
15097/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
15098/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
15099
15100
15101
15102
15103function Pagination(_ref) {
15104  let {
15105    swiper,
15106    extendParams,
15107    on,
15108    emit
15109  } = _ref;
15110  const pfx = 'swiper-pagination';
15111  extendParams({
15112    pagination: {
15113      el: null,
15114      bulletElement: 'span',
15115      clickable: false,
15116      hideOnClick: false,
15117      renderBullet: null,
15118      renderProgressbar: null,
15119      renderFraction: null,
15120      renderCustom: null,
15121      progressbarOpposite: false,
15122      type: 'bullets',
15123      // 'bullets' or 'progressbar' or 'fraction' or 'custom'
15124      dynamicBullets: false,
15125      dynamicMainBullets: 1,
15126      formatFractionCurrent: number => number,
15127      formatFractionTotal: number => number,
15128      bulletClass: `${pfx}-bullet`,
15129      bulletActiveClass: `${pfx}-bullet-active`,
15130      modifierClass: `${pfx}-`,
15131      currentClass: `${pfx}-current`,
15132      totalClass: `${pfx}-total`,
15133      hiddenClass: `${pfx}-hidden`,
15134      progressbarFillClass: `${pfx}-progressbar-fill`,
15135      progressbarOppositeClass: `${pfx}-progressbar-opposite`,
15136      clickableClass: `${pfx}-clickable`,
15137      lockClass: `${pfx}-lock`,
15138      horizontalClass: `${pfx}-horizontal`,
15139      verticalClass: `${pfx}-vertical`,
15140      paginationDisabledClass: `${pfx}-disabled`
15141    }
15142  });
15143  swiper.pagination = {
15144    el: null,
15145    bullets: []
15146  };
15147  let bulletSize;
15148  let dynamicBulletIndex = 0;
15149  function isPaginationDisabled() {
15150    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;
15151  }
15152  function setSideBullets(bulletEl, position) {
15153    const {
15154      bulletActiveClass
15155    } = swiper.params.pagination;
15156    if (!bulletEl) return;
15157    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
15158    if (bulletEl) {
15159      bulletEl.classList.add(`${bulletActiveClass}-${position}`);
15160      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];
15161      if (bulletEl) {
15162        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);
15163      }
15164    }
15165  }
15166  function onBulletClick(e) {
15167    const bulletEl = e.target.closest((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(swiper.params.pagination.bulletClass));
15168    if (!bulletEl) {
15169      return;
15170    }
15171    e.preventDefault();
15172    const index = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bulletEl) * swiper.params.slidesPerGroup;
15173    if (swiper.params.loop) {
15174      if (swiper.realIndex === index) return;
15175      swiper.slideToLoop(index);
15176    } else {
15177      swiper.slideTo(index);
15178    }
15179  }
15180  function update() {
15181    // Render || Update Pagination bullets/items
15182    const rtl = swiper.rtl;
15183    const params = swiper.params.pagination;
15184    if (isPaginationDisabled()) return;
15185    let el = swiper.pagination.el;
15186    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15187    // Current/Total
15188    let current;
15189    let previousIndex;
15190    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;
15191    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
15192    if (swiper.params.loop) {
15193      previousIndex = swiper.previousRealIndex || 0;
15194      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;
15195    } else if (typeof swiper.snapIndex !== 'undefined') {
15196      current = swiper.snapIndex;
15197      previousIndex = swiper.previousSnapIndex;
15198    } else {
15199      previousIndex = swiper.previousIndex || 0;
15200      current = swiper.activeIndex || 0;
15201    }
15202    // Types
15203    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {
15204      const bullets = swiper.pagination.bullets;
15205      let firstIndex;
15206      let lastIndex;
15207      let midIndex;
15208      if (params.dynamicBullets) {
15209        bulletSize = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.f)(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);
15210        el.forEach(subEl => {
15211          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;
15212        });
15213        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {
15214          dynamicBulletIndex += current - (previousIndex || 0);
15215          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {
15216            dynamicBulletIndex = params.dynamicMainBullets - 1;
15217          } else if (dynamicBulletIndex < 0) {
15218            dynamicBulletIndex = 0;
15219          }
15220        }
15221        firstIndex = Math.max(current - dynamicBulletIndex, 0);
15222        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);
15223        midIndex = (lastIndex + firstIndex) / 2;
15224      }
15225      bullets.forEach(bulletEl => {
15226        const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();
15227        bulletEl.classList.remove(...classesToRemove);
15228      });
15229      if (el.length > 1) {
15230        bullets.forEach(bullet => {
15231          const bulletIndex = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.h)(bullet);
15232          if (bulletIndex === current) {
15233            bullet.classList.add(...params.bulletActiveClass.split(' '));
15234          } else if (swiper.isElement) {
15235            bullet.setAttribute('part', 'bullet');
15236          }
15237          if (params.dynamicBullets) {
15238            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {
15239              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));
15240            }
15241            if (bulletIndex === firstIndex) {
15242              setSideBullets(bullet, 'prev');
15243            }
15244            if (bulletIndex === lastIndex) {
15245              setSideBullets(bullet, 'next');
15246            }
15247          }
15248        });
15249      } else {
15250        const bullet = bullets[current];
15251        if (bullet) {
15252          bullet.classList.add(...params.bulletActiveClass.split(' '));
15253        }
15254        if (swiper.isElement) {
15255          bullets.forEach((bulletEl, bulletIndex) => {
15256            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');
15257          });
15258        }
15259        if (params.dynamicBullets) {
15260          const firstDisplayedBullet = bullets[firstIndex];
15261          const lastDisplayedBullet = bullets[lastIndex];
15262          for (let i = firstIndex; i <= lastIndex; i += 1) {
15263            if (bullets[i]) {
15264              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));
15265            }
15266          }
15267          setSideBullets(firstDisplayedBullet, 'prev');
15268          setSideBullets(lastDisplayedBullet, 'next');
15269        }
15270      }
15271      if (params.dynamicBullets) {
15272        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);
15273        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;
15274        const offsetProp = rtl ? 'right' : 'left';
15275        bullets.forEach(bullet => {
15276          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;
15277        });
15278      }
15279    }
15280    el.forEach((subEl, subElIndex) => {
15281      if (params.type === 'fraction') {
15282        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.currentClass)).forEach(fractionEl => {
15283          fractionEl.textContent = params.formatFractionCurrent(current + 1);
15284        });
15285        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.totalClass)).forEach(totalEl => {
15286          totalEl.textContent = params.formatFractionTotal(total);
15287        });
15288      }
15289      if (params.type === 'progressbar') {
15290        let progressbarDirection;
15291        if (params.progressbarOpposite) {
15292          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';
15293        } else {
15294          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';
15295        }
15296        const scale = (current + 1) / total;
15297        let scaleX = 1;
15298        let scaleY = 1;
15299        if (progressbarDirection === 'horizontal') {
15300          scaleX = scale;
15301        } else {
15302          scaleY = scale;
15303        }
15304        subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.progressbarFillClass)).forEach(progressEl => {
15305          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;
15306          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;
15307        });
15308      }
15309      if (params.type === 'custom' && params.renderCustom) {
15310        subEl.innerHTML = params.renderCustom(swiper, current + 1, total);
15311        if (subElIndex === 0) emit('paginationRender', subEl);
15312      } else {
15313        if (subElIndex === 0) emit('paginationRender', subEl);
15314        emit('paginationUpdate', subEl);
15315      }
15316      if (swiper.params.watchOverflow && swiper.enabled) {
15317        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);
15318      }
15319    });
15320  }
15321  function render() {
15322    // Render Container
15323    const params = swiper.params.pagination;
15324    if (isPaginationDisabled()) return;
15325    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;
15326    let el = swiper.pagination.el;
15327    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15328    let paginationHTML = '';
15329    if (params.type === 'bullets') {
15330      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;
15331      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {
15332        numberOfBullets = slidesLength;
15333      }
15334      for (let i = 0; i < numberOfBullets; i += 1) {
15335        if (params.renderBullet) {
15336          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);
15337        } else {
15338          // prettier-ignore
15339          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part="bullet"' : ''} class="${params.bulletClass}"></${params.bulletElement}>`;
15340        }
15341      }
15342    }
15343    if (params.type === 'fraction') {
15344      if (params.renderFraction) {
15345        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);
15346      } else {
15347        paginationHTML = `<span class="${params.currentClass}"></span>` + ' / ' + `<span class="${params.totalClass}"></span>`;
15348      }
15349    }
15350    if (params.type === 'progressbar') {
15351      if (params.renderProgressbar) {
15352        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);
15353      } else {
15354        paginationHTML = `<span class="${params.progressbarFillClass}"></span>`;
15355      }
15356    }
15357    swiper.pagination.bullets = [];
15358    el.forEach(subEl => {
15359      if (params.type !== 'custom') {
15360        subEl.innerHTML = paginationHTML || '';
15361      }
15362      if (params.type === 'bullets') {
15363        swiper.pagination.bullets.push(...subEl.querySelectorAll((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_0__.c)(params.bulletClass)));
15364      }
15365    });
15366    if (params.type !== 'custom') {
15367      emit('paginationRender', el[0]);
15368    }
15369  }
15370  function init() {
15371    swiper.params.pagination = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_1__.c)(swiper, swiper.originalParams.pagination, swiper.params.pagination, {
15372      el: 'swiper-pagination'
15373    });
15374    const params = swiper.params.pagination;
15375    if (!params.el) return;
15376    let el;
15377    if (typeof params.el === 'string' && swiper.isElement) {
15378      el = swiper.el.querySelector(params.el);
15379    }
15380    if (!el && typeof params.el === 'string') {
15381      el = [...document.querySelectorAll(params.el)];
15382    }
15383    if (!el) {
15384      el = params.el;
15385    }
15386    if (!el || el.length === 0) return;
15387    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {
15388      el = [...swiper.el.querySelectorAll(params.el)];
15389      // check if it belongs to another nested Swiper
15390      if (el.length > 1) {
15391        el = el.filter(subEl => {
15392          if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.a)(subEl, '.swiper')[0] !== swiper.el) return false;
15393          return true;
15394        })[0];
15395      }
15396    }
15397    if (Array.isArray(el) && el.length === 1) el = el[0];
15398    Object.assign(swiper.pagination, {
15399      el
15400    });
15401    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15402    el.forEach(subEl => {
15403      if (params.type === 'bullets' && params.clickable) {
15404        subEl.classList.add(...(params.clickableClass || '').split(' '));
15405      }
15406      subEl.classList.add(params.modifierClass + params.type);
15407      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
15408      if (params.type === 'bullets' && params.dynamicBullets) {
15409        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);
15410        dynamicBulletIndex = 0;
15411        if (params.dynamicMainBullets < 1) {
15412          params.dynamicMainBullets = 1;
15413        }
15414      }
15415      if (params.type === 'progressbar' && params.progressbarOpposite) {
15416        subEl.classList.add(params.progressbarOppositeClass);
15417      }
15418      if (params.clickable) {
15419        subEl.addEventListener('click', onBulletClick);
15420      }
15421      if (!swiper.enabled) {
15422        subEl.classList.add(params.lockClass);
15423      }
15424    });
15425  }
15426  function destroy() {
15427    const params = swiper.params.pagination;
15428    if (isPaginationDisabled()) return;
15429    let el = swiper.pagination.el;
15430    if (el) {
15431      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15432      el.forEach(subEl => {
15433        subEl.classList.remove(params.hiddenClass);
15434        subEl.classList.remove(params.modifierClass + params.type);
15435        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
15436        if (params.clickable) {
15437          subEl.classList.remove(...(params.clickableClass || '').split(' '));
15438          subEl.removeEventListener('click', onBulletClick);
15439        }
15440      });
15441    }
15442    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));
15443  }
15444  on('changeDirection', () => {
15445    if (!swiper.pagination || !swiper.pagination.el) return;
15446    const params = swiper.params.pagination;
15447    let {
15448      el
15449    } = swiper.pagination;
15450    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15451    el.forEach(subEl => {
15452      subEl.classList.remove(params.horizontalClass, params.verticalClass);
15453      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
15454    });
15455  });
15456  on('init', () => {
15457    if (swiper.params.pagination.enabled === false) {
15458      // eslint-disable-next-line
15459      disable();
15460    } else {
15461      init();
15462      render();
15463      update();
15464    }
15465  });
15466  on('activeIndexChange', () => {
15467    if (typeof swiper.snapIndex === 'undefined') {
15468      update();
15469    }
15470  });
15471  on('snapIndexChange', () => {
15472    update();
15473  });
15474  on('snapGridLengthChange', () => {
15475    render();
15476    update();
15477  });
15478  on('destroy', () => {
15479    destroy();
15480  });
15481  on('enable disable', () => {
15482    let {
15483      el
15484    } = swiper.pagination;
15485    if (el) {
15486      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15487      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));
15488    }
15489  });
15490  on('lock unlock', () => {
15491    update();
15492  });
15493  on('click', (_s, e) => {
15494    const targetEl = e.target;
15495    const el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(swiper.pagination.el);
15496    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {
15497      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;
15498      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);
15499      if (isHidden === true) {
15500        emit('paginationShow');
15501      } else {
15502        emit('paginationHide');
15503      }
15504      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));
15505    }
15506  });
15507  const enable = () => {
15508    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);
15509    let {
15510      el
15511    } = swiper.pagination;
15512    if (el) {
15513      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15514      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));
15515    }
15516    init();
15517    render();
15518    update();
15519  };
15520  const disable = () => {
15521    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);
15522    let {
15523      el
15524    } = swiper.pagination;
15525    if (el) {
15526      el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_2__.m)(el);
15527      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));
15528    }
15529    destroy();
15530  };
15531  Object.assign(swiper.pagination, {
15532    enable,
15533    disable,
15534    render,
15535    update,
15536    init,
15537    destroy
15538  });
15539}
15540
15541
15542
15543
15544/***/ }),
15545
vendor: 4,704 bytes, lines 15546-15684
15546/***/ "./node_modules/swiper/modules/parallax.mjs":
15547/*!**************************************************!*\
15548  !*** ./node_modules/swiper/modules/parallax.mjs ***!
15549  \**************************************************/
15550/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
15551
15552__webpack_require__.r(__webpack_exports__);
15553/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15554/* harmony export */   "default": function() { return /* binding */ Parallax; }
15555/* harmony export */ });
15556/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
15557
15558
15559function Parallax(_ref) {
15560  let {
15561    swiper,
15562    extendParams,
15563    on
15564  } = _ref;
15565  extendParams({
15566    parallax: {
15567      enabled: false
15568    }
15569  });
15570  const elementsSelector = '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]';
15571  const setTransform = (el, progress) => {
15572    const {
15573      rtl
15574    } = swiper;
15575    const rtlFactor = rtl ? -1 : 1;
15576    const p = el.getAttribute('data-swiper-parallax') || '0';
15577    let x = el.getAttribute('data-swiper-parallax-x');
15578    let y = el.getAttribute('data-swiper-parallax-y');
15579    const scale = el.getAttribute('data-swiper-parallax-scale');
15580    const opacity = el.getAttribute('data-swiper-parallax-opacity');
15581    const rotate = el.getAttribute('data-swiper-parallax-rotate');
15582    if (x || y) {
15583      x = x || '0';
15584      y = y || '0';
15585    } else if (swiper.isHorizontal()) {
15586      x = p;
15587      y = '0';
15588    } else {
15589      y = p;
15590      x = '0';
15591    }
15592    if (x.indexOf('%') >= 0) {
15593      x = `${parseInt(x, 10) * progress * rtlFactor}%`;
15594    } else {
15595      x = `${x * progress * rtlFactor}px`;
15596    }
15597    if (y.indexOf('%') >= 0) {
15598      y = `${parseInt(y, 10) * progress}%`;
15599    } else {
15600      y = `${y * progress}px`;
15601    }
15602    if (typeof opacity !== 'undefined' && opacity !== null) {
15603      const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));
15604      el.style.opacity = currentOpacity;
15605    }
15606    let transform = `translate3d(${x}, ${y}, 0px)`;
15607    if (typeof scale !== 'undefined' && scale !== null) {
15608      const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));
15609      transform += ` scale(${currentScale})`;
15610    }
15611    if (rotate && typeof rotate !== 'undefined' && rotate !== null) {
15612      const currentRotate = rotate * progress * -1;
15613      transform += ` rotate(${currentRotate}deg)`;
15614    }
15615    el.style.transform = transform;
15616  };
15617  const setTranslate = () => {
15618    const {
15619      el,
15620      slides,
15621      progress,
15622      snapGrid,
15623      isElement
15624    } = swiper;
15625    const elements = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(el, elementsSelector);
15626    if (swiper.isElement) {
15627      elements.push(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.hostEl, elementsSelector));
15628    }
15629    elements.forEach(subEl => {
15630      setTransform(subEl, progress);
15631    });
15632    slides.forEach((slideEl, slideIndex) => {
15633      let slideProgress = slideEl.progress;
15634      if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {
15635        slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);
15636      }
15637      slideProgress = Math.min(Math.max(slideProgress, -1), 1);
15638      slideEl.querySelectorAll(`${elementsSelector}, [data-swiper-parallax-rotate]`).forEach(subEl => {
15639        setTransform(subEl, slideProgress);
15640      });
15641    });
15642  };
15643  const setTransition = function (duration) {
15644    if (duration === void 0) {
15645      duration = swiper.params.speed;
15646    }
15647    const {
15648      el,
15649      hostEl
15650    } = swiper;
15651    const elements = [...el.querySelectorAll(elementsSelector)];
15652    if (swiper.isElement) {
15653      elements.push(...hostEl.querySelectorAll(elementsSelector));
15654    }
15655    elements.forEach(parallaxEl => {
15656      let parallaxDuration = parseInt(parallaxEl.getAttribute('data-swiper-parallax-duration'), 10) || duration;
15657      if (duration === 0) parallaxDuration = 0;
15658      parallaxEl.style.transitionDuration = `${parallaxDuration}ms`;
15659    });
15660  };
15661  on('beforeInit', () => {
15662    if (!swiper.params.parallax.enabled) return;
15663    swiper.params.watchSlidesProgress = true;
15664    swiper.originalParams.watchSlidesProgress = true;
15665  });
15666  on('init', () => {
15667    if (!swiper.params.parallax.enabled) return;
15668    setTranslate();
15669  });
15670  on('setTranslate', () => {
15671    if (!swiper.params.parallax.enabled) return;
15672    setTranslate();
15673  });
15674  on('setTransition', (_swiper, duration) => {
15675    if (!swiper.params.parallax.enabled) return;
15676    setTransition(duration);
15677  });
15678}
15679
15680
15681
15682
15683/***/ }),
15684
vendor: 12,537 bytes, lines 15685-16068
15685/***/ "./node_modules/swiper/modules/scrollbar.mjs":
15686/*!***************************************************!*\
15687  !*** ./node_modules/swiper/modules/scrollbar.mjs ***!
15688  \***************************************************/
15689/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
15690
15691__webpack_require__.r(__webpack_exports__);
15692/* harmony export */ __webpack_require__.d(__webpack_exports__, {
15693/* harmony export */   "default": function() { return /* binding */ Scrollbar; }
15694/* harmony export */ });
15695/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
15696/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
15697/* harmony import */ var _shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/create-element-if-not-defined.mjs */ "./node_modules/swiper/shared/create-element-if-not-defined.mjs");
15698/* harmony import */ var _shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/classes-to-selector.mjs */ "./node_modules/swiper/shared/classes-to-selector.mjs");
15699
15700
15701
15702
15703
15704function Scrollbar(_ref) {
15705  let {
15706    swiper,
15707    extendParams,
15708    on,
15709    emit
15710  } = _ref;
15711  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
15712  let isTouched = false;
15713  let timeout = null;
15714  let dragTimeout = null;
15715  let dragStartPos;
15716  let dragSize;
15717  let trackSize;
15718  let divider;
15719  extendParams({
15720    scrollbar: {
15721      el: null,
15722      dragSize: 'auto',
15723      hide: false,
15724      draggable: false,
15725      snapOnRelease: true,
15726      lockClass: 'swiper-scrollbar-lock',
15727      dragClass: 'swiper-scrollbar-drag',
15728      scrollbarDisabledClass: 'swiper-scrollbar-disabled',
15729      horizontalClass: `swiper-scrollbar-horizontal`,
15730      verticalClass: `swiper-scrollbar-vertical`
15731    }
15732  });
15733  swiper.scrollbar = {
15734    el: null,
15735    dragEl: null
15736  };
15737  function setTranslate() {
15738    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
15739    const {
15740      scrollbar,
15741      rtlTranslate: rtl
15742    } = swiper;
15743    const {
15744      dragEl,
15745      el
15746    } = scrollbar;
15747    const params = swiper.params.scrollbar;
15748    const progress = swiper.params.loop ? swiper.progressLoop : swiper.progress;
15749    let newSize = dragSize;
15750    let newPos = (trackSize - dragSize) * progress;
15751    if (rtl) {
15752      newPos = -newPos;
15753      if (newPos > 0) {
15754        newSize = dragSize - newPos;
15755        newPos = 0;
15756      } else if (-newPos + dragSize > trackSize) {
15757        newSize = trackSize + newPos;
15758      }
15759    } else if (newPos < 0) {
15760      newSize = dragSize + newPos;
15761      newPos = 0;
15762    } else if (newPos + dragSize > trackSize) {
15763      newSize = trackSize - newPos;
15764    }
15765    if (swiper.isHorizontal()) {
15766      dragEl.style.transform = `translate3d(${newPos}px, 0, 0)`;
15767      dragEl.style.width = `${newSize}px`;
15768    } else {
15769      dragEl.style.transform = `translate3d(0px, ${newPos}px, 0)`;
15770      dragEl.style.height = `${newSize}px`;
15771    }
15772    if (params.hide) {
15773      clearTimeout(timeout);
15774      el.style.opacity = 1;
15775      timeout = setTimeout(() => {
15776        el.style.opacity = 0;
15777        el.style.transitionDuration = '400ms';
15778      }, 1000);
15779    }
15780  }
15781  function setTransition(duration) {
15782    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
15783    swiper.scrollbar.dragEl.style.transitionDuration = `${duration}ms`;
15784  }
15785  function updateSize() {
15786    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
15787    const {
15788      scrollbar
15789    } = swiper;
15790    const {
15791      dragEl,
15792      el
15793    } = scrollbar;
15794    dragEl.style.width = '';
15795    dragEl.style.height = '';
15796    trackSize = swiper.isHorizontal() ? el.offsetWidth : el.offsetHeight;
15797    divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));
15798    if (swiper.params.scrollbar.dragSize === 'auto') {
15799      dragSize = trackSize * divider;
15800    } else {
15801      dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);
15802    }
15803    if (swiper.isHorizontal()) {
15804      dragEl.style.width = `${dragSize}px`;
15805    } else {
15806      dragEl.style.height = `${dragSize}px`;
15807    }
15808    if (divider >= 1) {
15809      el.style.display = 'none';
15810    } else {
15811      el.style.display = '';
15812    }
15813    if (swiper.params.scrollbar.hide) {
15814      el.style.opacity = 0;
15815    }
15816    if (swiper.params.watchOverflow && swiper.enabled) {
15817      scrollbar.el.classList[swiper.isLocked ? 'add' : 'remove'](swiper.params.scrollbar.lockClass);
15818    }
15819  }
15820  function getPointerPosition(e) {
15821    return swiper.isHorizontal() ? e.clientX : e.clientY;
15822  }
15823  function setDragPosition(e) {
15824    const {
15825      scrollbar,
15826      rtlTranslate: rtl
15827    } = swiper;
15828    const {
15829      el
15830    } = scrollbar;
15831    let positionRatio;
15832    positionRatio = (getPointerPosition(e) - (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(el)[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);
15833    positionRatio = Math.max(Math.min(positionRatio, 1), 0);
15834    if (rtl) {
15835      positionRatio = 1 - positionRatio;
15836    }
15837    const position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;
15838    swiper.updateProgress(position);
15839    swiper.setTranslate(position);
15840    swiper.updateActiveIndex();
15841    swiper.updateSlidesClasses();
15842  }
15843  function onDragStart(e) {
15844    const params = swiper.params.scrollbar;
15845    const {
15846      scrollbar,
15847      wrapperEl
15848    } = swiper;
15849    const {
15850      el,
15851      dragEl
15852    } = scrollbar;
15853    isTouched = true;
15854    dragStartPos = e.target === dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;
15855    e.preventDefault();
15856    e.stopPropagation();
15857    wrapperEl.style.transitionDuration = '100ms';
15858    dragEl.style.transitionDuration = '100ms';
15859    setDragPosition(e);
15860    clearTimeout(dragTimeout);
15861    el.style.transitionDuration = '0ms';
15862    if (params.hide) {
15863      el.style.opacity = 1;
15864    }
15865    if (swiper.params.cssMode) {
15866      swiper.wrapperEl.style['scroll-snap-type'] = 'none';
15867    }
15868    emit('scrollbarDragStart', e);
15869  }
15870  function onDragMove(e) {
15871    const {
15872      scrollbar,
15873      wrapperEl
15874    } = swiper;
15875    const {
15876      el,
15877      dragEl
15878    } = scrollbar;
15879    if (!isTouched) return;
15880    if (e.preventDefault && e.cancelable) e.preventDefault();else e.returnValue = false;
15881    setDragPosition(e);
15882    wrapperEl.style.transitionDuration = '0ms';
15883    el.style.transitionDuration = '0ms';
15884    dragEl.style.transitionDuration = '0ms';
15885    emit('scrollbarDragMove', e);
15886  }
15887  function onDragEnd(e) {
15888    const params = swiper.params.scrollbar;
15889    const {
15890      scrollbar,
15891      wrapperEl
15892    } = swiper;
15893    const {
15894      el
15895    } = scrollbar;
15896    if (!isTouched) return;
15897    isTouched = false;
15898    if (swiper.params.cssMode) {
15899      swiper.wrapperEl.style['scroll-snap-type'] = '';
15900      wrapperEl.style.transitionDuration = '';
15901    }
15902    if (params.hide) {
15903      clearTimeout(dragTimeout);
15904      dragTimeout = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
15905        el.style.opacity = 0;
15906        el.style.transitionDuration = '400ms';
15907      }, 1000);
15908    }
15909    emit('scrollbarDragEnd', e);
15910    if (params.snapOnRelease) {
15911      swiper.slideToClosest();
15912    }
15913  }
15914  function events(method) {
15915    const {
15916      scrollbar,
15917      params
15918    } = swiper;
15919    const el = scrollbar.el;
15920    if (!el) return;
15921    const target = el;
15922    const activeListener = params.passiveListeners ? {
15923      passive: false,
15924      capture: false
15925    } : false;
15926    const passiveListener = params.passiveListeners ? {
15927      passive: true,
15928      capture: false
15929    } : false;
15930    if (!target) return;
15931    const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
15932    target[eventMethod]('pointerdown', onDragStart, activeListener);
15933    document[eventMethod]('pointermove', onDragMove, activeListener);
15934    document[eventMethod]('pointerup', onDragEnd, passiveListener);
15935  }
15936  function enableDraggable() {
15937    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
15938    events('on');
15939  }
15940  function disableDraggable() {
15941    if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;
15942    events('off');
15943  }
15944  function init() {
15945    const {
15946      scrollbar,
15947      el: swiperEl
15948    } = swiper;
15949    swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_mjs__WEBPACK_IMPORTED_MODULE_2__.c)(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {
15950      el: 'swiper-scrollbar'
15951    });
15952    const params = swiper.params.scrollbar;
15953    if (!params.el) return;
15954    let el;
15955    if (typeof params.el === 'string' && swiper.isElement) {
15956      el = swiper.el.querySelector(params.el);
15957    }
15958    if (!el && typeof params.el === 'string') {
15959      el = document.querySelectorAll(params.el);
15960      if (!el.length) return;
15961    } else if (!el) {
15962      el = params.el;
15963    }
15964    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && el.length > 1 && swiperEl.querySelectorAll(params.el).length === 1) {
15965      el = swiperEl.querySelector(params.el);
15966    }
15967    if (el.length > 0) el = el[0];
15968    el.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
15969    let dragEl;
15970    if (el) {
15971      dragEl = el.querySelector((0,_shared_classes_to_selector_mjs__WEBPACK_IMPORTED_MODULE_3__.c)(swiper.params.scrollbar.dragClass));
15972      if (!dragEl) {
15973        dragEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.scrollbar.dragClass);
15974        el.append(dragEl);
15975      }
15976    }
15977    Object.assign(scrollbar, {
15978      el,
15979      dragEl
15980    });
15981    if (params.draggable) {
15982      enableDraggable();
15983    }
15984    if (el) {
15985      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
15986    }
15987  }
15988  function destroy() {
15989    const params = swiper.params.scrollbar;
15990    const el = swiper.scrollbar.el;
15991    if (el) {
15992      el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass));
15993    }
15994    disableDraggable();
15995  }
15996  on('changeDirection', () => {
15997    if (!swiper.scrollbar || !swiper.scrollbar.el) return;
15998    const params = swiper.params.scrollbar;
15999    let {
16000      el
16001    } = swiper.scrollbar;
16002    el = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.m)(el);
16003    el.forEach(subEl => {
16004      subEl.classList.remove(params.horizontalClass, params.verticalClass);
16005      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);
16006    });
16007  });
16008  on('init', () => {
16009    if (swiper.params.scrollbar.enabled === false) {
16010      // eslint-disable-next-line
16011      disable();
16012    } else {
16013      init();
16014      updateSize();
16015      setTranslate();
16016    }
16017  });
16018  on('update resize observerUpdate lock unlock changeDirection', () => {
16019    updateSize();
16020  });
16021  on('setTranslate', () => {
16022    setTranslate();
16023  });
16024  on('setTransition', (_s, duration) => {
16025    setTransition(duration);
16026  });
16027  on('enable disable', () => {
16028    const {
16029      el
16030    } = swiper.scrollbar;
16031    if (el) {
16032      el.classList[swiper.enabled ? 'remove' : 'add'](...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.lockClass));
16033    }
16034  });
16035  on('destroy', () => {
16036    destroy();
16037  });
16038  const enable = () => {
16039    swiper.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
16040    if (swiper.scrollbar.el) {
16041      swiper.scrollbar.el.classList.remove(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
16042    }
16043    init();
16044    updateSize();
16045    setTranslate();
16046  };
16047  const disable = () => {
16048    swiper.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
16049    if (swiper.scrollbar.el) {
16050      swiper.scrollbar.el.classList.add(...(0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.i)(swiper.params.scrollbar.scrollbarDisabledClass));
16051    }
16052    destroy();
16053  };
16054  Object.assign(swiper.scrollbar, {
16055    enable,
16056    disable,
16057    updateSize,
16058    setTranslate,
16059    init,
16060    destroy
16061  });
16062}
16063
16064
16065
16066
16067/***/ }),
16068
vendor: 8,102 bytes, lines 16069-16277
16069/***/ "./node_modules/swiper/modules/thumbs.mjs":
16070/*!************************************************!*\
16071  !*** ./node_modules/swiper/modules/thumbs.mjs ***!
16072  \************************************************/
16073/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
16074
16075__webpack_require__.r(__webpack_exports__);
16076/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16077/* harmony export */   "default": function() { return /* binding */ Thumb; }
16078/* harmony export */ });
16079/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
16080/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
16081
16082
16083
16084function Thumb(_ref) {
16085  let {
16086    swiper,
16087    extendParams,
16088    on
16089  } = _ref;
16090  extendParams({
16091    thumbs: {
16092      swiper: null,
16093      multipleActiveThumbs: true,
16094      autoScrollOffset: 0,
16095      slideThumbActiveClass: 'swiper-slide-thumb-active',
16096      thumbsContainerClass: 'swiper-thumbs'
16097    }
16098  });
16099  let initialized = false;
16100  let swiperCreated = false;
16101  swiper.thumbs = {
16102    swiper: null
16103  };
16104  function onThumbClick() {
16105    const thumbsSwiper = swiper.thumbs.swiper;
16106    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
16107    const clickedIndex = thumbsSwiper.clickedIndex;
16108    const clickedSlide = thumbsSwiper.clickedSlide;
16109    if (clickedSlide && clickedSlide.classList.contains(swiper.params.thumbs.slideThumbActiveClass)) return;
16110    if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;
16111    let slideToIndex;
16112    if (thumbsSwiper.params.loop) {
16113      slideToIndex = parseInt(thumbsSwiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
16114    } else {
16115      slideToIndex = clickedIndex;
16116    }
16117    if (swiper.params.loop) {
16118      swiper.slideToLoop(slideToIndex);
16119    } else {
16120      swiper.slideTo(slideToIndex);
16121    }
16122  }
16123  function init() {
16124    const {
16125      thumbs: thumbsParams
16126    } = swiper.params;
16127    if (initialized) return false;
16128    initialized = true;
16129    const SwiperClass = swiper.constructor;
16130    if (thumbsParams.swiper instanceof SwiperClass) {
16131      swiper.thumbs.swiper = thumbsParams.swiper;
16132      Object.assign(swiper.thumbs.swiper.originalParams, {
16133        watchSlidesProgress: true,
16134        slideToClickedSlide: false
16135      });
16136      Object.assign(swiper.thumbs.swiper.params, {
16137        watchSlidesProgress: true,
16138        slideToClickedSlide: false
16139      });
16140      swiper.thumbs.swiper.update();
16141    } else if ((0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.l)(thumbsParams.swiper)) {
16142      const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);
16143      Object.assign(thumbsSwiperParams, {
16144        watchSlidesProgress: true,
16145        slideToClickedSlide: false
16146      });
16147      swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);
16148      swiperCreated = true;
16149    }
16150    swiper.thumbs.swiper.el.classList.add(swiper.params.thumbs.thumbsContainerClass);
16151    swiper.thumbs.swiper.on('tap', onThumbClick);
16152    return true;
16153  }
16154  function update(initial) {
16155    const thumbsSwiper = swiper.thumbs.swiper;
16156    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
16157    const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;
16158
16159    // Activate thumbs
16160    let thumbsToActivate = 1;
16161    const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;
16162    if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {
16163      thumbsToActivate = swiper.params.slidesPerView;
16164    }
16165    if (!swiper.params.thumbs.multipleActiveThumbs) {
16166      thumbsToActivate = 1;
16167    }
16168    thumbsToActivate = Math.floor(thumbsToActivate);
16169    thumbsSwiper.slides.forEach(slideEl => slideEl.classList.remove(thumbActiveClass));
16170    if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {
16171      for (let i = 0; i < thumbsToActivate; i += 1) {
16172        (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(thumbsSwiper.slidesEl, `[data-swiper-slide-index="${swiper.realIndex + i}"]`).forEach(slideEl => {
16173          slideEl.classList.add(thumbActiveClass);
16174        });
16175      }
16176    } else {
16177      for (let i = 0; i < thumbsToActivate; i += 1) {
16178        if (thumbsSwiper.slides[swiper.realIndex + i]) {
16179          thumbsSwiper.slides[swiper.realIndex + i].classList.add(thumbActiveClass);
16180        }
16181      }
16182    }
16183    const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;
16184    const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;
16185    if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {
16186      const currentThumbsIndex = thumbsSwiper.activeIndex;
16187      let newThumbsIndex;
16188      let direction;
16189      if (thumbsSwiper.params.loop) {
16190        const newThumbsSlide = thumbsSwiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') === `${swiper.realIndex}`)[0];
16191        newThumbsIndex = thumbsSwiper.slides.indexOf(newThumbsSlide);
16192        direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';
16193      } else {
16194        newThumbsIndex = swiper.realIndex;
16195        direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';
16196      }
16197      if (useOffset) {
16198        newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;
16199      }
16200      if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {
16201        if (thumbsSwiper.params.centeredSlides) {
16202          if (newThumbsIndex > currentThumbsIndex) {
16203            newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;
16204          } else {
16205            newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;
16206          }
16207        } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;
16208        thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);
16209      }
16210    }
16211  }
16212  on('beforeInit', () => {
16213    const {
16214      thumbs
16215    } = swiper.params;
16216    if (!thumbs || !thumbs.swiper) return;
16217    if (typeof thumbs.swiper === 'string' || thumbs.swiper instanceof HTMLElement) {
16218      const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
16219      const getThumbsElementAndInit = () => {
16220        const thumbsElement = typeof thumbs.swiper === 'string' ? document.querySelector(thumbs.swiper) : thumbs.swiper;
16221        if (thumbsElement && thumbsElement.swiper) {
16222          thumbs.swiper = thumbsElement.swiper;
16223          init();
16224          update(true);
16225        } else if (thumbsElement) {
16226          const eventName = `${swiper.params.eventsPrefix}init`;
16227          const onThumbsSwiper = e => {
16228            thumbs.swiper = e.detail[0];
16229            thumbsElement.removeEventListener(eventName, onThumbsSwiper);
16230            init();
16231            update(true);
16232            thumbs.swiper.update();
16233            swiper.update();
16234          };
16235          thumbsElement.addEventListener(eventName, onThumbsSwiper);
16236        }
16237        return thumbsElement;
16238      };
16239      const watchForThumbsToAppear = () => {
16240        if (swiper.destroyed) return;
16241        const thumbsElement = getThumbsElementAndInit();
16242        if (!thumbsElement) {
16243          requestAnimationFrame(watchForThumbsToAppear);
16244        }
16245      };
16246      requestAnimationFrame(watchForThumbsToAppear);
16247    } else {
16248      init();
16249      update(true);
16250    }
16251  });
16252  on('slideChange update resize observerUpdate', () => {
16253    update();
16254  });
16255  on('setTransition', (_s, duration) => {
16256    const thumbsSwiper = swiper.thumbs.swiper;
16257    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
16258    thumbsSwiper.setTransition(duration);
16259  });
16260  on('beforeDestroy', () => {
16261    const thumbsSwiper = swiper.thumbs.swiper;
16262    if (!thumbsSwiper || thumbsSwiper.destroyed) return;
16263    if (swiperCreated) {
16264      thumbsSwiper.destroy();
16265    }
16266  });
16267  Object.assign(swiper.thumbs, {
16268    init,
16269    update
16270  });
16271}
16272
16273
16274
16275
16276/***/ }),
16277
vendor: 12,409 bytes, lines 16278-16642
16278/***/ "./node_modules/swiper/modules/virtual.mjs":
16279/*!*************************************************!*\
16280  !*** ./node_modules/swiper/modules/virtual.mjs ***!
16281  \*************************************************/
16282/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
16283
16284__webpack_require__.r(__webpack_exports__);
16285/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16286/* harmony export */   "default": function() { return /* binding */ Virtual; }
16287/* harmony export */ });
16288/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
16289/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
16290
16291
16292
16293function Virtual(_ref) {
16294  let {
16295    swiper,
16296    extendParams,
16297    on,
16298    emit
16299  } = _ref;
16300  extendParams({
16301    virtual: {
16302      enabled: false,
16303      slides: [],
16304      cache: true,
16305      renderSlide: null,
16306      renderExternal: null,
16307      renderExternalUpdate: true,
16308      addSlidesBefore: 0,
16309      addSlidesAfter: 0
16310    }
16311  });
16312  let cssModeTimeout;
16313  const document = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
16314  swiper.virtual = {
16315    cache: {},
16316    from: undefined,
16317    to: undefined,
16318    slides: [],
16319    offset: 0,
16320    slidesGrid: []
16321  };
16322  const tempDOM = document.createElement('div');
16323  function renderSlide(slide, index) {
16324    const params = swiper.params.virtual;
16325    if (params.cache && swiper.virtual.cache[index]) {
16326      return swiper.virtual.cache[index];
16327    }
16328    // eslint-disable-next-line
16329    let slideEl;
16330    if (params.renderSlide) {
16331      slideEl = params.renderSlide.call(swiper, slide, index);
16332      if (typeof slideEl === 'string') {
16333        tempDOM.innerHTML = slideEl;
16334        slideEl = tempDOM.children[0];
16335      }
16336    } else if (swiper.isElement) {
16337      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide');
16338    } else {
16339      slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.slideClass);
16340    }
16341    slideEl.setAttribute('data-swiper-slide-index', index);
16342    if (!params.renderSlide) {
16343      slideEl.innerHTML = slide;
16344    }
16345    if (params.cache) {
16346      swiper.virtual.cache[index] = slideEl;
16347    }
16348    return slideEl;
16349  }
16350  function update(force, beforeInit) {
16351    const {
16352      slidesPerView,
16353      slidesPerGroup,
16354      centeredSlides,
16355      loop: isLoop,
16356      initialSlide
16357    } = swiper.params;
16358    if (beforeInit && !isLoop && initialSlide > 0) {
16359      return;
16360    }
16361    const {
16362      addSlidesBefore,
16363      addSlidesAfter
16364    } = swiper.params.virtual;
16365    const {
16366      from: previousFrom,
16367      to: previousTo,
16368      slides,
16369      slidesGrid: previousSlidesGrid,
16370      offset: previousOffset
16371    } = swiper.virtual;
16372    if (!swiper.params.cssMode) {
16373      swiper.updateActiveIndex();
16374    }
16375    const activeIndex = swiper.activeIndex || 0;
16376    let offsetProp;
16377    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';
16378    let slidesAfter;
16379    let slidesBefore;
16380    if (centeredSlides) {
16381      slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;
16382      slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;
16383    } else {
16384      slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;
16385      slidesBefore = (isLoop ? slidesPerView : slidesPerGroup) + addSlidesBefore;
16386    }
16387    let from = activeIndex - slidesBefore;
16388    let to = activeIndex + slidesAfter;
16389    if (!isLoop) {
16390      from = Math.max(from, 0);
16391      to = Math.min(to, slides.length - 1);
16392    }
16393    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);
16394    if (isLoop && activeIndex >= slidesBefore) {
16395      from -= slidesBefore;
16396      if (!centeredSlides) offset += swiper.slidesGrid[0];
16397    } else if (isLoop && activeIndex < slidesBefore) {
16398      from = -slidesBefore;
16399      if (centeredSlides) offset += swiper.slidesGrid[0];
16400    }
16401    Object.assign(swiper.virtual, {
16402      from,
16403      to,
16404      offset,
16405      slidesGrid: swiper.slidesGrid,
16406      slidesBefore,
16407      slidesAfter
16408    });
16409    function onRendered() {
16410      swiper.updateSlides();
16411      swiper.updateProgress();
16412      swiper.updateSlidesClasses();
16413      emit('virtualUpdate');
16414    }
16415    if (previousFrom === from && previousTo === to && !force) {
16416      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {
16417        swiper.slides.forEach(slideEl => {
16418          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
16419        });
16420      }
16421      swiper.updateProgress();
16422      emit('virtualUpdate');
16423      return;
16424    }
16425    if (swiper.params.virtual.renderExternal) {
16426      swiper.params.virtual.renderExternal.call(swiper, {
16427        offset,
16428        from,
16429        to,
16430        slides: function getSlides() {
16431          const slidesToRender = [];
16432          for (let i = from; i <= to; i += 1) {
16433            slidesToRender.push(slides[i]);
16434          }
16435          return slidesToRender;
16436        }()
16437      });
16438      if (swiper.params.virtual.renderExternalUpdate) {
16439        onRendered();
16440      } else {
16441        emit('virtualUpdate');
16442      }
16443      return;
16444    }
16445    const prependIndexes = [];
16446    const appendIndexes = [];
16447    const getSlideIndex = index => {
16448      let slideIndex = index;
16449      if (index < 0) {
16450        slideIndex = slides.length + index;
16451      } else if (slideIndex >= slides.length) {
16452        // eslint-disable-next-line
16453        slideIndex = slideIndex - slides.length;
16454      }
16455      return slideIndex;
16456    };
16457    if (force) {
16458      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {
16459        slideEl.remove();
16460      });
16461    } else {
16462      for (let i = previousFrom; i <= previousTo; i += 1) {
16463        if (i < from || i > to) {
16464          const slideIndex = getSlideIndex(i);
16465          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index="${slideIndex}"], swiper-slide[data-swiper-slide-index="${slideIndex}"]`)).forEach(slideEl => {
16466            slideEl.remove();
16467          });
16468        }
16469      }
16470    }
16471    const loopFrom = isLoop ? -slides.length : 0;
16472    const loopTo = isLoop ? slides.length * 2 : slides.length;
16473    for (let i = loopFrom; i < loopTo; i += 1) {
16474      if (i >= from && i <= to) {
16475        const slideIndex = getSlideIndex(i);
16476        if (typeof previousTo === 'undefined' || force) {
16477          appendIndexes.push(slideIndex);
16478        } else {
16479          if (i > previousTo) appendIndexes.push(slideIndex);
16480          if (i < previousFrom) prependIndexes.push(slideIndex);
16481        }
16482      }
16483    }
16484    appendIndexes.forEach(index => {
16485      swiper.slidesEl.append(renderSlide(slides[index], index));
16486    });
16487    if (isLoop) {
16488      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {
16489        const index = prependIndexes[i];
16490        swiper.slidesEl.prepend(renderSlide(slides[index], index));
16491      }
16492    } else {
16493      prependIndexes.sort((a, b) => b - a);
16494      prependIndexes.forEach(index => {
16495        swiper.slidesEl.prepend(renderSlide(slides[index], index));
16496      });
16497    }
16498    (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {
16499      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;
16500    });
16501    onRendered();
16502  }
16503  function appendSlide(slides) {
16504    if (typeof slides === 'object' && 'length' in slides) {
16505      for (let i = 0; i < slides.length; i += 1) {
16506        if (slides[i]) swiper.virtual.slides.push(slides[i]);
16507      }
16508    } else {
16509      swiper.virtual.slides.push(slides);
16510    }
16511    update(true);
16512  }
16513  function prependSlide(slides) {
16514    const activeIndex = swiper.activeIndex;
16515    let newActiveIndex = activeIndex + 1;
16516    let numberOfNewSlides = 1;
16517    if (Array.isArray(slides)) {
16518      for (let i = 0; i < slides.length; i += 1) {
16519        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);
16520      }
16521      newActiveIndex = activeIndex + slides.length;
16522      numberOfNewSlides = slides.length;
16523    } else {
16524      swiper.virtual.slides.unshift(slides);
16525    }
16526    if (swiper.params.virtual.cache) {
16527      const cache = swiper.virtual.cache;
16528      const newCache = {};
16529      Object.keys(cache).forEach(cachedIndex => {
16530        const cachedEl = cache[cachedIndex];
16531        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');
16532        if (cachedElIndex) {
16533          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);
16534        }
16535        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;
16536      });
16537      swiper.virtual.cache = newCache;
16538    }
16539    update(true);
16540    swiper.slideTo(newActiveIndex, 0);
16541  }
16542  function removeSlide(slidesIndexes) {
16543    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;
16544    let activeIndex = swiper.activeIndex;
16545    if (Array.isArray(slidesIndexes)) {
16546      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {
16547        if (swiper.params.virtual.cache) {
16548          delete swiper.virtual.cache[slidesIndexes[i]];
16549          // shift cache indexes
16550          Object.keys(swiper.virtual.cache).forEach(key => {
16551            if (key > slidesIndexes) {
16552              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
16553              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
16554              delete swiper.virtual.cache[key];
16555            }
16556          });
16557        }
16558        swiper.virtual.slides.splice(slidesIndexes[i], 1);
16559        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;
16560        activeIndex = Math.max(activeIndex, 0);
16561      }
16562    } else {
16563      if (swiper.params.virtual.cache) {
16564        delete swiper.virtual.cache[slidesIndexes];
16565        // shift cache indexes
16566        Object.keys(swiper.virtual.cache).forEach(key => {
16567          if (key > slidesIndexes) {
16568            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];
16569            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);
16570            delete swiper.virtual.cache[key];
16571          }
16572        });
16573      }
16574      swiper.virtual.slides.splice(slidesIndexes, 1);
16575      if (slidesIndexes < activeIndex) activeIndex -= 1;
16576      activeIndex = Math.max(activeIndex, 0);
16577    }
16578    update(true);
16579    swiper.slideTo(activeIndex, 0);
16580  }
16581  function removeAllSlides() {
16582    swiper.virtual.slides = [];
16583    if (swiper.params.virtual.cache) {
16584      swiper.virtual.cache = {};
16585    }
16586    update(true);
16587    swiper.slideTo(0, 0);
16588  }
16589  on('beforeInit', () => {
16590    if (!swiper.params.virtual.enabled) return;
16591    let domSlidesAssigned;
16592    if (typeof swiper.passedParams.virtual.slides === 'undefined') {
16593      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));
16594      if (slides && slides.length) {
16595        swiper.virtual.slides = [...slides];
16596        domSlidesAssigned = true;
16597        slides.forEach((slideEl, slideIndex) => {
16598          slideEl.setAttribute('data-swiper-slide-index', slideIndex);
16599          swiper.virtual.cache[slideIndex] = slideEl;
16600          slideEl.remove();
16601        });
16602      }
16603    }
16604    if (!domSlidesAssigned) {
16605      swiper.virtual.slides = swiper.params.virtual.slides;
16606    }
16607    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);
16608    swiper.params.watchSlidesProgress = true;
16609    swiper.originalParams.watchSlidesProgress = true;
16610    update(false, true);
16611  });
16612  on('setTranslate', () => {
16613    if (!swiper.params.virtual.enabled) return;
16614    if (swiper.params.cssMode && !swiper._immediateVirtual) {
16615      clearTimeout(cssModeTimeout);
16616      cssModeTimeout = setTimeout(() => {
16617        update();
16618      }, 100);
16619    } else {
16620      update();
16621    }
16622  });
16623  on('init update resize', () => {
16624    if (!swiper.params.virtual.enabled) return;
16625    if (swiper.params.cssMode) {
16626      (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);
16627    }
16628  });
16629  Object.assign(swiper.virtual, {
16630    appendSlide,
16631    prependSlide,
16632    removeSlide,
16633    removeAllSlides,
16634    update
16635  });
16636}
16637
16638
16639
16640
16641/***/ }),
16642
vendor: 23,379 bytes, lines 16643-17279
16643/***/ "./node_modules/swiper/modules/zoom.mjs":
16644/*!**********************************************!*\
16645  !*** ./node_modules/swiper/modules/zoom.mjs ***!
16646  \**********************************************/
16647/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
16648
16649__webpack_require__.r(__webpack_exports__);
16650/* harmony export */ __webpack_require__.d(__webpack_exports__, {
16651/* harmony export */   "default": function() { return /* binding */ Zoom; }
16652/* harmony export */ });
16653/* harmony import */ var _shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
16654/* harmony import */ var _shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
16655
16656
16657
16658function Zoom(_ref) {
16659  let {
16660    swiper,
16661    extendParams,
16662    on,
16663    emit
16664  } = _ref;
16665  const window = (0,_shared_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
16666  extendParams({
16667    zoom: {
16668      enabled: false,
16669      limitToOriginalSize: false,
16670      maxRatio: 3,
16671      minRatio: 1,
16672      toggle: true,
16673      containerClass: 'swiper-zoom-container',
16674      zoomedSlideClass: 'swiper-slide-zoomed'
16675    }
16676  });
16677  swiper.zoom = {
16678    enabled: false
16679  };
16680  let currentScale = 1;
16681  let isScaling = false;
16682  let fakeGestureTouched;
16683  let fakeGestureMoved;
16684  const evCache = [];
16685  const gesture = {
16686    originX: 0,
16687    originY: 0,
16688    slideEl: undefined,
16689    slideWidth: undefined,
16690    slideHeight: undefined,
16691    imageEl: undefined,
16692    imageWrapEl: undefined,
16693    maxRatio: 3
16694  };
16695  const image = {
16696    isTouched: undefined,
16697    isMoved: undefined,
16698    currentX: undefined,
16699    currentY: undefined,
16700    minX: undefined,
16701    minY: undefined,
16702    maxX: undefined,
16703    maxY: undefined,
16704    width: undefined,
16705    height: undefined,
16706    startX: undefined,
16707    startY: undefined,
16708    touchesStart: {},
16709    touchesCurrent: {}
16710  };
16711  const velocity = {
16712    x: undefined,
16713    y: undefined,
16714    prevPositionX: undefined,
16715    prevPositionY: undefined,
16716    prevTime: undefined
16717  };
16718  let scale = 1;
16719  Object.defineProperty(swiper.zoom, 'scale', {
16720    get() {
16721      return scale;
16722    },
16723    set(value) {
16724      if (scale !== value) {
16725        const imageEl = gesture.imageEl;
16726        const slideEl = gesture.slideEl;
16727        emit('zoomChange', value, imageEl, slideEl);
16728      }
16729      scale = value;
16730    }
16731  });
16732  function getDistanceBetweenTouches() {
16733    if (evCache.length < 2) return 1;
16734    const x1 = evCache[0].pageX;
16735    const y1 = evCache[0].pageY;
16736    const x2 = evCache[1].pageX;
16737    const y2 = evCache[1].pageY;
16738    const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
16739    return distance;
16740  }
16741  function getMaxRatio() {
16742    const params = swiper.params.zoom;
16743    const maxRatio = gesture.imageWrapEl.getAttribute('data-swiper-zoom') || params.maxRatio;
16744    if (params.limitToOriginalSize && gesture.imageEl && gesture.imageEl.naturalWidth) {
16745      const imageMaxRatio = gesture.imageEl.naturalWidth / gesture.imageEl.offsetWidth;
16746      return Math.min(imageMaxRatio, maxRatio);
16747    }
16748    return maxRatio;
16749  }
16750  function getScaleOrigin() {
16751    if (evCache.length < 2) return {
16752      x: null,
16753      y: null
16754    };
16755    const box = gesture.imageEl.getBoundingClientRect();
16756    return [(evCache[0].pageX + (evCache[1].pageX - evCache[0].pageX) / 2 - box.x - window.scrollX) / currentScale, (evCache[0].pageY + (evCache[1].pageY - evCache[0].pageY) / 2 - box.y - window.scrollY) / currentScale];
16757  }
16758  function getSlideSelector() {
16759    return swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
16760  }
16761  function eventWithinSlide(e) {
16762    const slideSelector = getSlideSelector();
16763    if (e.target.matches(slideSelector)) return true;
16764    if (swiper.slides.filter(slideEl => slideEl.contains(e.target)).length > 0) return true;
16765    return false;
16766  }
16767  function eventWithinZoomContainer(e) {
16768    const selector = `.${swiper.params.zoom.containerClass}`;
16769    if (e.target.matches(selector)) return true;
16770    if ([...swiper.hostEl.querySelectorAll(selector)].filter(containerEl => containerEl.contains(e.target)).length > 0) return true;
16771    return false;
16772  }
16773
16774  // Events
16775  function onGestureStart(e) {
16776    if (e.pointerType === 'mouse') {
16777      evCache.splice(0, evCache.length);
16778    }
16779    if (!eventWithinSlide(e)) return;
16780    const params = swiper.params.zoom;
16781    fakeGestureTouched = false;
16782    fakeGestureMoved = false;
16783    evCache.push(e);
16784    if (evCache.length < 2) {
16785      return;
16786    }
16787    fakeGestureTouched = true;
16788    gesture.scaleStart = getDistanceBetweenTouches();
16789    if (!gesture.slideEl) {
16790      gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
16791      if (!gesture.slideEl) gesture.slideEl = swiper.slides[swiper.activeIndex];
16792      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
16793      if (imageEl) {
16794        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
16795      }
16796      gesture.imageEl = imageEl;
16797      if (imageEl) {
16798        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
16799      } else {
16800        gesture.imageWrapEl = undefined;
16801      }
16802      if (!gesture.imageWrapEl) {
16803        gesture.imageEl = undefined;
16804        return;
16805      }
16806      gesture.maxRatio = getMaxRatio();
16807    }
16808    if (gesture.imageEl) {
16809      const [originX, originY] = getScaleOrigin();
16810      gesture.originX = originX;
16811      gesture.originY = originY;
16812      gesture.imageEl.style.transitionDuration = '0ms';
16813    }
16814    isScaling = true;
16815  }
16816  function onGestureChange(e) {
16817    if (!eventWithinSlide(e)) return;
16818    const params = swiper.params.zoom;
16819    const zoom = swiper.zoom;
16820    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
16821    if (pointerIndex >= 0) evCache[pointerIndex] = e;
16822    if (evCache.length < 2) {
16823      return;
16824    }
16825    fakeGestureMoved = true;
16826    gesture.scaleMove = getDistanceBetweenTouches();
16827    if (!gesture.imageEl) {
16828      return;
16829    }
16830    zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;
16831    if (zoom.scale > gesture.maxRatio) {
16832      zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;
16833    }
16834    if (zoom.scale < params.minRatio) {
16835      zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;
16836    }
16837    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
16838  }
16839  function onGestureEnd(e) {
16840    if (!eventWithinSlide(e)) return;
16841    if (e.pointerType === 'mouse' && e.type === 'pointerout') return;
16842    const params = swiper.params.zoom;
16843    const zoom = swiper.zoom;
16844    const pointerIndex = evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);
16845    if (pointerIndex >= 0) evCache.splice(pointerIndex, 1);
16846    if (!fakeGestureTouched || !fakeGestureMoved) {
16847      return;
16848    }
16849    fakeGestureTouched = false;
16850    fakeGestureMoved = false;
16851    if (!gesture.imageEl) return;
16852    zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);
16853    gesture.imageEl.style.transitionDuration = `${swiper.params.speed}ms`;
16854    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
16855    currentScale = zoom.scale;
16856    isScaling = false;
16857    if (zoom.scale > 1 && gesture.slideEl) {
16858      gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
16859    } else if (zoom.scale <= 1 && gesture.slideEl) {
16860      gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
16861    }
16862    if (zoom.scale === 1) {
16863      gesture.originX = 0;
16864      gesture.originY = 0;
16865      gesture.slideEl = undefined;
16866    }
16867  }
16868  let allowTouchMoveTimeout;
16869  function allowTouchMove() {
16870    swiper.touchEventsData.preventTouchMoveFromPointerMove = false;
16871  }
16872  function preventTouchMove() {
16873    clearTimeout(allowTouchMoveTimeout);
16874    swiper.touchEventsData.preventTouchMoveFromPointerMove = true;
16875    allowTouchMoveTimeout = setTimeout(() => {
16876      allowTouchMove();
16877    });
16878  }
16879  function onTouchStart(e) {
16880    const device = swiper.device;
16881    if (!gesture.imageEl) return;
16882    if (image.isTouched) return;
16883    if (device.android && e.cancelable) e.preventDefault();
16884    image.isTouched = true;
16885    const event = evCache.length > 0 ? evCache[0] : e;
16886    image.touchesStart.x = event.pageX;
16887    image.touchesStart.y = event.pageY;
16888  }
16889  function onTouchMove(e) {
16890    if (!eventWithinSlide(e) || !eventWithinZoomContainer(e)) {
16891      return;
16892    }
16893    const zoom = swiper.zoom;
16894    if (!gesture.imageEl) {
16895      return;
16896    }
16897    if (!image.isTouched || !gesture.slideEl) {
16898      return;
16899    }
16900    if (!image.isMoved) {
16901      image.width = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
16902      image.height = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
16903      image.startX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'x') || 0;
16904      image.startY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(gesture.imageWrapEl, 'y') || 0;
16905      gesture.slideWidth = gesture.slideEl.offsetWidth;
16906      gesture.slideHeight = gesture.slideEl.offsetHeight;
16907      gesture.imageWrapEl.style.transitionDuration = '0ms';
16908    }
16909    // Define if we need image drag
16910    const scaledWidth = image.width * zoom.scale;
16911    const scaledHeight = image.height * zoom.scale;
16912    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
16913    image.maxX = -image.minX;
16914    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
16915    image.maxY = -image.minY;
16916    image.touchesCurrent.x = evCache.length > 0 ? evCache[0].pageX : e.pageX;
16917    image.touchesCurrent.y = evCache.length > 0 ? evCache[0].pageY : e.pageY;
16918    const touchesDiff = Math.max(Math.abs(image.touchesCurrent.x - image.touchesStart.x), Math.abs(image.touchesCurrent.y - image.touchesStart.y));
16919    if (touchesDiff > 5) {
16920      swiper.allowClick = false;
16921    }
16922    if (!image.isMoved && !isScaling) {
16923      if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {
16924        image.isTouched = false;
16925        allowTouchMove();
16926        return;
16927      }
16928      if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {
16929        image.isTouched = false;
16930        allowTouchMove();
16931        return;
16932      }
16933    }
16934    if (e.cancelable) {
16935      e.preventDefault();
16936    }
16937    e.stopPropagation();
16938    preventTouchMove();
16939    image.isMoved = true;
16940    const scaleRatio = (zoom.scale - currentScale) / (gesture.maxRatio - swiper.params.zoom.minRatio);
16941    const {
16942      originX,
16943      originY
16944    } = gesture;
16945    image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX + scaleRatio * (image.width - originX * 2);
16946    image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY + scaleRatio * (image.height - originY * 2);
16947    if (image.currentX < image.minX) {
16948      image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;
16949    }
16950    if (image.currentX > image.maxX) {
16951      image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;
16952    }
16953    if (image.currentY < image.minY) {
16954      image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;
16955    }
16956    if (image.currentY > image.maxY) {
16957      image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;
16958    }
16959
16960    // Velocity
16961    if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;
16962    if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;
16963    if (!velocity.prevTime) velocity.prevTime = Date.now();
16964    velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;
16965    velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;
16966    if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;
16967    if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;
16968    velocity.prevPositionX = image.touchesCurrent.x;
16969    velocity.prevPositionY = image.touchesCurrent.y;
16970    velocity.prevTime = Date.now();
16971    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
16972  }
16973  function onTouchEnd() {
16974    const zoom = swiper.zoom;
16975    if (!gesture.imageEl) return;
16976    if (!image.isTouched || !image.isMoved) {
16977      image.isTouched = false;
16978      image.isMoved = false;
16979      return;
16980    }
16981    image.isTouched = false;
16982    image.isMoved = false;
16983    let momentumDurationX = 300;
16984    let momentumDurationY = 300;
16985    const momentumDistanceX = velocity.x * momentumDurationX;
16986    const newPositionX = image.currentX + momentumDistanceX;
16987    const momentumDistanceY = velocity.y * momentumDurationY;
16988    const newPositionY = image.currentY + momentumDistanceY;
16989
16990    // Fix duration
16991    if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);
16992    if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);
16993    const momentumDuration = Math.max(momentumDurationX, momentumDurationY);
16994    image.currentX = newPositionX;
16995    image.currentY = newPositionY;
16996    // Define if we need image drag
16997    const scaledWidth = image.width * zoom.scale;
16998    const scaledHeight = image.height * zoom.scale;
16999    image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);
17000    image.maxX = -image.minX;
17001    image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);
17002    image.maxY = -image.minY;
17003    image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);
17004    image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);
17005    gesture.imageWrapEl.style.transitionDuration = `${momentumDuration}ms`;
17006    gesture.imageWrapEl.style.transform = `translate3d(${image.currentX}px, ${image.currentY}px,0)`;
17007  }
17008  function onTransitionEnd() {
17009    const zoom = swiper.zoom;
17010    if (gesture.slideEl && swiper.activeIndex !== swiper.slides.indexOf(gesture.slideEl)) {
17011      if (gesture.imageEl) {
17012        gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
17013      }
17014      if (gesture.imageWrapEl) {
17015        gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
17016      }
17017      gesture.slideEl.classList.remove(`${swiper.params.zoom.zoomedSlideClass}`);
17018      zoom.scale = 1;
17019      currentScale = 1;
17020      gesture.slideEl = undefined;
17021      gesture.imageEl = undefined;
17022      gesture.imageWrapEl = undefined;
17023      gesture.originX = 0;
17024      gesture.originY = 0;
17025    }
17026  }
17027  function zoomIn(e) {
17028    const zoom = swiper.zoom;
17029    const params = swiper.params.zoom;
17030    if (!gesture.slideEl) {
17031      if (e && e.target) {
17032        gesture.slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);
17033      }
17034      if (!gesture.slideEl) {
17035        if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
17036          gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
17037        } else {
17038          gesture.slideEl = swiper.slides[swiper.activeIndex];
17039        }
17040      }
17041      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
17042      if (imageEl) {
17043        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
17044      }
17045      gesture.imageEl = imageEl;
17046      if (imageEl) {
17047        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
17048      } else {
17049        gesture.imageWrapEl = undefined;
17050      }
17051    }
17052    if (!gesture.imageEl || !gesture.imageWrapEl) return;
17053    if (swiper.params.cssMode) {
17054      swiper.wrapperEl.style.overflow = 'hidden';
17055      swiper.wrapperEl.style.touchAction = 'none';
17056    }
17057    gesture.slideEl.classList.add(`${params.zoomedSlideClass}`);
17058    let touchX;
17059    let touchY;
17060    let offsetX;
17061    let offsetY;
17062    let diffX;
17063    let diffY;
17064    let translateX;
17065    let translateY;
17066    let imageWidth;
17067    let imageHeight;
17068    let scaledWidth;
17069    let scaledHeight;
17070    let translateMinX;
17071    let translateMinY;
17072    let translateMaxX;
17073    let translateMaxY;
17074    let slideWidth;
17075    let slideHeight;
17076    if (typeof image.touchesStart.x === 'undefined' && e) {
17077      touchX = e.pageX;
17078      touchY = e.pageY;
17079    } else {
17080      touchX = image.touchesStart.x;
17081      touchY = image.touchesStart.y;
17082    }
17083    const forceZoomRatio = typeof e === 'number' ? e : null;
17084    if (currentScale === 1 && forceZoomRatio) {
17085      touchX = undefined;
17086      touchY = undefined;
17087    }
17088    const maxRatio = getMaxRatio();
17089    zoom.scale = forceZoomRatio || maxRatio;
17090    currentScale = forceZoomRatio || maxRatio;
17091    if (e && !(currentScale === 1 && forceZoomRatio)) {
17092      slideWidth = gesture.slideEl.offsetWidth;
17093      slideHeight = gesture.slideEl.offsetHeight;
17094      offsetX = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).left + window.scrollX;
17095      offsetY = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.b)(gesture.slideEl).top + window.scrollY;
17096      diffX = offsetX + slideWidth / 2 - touchX;
17097      diffY = offsetY + slideHeight / 2 - touchY;
17098      imageWidth = gesture.imageEl.offsetWidth || gesture.imageEl.clientWidth;
17099      imageHeight = gesture.imageEl.offsetHeight || gesture.imageEl.clientHeight;
17100      scaledWidth = imageWidth * zoom.scale;
17101      scaledHeight = imageHeight * zoom.scale;
17102      translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);
17103      translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);
17104      translateMaxX = -translateMinX;
17105      translateMaxY = -translateMinY;
17106      translateX = diffX * zoom.scale;
17107      translateY = diffY * zoom.scale;
17108      if (translateX < translateMinX) {
17109        translateX = translateMinX;
17110      }
17111      if (translateX > translateMaxX) {
17112        translateX = translateMaxX;
17113      }
17114      if (translateY < translateMinY) {
17115        translateY = translateMinY;
17116      }
17117      if (translateY > translateMaxY) {
17118        translateY = translateMaxY;
17119      }
17120    } else {
17121      translateX = 0;
17122      translateY = 0;
17123    }
17124    if (forceZoomRatio && zoom.scale === 1) {
17125      gesture.originX = 0;
17126      gesture.originY = 0;
17127    }
17128    gesture.imageWrapEl.style.transitionDuration = '300ms';
17129    gesture.imageWrapEl.style.transform = `translate3d(${translateX}px, ${translateY}px,0)`;
17130    gesture.imageEl.style.transitionDuration = '300ms';
17131    gesture.imageEl.style.transform = `translate3d(0,0,0) scale(${zoom.scale})`;
17132  }
17133  function zoomOut() {
17134    const zoom = swiper.zoom;
17135    const params = swiper.params.zoom;
17136    if (!gesture.slideEl) {
17137      if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {
17138        gesture.slideEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(swiper.slidesEl, `.${swiper.params.slideActiveClass}`)[0];
17139      } else {
17140        gesture.slideEl = swiper.slides[swiper.activeIndex];
17141      }
17142      let imageEl = gesture.slideEl.querySelector(`.${params.containerClass}`);
17143      if (imageEl) {
17144        imageEl = imageEl.querySelectorAll('picture, img, svg, canvas, .swiper-zoom-target')[0];
17145      }
17146      gesture.imageEl = imageEl;
17147      if (imageEl) {
17148        gesture.imageWrapEl = (0,_shared_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(gesture.imageEl, `.${params.containerClass}`)[0];
17149      } else {
17150        gesture.imageWrapEl = undefined;
17151      }
17152    }
17153    if (!gesture.imageEl || !gesture.imageWrapEl) return;
17154    if (swiper.params.cssMode) {
17155      swiper.wrapperEl.style.overflow = '';
17156      swiper.wrapperEl.style.touchAction = '';
17157    }
17158    zoom.scale = 1;
17159    currentScale = 1;
17160    gesture.imageWrapEl.style.transitionDuration = '300ms';
17161    gesture.imageWrapEl.style.transform = 'translate3d(0,0,0)';
17162    gesture.imageEl.style.transitionDuration = '300ms';
17163    gesture.imageEl.style.transform = 'translate3d(0,0,0) scale(1)';
17164    gesture.slideEl.classList.remove(`${params.zoomedSlideClass}`);
17165    gesture.slideEl = undefined;
17166    gesture.originX = 0;
17167    gesture.originY = 0;
17168  }
17169
17170  // Toggle Zoom
17171  function zoomToggle(e) {
17172    const zoom = swiper.zoom;
17173    if (zoom.scale && zoom.scale !== 1) {
17174      // Zoom Out
17175      zoomOut();
17176    } else {
17177      // Zoom In
17178      zoomIn(e);
17179    }
17180  }
17181  function getListeners() {
17182    const passiveListener = swiper.params.passiveListeners ? {
17183      passive: true,
17184      capture: false
17185    } : false;
17186    const activeListenerWithCapture = swiper.params.passiveListeners ? {
17187      passive: false,
17188      capture: true
17189    } : true;
17190    return {
17191      passiveListener,
17192      activeListenerWithCapture
17193    };
17194  }
17195
17196  // Attach/Detach Events
17197  function enable() {
17198    const zoom = swiper.zoom;
17199    if (zoom.enabled) return;
17200    zoom.enabled = true;
17201    const {
17202      passiveListener,
17203      activeListenerWithCapture
17204    } = getListeners();
17205
17206    // Scale image
17207    swiper.wrapperEl.addEventListener('pointerdown', onGestureStart, passiveListener);
17208    swiper.wrapperEl.addEventListener('pointermove', onGestureChange, activeListenerWithCapture);
17209    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
17210      swiper.wrapperEl.addEventListener(eventName, onGestureEnd, passiveListener);
17211    });
17212
17213    // Move image
17214    swiper.wrapperEl.addEventListener('pointermove', onTouchMove, activeListenerWithCapture);
17215  }
17216  function disable() {
17217    const zoom = swiper.zoom;
17218    if (!zoom.enabled) return;
17219    zoom.enabled = false;
17220    const {
17221      passiveListener,
17222      activeListenerWithCapture
17223    } = getListeners();
17224
17225    // Scale image
17226    swiper.wrapperEl.removeEventListener('pointerdown', onGestureStart, passiveListener);
17227    swiper.wrapperEl.removeEventListener('pointermove', onGestureChange, activeListenerWithCapture);
17228    ['pointerup', 'pointercancel', 'pointerout'].forEach(eventName => {
17229      swiper.wrapperEl.removeEventListener(eventName, onGestureEnd, passiveListener);
17230    });
17231
17232    // Move image
17233    swiper.wrapperEl.removeEventListener('pointermove', onTouchMove, activeListenerWithCapture);
17234  }
17235  on('init', () => {
17236    if (swiper.params.zoom.enabled) {
17237      enable();
17238    }
17239  });
17240  on('destroy', () => {
17241    disable();
17242  });
17243  on('touchStart', (_s, e) => {
17244    if (!swiper.zoom.enabled) return;
17245    onTouchStart(e);
17246  });
17247  on('touchEnd', (_s, e) => {
17248    if (!swiper.zoom.enabled) return;
17249    onTouchEnd();
17250  });
17251  on('doubleTap', (_s, e) => {
17252    if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {
17253      zoomToggle(e);
17254    }
17255  });
17256  on('transitionEnd', () => {
17257    if (swiper.zoom.enabled && swiper.params.zoom.enabled) {
17258      onTransitionEnd();
17259    }
17260  });
17261  on('slideChange', () => {
17262    if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {
17263      onTransitionEnd();
17264    }
17265  });
17266  Object.assign(swiper.zoom, {
17267    enable,
17268    disable,
17269    in: zoomIn,
17270    out: zoomOut,
17271    toggle: zoomToggle
17272  });
17273}
17274
17275
17276
17277
17278/***/ }),
17279
vendor: 786 bytes, lines 17280-17302
17280/***/ "./node_modules/swiper/shared/classes-to-selector.mjs":
17281/*!************************************************************!*\
17282  !*** ./node_modules/swiper/shared/classes-to-selector.mjs ***!
17283  \************************************************************/
17284/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17285
17286__webpack_require__.r(__webpack_exports__);
17287/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17288/* harmony export */   c: function() { return /* binding */ classesToSelector; }
17289/* harmony export */ });
17290function classesToSelector(classes) {
17291  if (classes === void 0) {
17292    classes = '';
17293  }
17294  return `.${classes.trim().replace(/([\.:!+\/])/g, '\\$1') // eslint-disable-line
17295  .replace(/ /g, '.')}`;
17296}
17297
17298
17299
17300
17301/***/ }),
17302
vendor: 1,425 bytes, lines 17303-17338
17303/***/ "./node_modules/swiper/shared/create-element-if-not-defined.mjs":
17304/*!**********************************************************************!*\
17305  !*** ./node_modules/swiper/shared/create-element-if-not-defined.mjs ***!
17306  \**********************************************************************/
17307/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17308
17309__webpack_require__.r(__webpack_exports__);
17310/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17311/* harmony export */   c: function() { return /* binding */ createElementIfNotDefined; }
17312/* harmony export */ });
17313/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17314
17315
17316function createElementIfNotDefined(swiper, originalParams, params, checkProps) {
17317  if (swiper.params.createElements) {
17318    Object.keys(checkProps).forEach(key => {
17319      if (!params[key] && params.auto === true) {
17320        let element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.e)(swiper.el, `.${checkProps[key]}`)[0];
17321        if (!element) {
17322          element = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', checkProps[key]);
17323          element.className = checkProps[key];
17324          swiper.el.append(element);
17325        }
17326        params[key] = element;
17327        originalParams[key] = element;
17328      }
17329    });
17330  }
17331  return params;
17332}
17333
17334
17335
17336
17337/***/ }),
17338
vendor: 1,221 bytes, lines 17339-17367
17339/***/ "./node_modules/swiper/shared/create-shadow.mjs":
17340/*!******************************************************!*\
17341  !*** ./node_modules/swiper/shared/create-shadow.mjs ***!
17342  \******************************************************/
17343/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17344
17345__webpack_require__.r(__webpack_exports__);
17346/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17347/* harmony export */   c: function() { return /* binding */ createShadow; }
17348/* harmony export */ });
17349/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17350
17351
17352function createShadow(suffix, slideEl, side) {
17353  const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}${suffix ? ` swiper-slide-shadow-${suffix}` : ''}`;
17354  const shadowContainer = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
17355  let shadowEl = shadowContainer.querySelector(`.${shadowClass.split(' ').join('.')}`);
17356  if (!shadowEl) {
17357    shadowEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.c)('div', shadowClass.split(' '));
17358    shadowContainer.append(shadowEl);
17359  }
17360  return shadowEl;
17361}
17362
17363
17364
17365
17366/***/ }),
17367
vendor: 2,344 bytes, lines 17368-17439
17368/***/ "./node_modules/swiper/shared/effect-init.mjs":
17369/*!****************************************************!*\
17370  !*** ./node_modules/swiper/shared/effect-init.mjs ***!
17371  \****************************************************/
17372/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17373
17374__webpack_require__.r(__webpack_exports__);
17375/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17376/* harmony export */   e: function() { return /* binding */ effectInit; }
17377/* harmony export */ });
17378function effectInit(params) {
17379  const {
17380    effect,
17381    swiper,
17382    on,
17383    setTranslate,
17384    setTransition,
17385    overwriteParams,
17386    perspective,
17387    recreateShadows,
17388    getEffectParams
17389  } = params;
17390  on('beforeInit', () => {
17391    if (swiper.params.effect !== effect) return;
17392    swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);
17393    if (perspective && perspective()) {
17394      swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);
17395    }
17396    const overwriteParamsResult = overwriteParams ? overwriteParams() : {};
17397    Object.assign(swiper.params, overwriteParamsResult);
17398    Object.assign(swiper.originalParams, overwriteParamsResult);
17399  });
17400  on('setTranslate', () => {
17401    if (swiper.params.effect !== effect) return;
17402    setTranslate();
17403  });
17404  on('setTransition', (_s, duration) => {
17405    if (swiper.params.effect !== effect) return;
17406    setTransition(duration);
17407  });
17408  on('transitionEnd', () => {
17409    if (swiper.params.effect !== effect) return;
17410    if (recreateShadows) {
17411      if (!getEffectParams || !getEffectParams().slideShadows) return;
17412      // remove shadows
17413      swiper.slides.forEach(slideEl => {
17414        slideEl.querySelectorAll('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').forEach(shadowEl => shadowEl.remove());
17415      });
17416      // create new one
17417      recreateShadows();
17418    }
17419  });
17420  let requireUpdateOnVirtual;
17421  on('virtualUpdate', () => {
17422    if (swiper.params.effect !== effect) return;
17423    if (!swiper.slides.length) {
17424      requireUpdateOnVirtual = true;
17425    }
17426    requestAnimationFrame(() => {
17427      if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {
17428        setTranslate();
17429        requireUpdateOnVirtual = false;
17430      }
17431    });
17432  });
17433}
17434
17435
17436
17437
17438/***/ }),
17439
vendor: 1,014 bytes, lines 17440-17466
17440/***/ "./node_modules/swiper/shared/effect-target.mjs":
17441/*!******************************************************!*\
17442  !*** ./node_modules/swiper/shared/effect-target.mjs ***!
17443  \******************************************************/
17444/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17445
17446__webpack_require__.r(__webpack_exports__);
17447/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17448/* harmony export */   e: function() { return /* binding */ effectTarget; }
17449/* harmony export */ });
17450/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17451
17452
17453function effectTarget(effectParams, slideEl) {
17454  const transformEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.g)(slideEl);
17455  if (transformEl !== slideEl) {
17456    transformEl.style.backfaceVisibility = 'hidden';
17457    transformEl.style['-webkit-backface-visibility'] = 'hidden';
17458  }
17459  return transformEl;
17460}
17461
17462
17463
17464
17465/***/ }),
17466
vendor: 2,122 bytes, lines 17467-17529
17467/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.mjs":
17468/*!**********************************************************************!*\
17469  !*** ./node_modules/swiper/shared/effect-virtual-transition-end.mjs ***!
17470  \**********************************************************************/
17471/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17472
17473__webpack_require__.r(__webpack_exports__);
17474/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17475/* harmony export */   e: function() { return /* binding */ effectVirtualTransitionEnd; }
17476/* harmony export */ });
17477/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17478
17479
17480function effectVirtualTransitionEnd(_ref) {
17481  let {
17482    swiper,
17483    duration,
17484    transformElements,
17485    allSlides
17486  } = _ref;
17487  const {
17488    activeIndex
17489  } = swiper;
17490  const getSlide = el => {
17491    if (!el.parentElement) {
17492      // assume shadow root
17493      const slide = swiper.slides.filter(slideEl => slideEl.shadowRoot && slideEl.shadowRoot === el.parentNode)[0];
17494      return slide;
17495    }
17496    return el.parentElement;
17497  };
17498  if (swiper.params.virtualTranslate && duration !== 0) {
17499    let eventTriggered = false;
17500    let transitionEndTarget;
17501    if (allSlides) {
17502      transitionEndTarget = transformElements;
17503    } else {
17504      transitionEndTarget = transformElements.filter(transformEl => {
17505        const el = transformEl.classList.contains('swiper-slide-transform') ? getSlide(transformEl) : transformEl;
17506        return swiper.getSlideIndex(el) === activeIndex;
17507      });
17508    }
17509    transitionEndTarget.forEach(el => {
17510      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_0__.k)(el, () => {
17511        if (eventTriggered) return;
17512        if (!swiper || swiper.destroyed) return;
17513        eventTriggered = true;
17514        swiper.animating = false;
17515        const evt = new window.CustomEvent('transitionend', {
17516          bubbles: true,
17517          cancelable: true
17518        });
17519        swiper.wrapperEl.dispatchEvent(evt);
17520      });
17521    });
17522  }
17523}
17524
17525
17526
17527
17528/***/ }),
17529
vendor: 3,355 bytes, lines 17530-17689
17530/***/ "./node_modules/swiper/shared/ssr-window.esm.mjs":
17531/*!*******************************************************!*\
17532  !*** ./node_modules/swiper/shared/ssr-window.esm.mjs ***!
17533  \*******************************************************/
17534/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17535
17536__webpack_require__.r(__webpack_exports__);
17537/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17538/* harmony export */   a: function() { return /* binding */ getWindow; },
17539/* harmony export */   g: function() { return /* binding */ getDocument; }
17540/* harmony export */ });
17541/**
17542 * SSR Window 4.0.2
17543 * Better handling for window object in SSR environment
17544 * https://github.com/nolimits4web/ssr-window
17545 *
17546 * Copyright 2021, Vladimir Kharlampidi
17547 *
17548 * Licensed under MIT
17549 *
17550 * Released on: December 13, 2021
17551 */
17552/* eslint-disable no-param-reassign */
17553function isObject(obj) {
17554  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;
17555}
17556function extend(target, src) {
17557  if (target === void 0) {
17558    target = {};
17559  }
17560  if (src === void 0) {
17561    src = {};
17562  }
17563  Object.keys(src).forEach(key => {
17564    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {
17565      extend(target[key], src[key]);
17566    }
17567  });
17568}
17569const ssrDocument = {
17570  body: {},
17571  addEventListener() {},
17572  removeEventListener() {},
17573  activeElement: {
17574    blur() {},
17575    nodeName: ''
17576  },
17577  querySelector() {
17578    return null;
17579  },
17580  querySelectorAll() {
17581    return [];
17582  },
17583  getElementById() {
17584    return null;
17585  },
17586  createEvent() {
17587    return {
17588      initEvent() {}
17589    };
17590  },
17591  createElement() {
17592    return {
17593      children: [],
17594      childNodes: [],
17595      style: {},
17596      setAttribute() {},
17597      getElementsByTagName() {
17598        return [];
17599      }
17600    };
17601  },
17602  createElementNS() {
17603    return {};
17604  },
17605  importNode() {
17606    return null;
17607  },
17608  location: {
17609    hash: '',
17610    host: '',
17611    hostname: '',
17612    href: '',
17613    origin: '',
17614    pathname: '',
17615    protocol: '',
17616    search: ''
17617  }
17618};
17619function getDocument() {
17620  const doc = typeof document !== 'undefined' ? document : {};
17621  extend(doc, ssrDocument);
17622  return doc;
17623}
17624const ssrWindow = {
17625  document: ssrDocument,
17626  navigator: {
17627    userAgent: ''
17628  },
17629  location: {
17630    hash: '',
17631    host: '',
17632    hostname: '',
17633    href: '',
17634    origin: '',
17635    pathname: '',
17636    protocol: '',
17637    search: ''
17638  },
17639  history: {
17640    replaceState() {},
17641    pushState() {},
17642    go() {},
17643    back() {}
17644  },
17645  CustomEvent: function CustomEvent() {
17646    return this;
17647  },
17648  addEventListener() {},
17649  removeEventListener() {},
17650  getComputedStyle() {
17651    return {
17652      getPropertyValue() {
17653        return '';
17654      }
17655    };
17656  },
17657  Image() {},
17658  Date() {},
17659  screen: {},
17660  setTimeout() {},
17661  clearTimeout() {},
17662  matchMedia() {
17663    return {};
17664  },
17665  requestAnimationFrame(callback) {
17666    if (typeof setTimeout === 'undefined') {
17667      callback();
17668      return null;
17669    }
17670    return setTimeout(callback, 0);
17671  },
17672  cancelAnimationFrame(id) {
17673    if (typeof setTimeout === 'undefined') {
17674      return;
17675    }
17676    clearTimeout(id);
17677  }
17678};
17679function getWindow() {
17680  const win = typeof window !== 'undefined' ? window : {};
17681  extend(win, ssrWindow);
17682  return win;
17683}
17684
17685
17686
17687
17688/***/ }),
17689
vendor: 131,971 bytes, lines 17690-21613
17690/***/ "./node_modules/swiper/shared/swiper-core.mjs":
17691/*!****************************************************!*\
17692  !*** ./node_modules/swiper/shared/swiper-core.mjs ***!
17693  \****************************************************/
17694/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
17695
17696__webpack_require__.r(__webpack_exports__);
17697/* harmony export */ __webpack_require__.d(__webpack_exports__, {
17698/* harmony export */   S: function() { return /* binding */ Swiper; },
17699/* harmony export */   d: function() { return /* binding */ defaults; }
17700/* harmony export */ });
17701/* harmony import */ var _ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
17702/* harmony import */ var _utils_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils.mjs */ "./node_modules/swiper/shared/utils.mjs");
17703
17704
17705
17706let support;
17707function calcSupport() {
17708  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
17709  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
17710  return {
17711    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,
17712    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)
17713  };
17714}
17715function getSupport() {
17716  if (!support) {
17717    support = calcSupport();
17718  }
17719  return support;
17720}
17721
17722let deviceCached;
17723function calcDevice(_temp) {
17724  let {
17725    userAgent
17726  } = _temp === void 0 ? {} : _temp;
17727  const support = getSupport();
17728  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
17729  const platform = window.navigator.platform;
17730  const ua = userAgent || window.navigator.userAgent;
17731  const device = {
17732    ios: false,
17733    android: false
17734  };
17735  const screenWidth = window.screen.width;
17736  const screenHeight = window.screen.height;
17737  const android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line
17738  let ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
17739  const ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/);
17740  const iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/);
17741  const windows = platform === 'Win32';
17742  let macos = platform === 'MacIntel';
17743
17744  // iPadOs 13 fix
17745  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];
17746  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {
17747    ipad = ua.match(/(Version)\/([\d.]+)/);
17748    if (!ipad) ipad = [0, 1, '13_0_0'];
17749    macos = false;
17750  }
17751
17752  // Android
17753  if (android && !windows) {
17754    device.os = 'android';
17755    device.android = true;
17756  }
17757  if (ipad || iphone || ipod) {
17758    device.os = 'ios';
17759    device.ios = true;
17760  }
17761
17762  // Export object
17763  return device;
17764}
17765function getDevice(overrides) {
17766  if (overrides === void 0) {
17767    overrides = {};
17768  }
17769  if (!deviceCached) {
17770    deviceCached = calcDevice(overrides);
17771  }
17772  return deviceCached;
17773}
17774
17775let browser;
17776function calcBrowser() {
17777  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
17778  const device = getDevice();
17779  let needPerspectiveFix = false;
17780  function isSafari() {
17781    const ua = window.navigator.userAgent.toLowerCase();
17782    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;
17783  }
17784  if (isSafari()) {
17785    const ua = String(window.navigator.userAgent);
17786    if (ua.includes('Version/')) {
17787      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));
17788      needPerspectiveFix = major < 16 || major === 16 && minor < 2;
17789    }
17790  }
17791  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);
17792  const isSafariBrowser = isSafari();
17793  const need3dFix = isSafariBrowser || isWebView && device.ios;
17794  return {
17795    isSafari: needPerspectiveFix || isSafariBrowser,
17796    needPerspectiveFix,
17797    need3dFix,
17798    isWebView
17799  };
17800}
17801function getBrowser() {
17802  if (!browser) {
17803    browser = calcBrowser();
17804  }
17805  return browser;
17806}
17807
17808function Resize(_ref) {
17809  let {
17810    swiper,
17811    on,
17812    emit
17813  } = _ref;
17814  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
17815  let observer = null;
17816  let animationFrame = null;
17817  const resizeHandler = () => {
17818    if (!swiper || swiper.destroyed || !swiper.initialized) return;
17819    emit('beforeResize');
17820    emit('resize');
17821  };
17822  const createObserver = () => {
17823    if (!swiper || swiper.destroyed || !swiper.initialized) return;
17824    observer = new ResizeObserver(entries => {
17825      animationFrame = window.requestAnimationFrame(() => {
17826        const {
17827          width,
17828          height
17829        } = swiper;
17830        let newWidth = width;
17831        let newHeight = height;
17832        entries.forEach(_ref2 => {
17833          let {
17834            contentBoxSize,
17835            contentRect,
17836            target
17837          } = _ref2;
17838          if (target && target !== swiper.el) return;
17839          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;
17840          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;
17841        });
17842        if (newWidth !== width || newHeight !== height) {
17843          resizeHandler();
17844        }
17845      });
17846    });
17847    observer.observe(swiper.el);
17848  };
17849  const removeObserver = () => {
17850    if (animationFrame) {
17851      window.cancelAnimationFrame(animationFrame);
17852    }
17853    if (observer && observer.unobserve && swiper.el) {
17854      observer.unobserve(swiper.el);
17855      observer = null;
17856    }
17857  };
17858  const orientationChangeHandler = () => {
17859    if (!swiper || swiper.destroyed || !swiper.initialized) return;
17860    emit('orientationchange');
17861  };
17862  on('init', () => {
17863    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {
17864      createObserver();
17865      return;
17866    }
17867    window.addEventListener('resize', resizeHandler);
17868    window.addEventListener('orientationchange', orientationChangeHandler);
17869  });
17870  on('destroy', () => {
17871    removeObserver();
17872    window.removeEventListener('resize', resizeHandler);
17873    window.removeEventListener('orientationchange', orientationChangeHandler);
17874  });
17875}
17876
17877function Observer(_ref) {
17878  let {
17879    swiper,
17880    extendParams,
17881    on,
17882    emit
17883  } = _ref;
17884  const observers = [];
17885  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
17886  const attach = function (target, options) {
17887    if (options === void 0) {
17888      options = {};
17889    }
17890    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;
17891    const observer = new ObserverFunc(mutations => {
17892      // The observerUpdate event should only be triggered
17893      // once despite the number of mutations.  Additional
17894      // triggers are redundant and are very costly
17895      if (swiper.__preventObserver__) return;
17896      if (mutations.length === 1) {
17897        emit('observerUpdate', mutations[0]);
17898        return;
17899      }
17900      const observerUpdate = function observerUpdate() {
17901        emit('observerUpdate', mutations[0]);
17902      };
17903      if (window.requestAnimationFrame) {
17904        window.requestAnimationFrame(observerUpdate);
17905      } else {
17906        window.setTimeout(observerUpdate, 0);
17907      }
17908    });
17909    observer.observe(target, {
17910      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,
17911      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,
17912      characterData: typeof options.characterData === 'undefined' ? true : options.characterData
17913    });
17914    observers.push(observer);
17915  };
17916  const init = () => {
17917    if (!swiper.params.observer) return;
17918    if (swiper.params.observeParents) {
17919      const containerParents = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.a)(swiper.hostEl);
17920      for (let i = 0; i < containerParents.length; i += 1) {
17921        attach(containerParents[i]);
17922      }
17923    }
17924    // Observe container
17925    attach(swiper.hostEl, {
17926      childList: swiper.params.observeSlideChildren
17927    });
17928
17929    // Observe wrapper
17930    attach(swiper.wrapperEl, {
17931      attributes: false
17932    });
17933  };
17934  const destroy = () => {
17935    observers.forEach(observer => {
17936      observer.disconnect();
17937    });
17938    observers.splice(0, observers.length);
17939  };
17940  extendParams({
17941    observer: false,
17942    observeParents: false,
17943    observeSlideChildren: false
17944  });
17945  on('init', init);
17946  on('destroy', destroy);
17947}
17948
17949/* eslint-disable no-underscore-dangle */
17950
17951var eventsEmitter = {
17952  on(events, handler, priority) {
17953    const self = this;
17954    if (!self.eventsListeners || self.destroyed) return self;
17955    if (typeof handler !== 'function') return self;
17956    const method = priority ? 'unshift' : 'push';
17957    events.split(' ').forEach(event => {
17958      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];
17959      self.eventsListeners[event][method](handler);
17960    });
17961    return self;
17962  },
17963  once(events, handler, priority) {
17964    const self = this;
17965    if (!self.eventsListeners || self.destroyed) return self;
17966    if (typeof handler !== 'function') return self;
17967    function onceHandler() {
17968      self.off(events, onceHandler);
17969      if (onceHandler.__emitterProxy) {
17970        delete onceHandler.__emitterProxy;
17971      }
17972      for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17973        args[_key] = arguments[_key];
17974      }
17975      handler.apply(self, args);
17976    }
17977    onceHandler.__emitterProxy = handler;
17978    return self.on(events, onceHandler, priority);
17979  },
17980  onAny(handler, priority) {
17981    const self = this;
17982    if (!self.eventsListeners || self.destroyed) return self;
17983    if (typeof handler !== 'function') return self;
17984    const method = priority ? 'unshift' : 'push';
17985    if (self.eventsAnyListeners.indexOf(handler) < 0) {
17986      self.eventsAnyListeners[method](handler);
17987    }
17988    return self;
17989  },
17990  offAny(handler) {
17991    const self = this;
17992    if (!self.eventsListeners || self.destroyed) return self;
17993    if (!self.eventsAnyListeners) return self;
17994    const index = self.eventsAnyListeners.indexOf(handler);
17995    if (index >= 0) {
17996      self.eventsAnyListeners.splice(index, 1);
17997    }
17998    return self;
17999  },
18000  off(events, handler) {
18001    const self = this;
18002    if (!self.eventsListeners || self.destroyed) return self;
18003    if (!self.eventsListeners) return self;
18004    events.split(' ').forEach(event => {
18005      if (typeof handler === 'undefined') {
18006        self.eventsListeners[event] = [];
18007      } else if (self.eventsListeners[event]) {
18008        self.eventsListeners[event].forEach((eventHandler, index) => {
18009          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {
18010            self.eventsListeners[event].splice(index, 1);
18011          }
18012        });
18013      }
18014    });
18015    return self;
18016  },
18017  emit() {
18018    const self = this;
18019    if (!self.eventsListeners || self.destroyed) return self;
18020    if (!self.eventsListeners) return self;
18021    let events;
18022    let data;
18023    let context;
18024    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
18025      args[_key2] = arguments[_key2];
18026    }
18027    if (typeof args[0] === 'string' || Array.isArray(args[0])) {
18028      events = args[0];
18029      data = args.slice(1, args.length);
18030      context = self;
18031    } else {
18032      events = args[0].events;
18033      data = args[0].data;
18034      context = args[0].context || self;
18035    }
18036    data.unshift(context);
18037    const eventsArray = Array.isArray(events) ? events : events.split(' ');
18038    eventsArray.forEach(event => {
18039      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {
18040        self.eventsAnyListeners.forEach(eventHandler => {
18041          eventHandler.apply(context, [event, ...data]);
18042        });
18043      }
18044      if (self.eventsListeners && self.eventsListeners[event]) {
18045        self.eventsListeners[event].forEach(eventHandler => {
18046          eventHandler.apply(context, data);
18047        });
18048      }
18049    });
18050    return self;
18051  }
18052};
18053
18054function updateSize() {
18055  const swiper = this;
18056  let width;
18057  let height;
18058  const el = swiper.el;
18059  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {
18060    width = swiper.params.width;
18061  } else {
18062    width = el.clientWidth;
18063  }
18064  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {
18065    height = swiper.params.height;
18066  } else {
18067    height = el.clientHeight;
18068  }
18069  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {
18070    return;
18071  }
18072
18073  // Subtract paddings
18074  width = width - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-left') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-right') || 0, 10);
18075  height = height - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-top') || 0, 10) - parseInt((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'padding-bottom') || 0, 10);
18076  if (Number.isNaN(width)) width = 0;
18077  if (Number.isNaN(height)) height = 0;
18078  Object.assign(swiper, {
18079    width,
18080    height,
18081    size: swiper.isHorizontal() ? width : height
18082  });
18083}
18084
18085function updateSlides() {
18086  const swiper = this;
18087  function getDirectionPropertyValue(node, label) {
18088    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);
18089  }
18090  const params = swiper.params;
18091  const {
18092    wrapperEl,
18093    slidesEl,
18094    size: swiperSize,
18095    rtlTranslate: rtl,
18096    wrongRTL
18097  } = swiper;
18098  const isVirtual = swiper.virtual && params.virtual.enabled;
18099  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;
18100  const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);
18101  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;
18102  let snapGrid = [];
18103  const slidesGrid = [];
18104  const slidesSizesGrid = [];
18105  let offsetBefore = params.slidesOffsetBefore;
18106  if (typeof offsetBefore === 'function') {
18107    offsetBefore = params.slidesOffsetBefore.call(swiper);
18108  }
18109  let offsetAfter = params.slidesOffsetAfter;
18110  if (typeof offsetAfter === 'function') {
18111    offsetAfter = params.slidesOffsetAfter.call(swiper);
18112  }
18113  const previousSnapGridLength = swiper.snapGrid.length;
18114  const previousSlidesGridLength = swiper.slidesGrid.length;
18115  let spaceBetween = params.spaceBetween;
18116  let slidePosition = -offsetBefore;
18117  let prevSlideSize = 0;
18118  let index = 0;
18119  if (typeof swiperSize === 'undefined') {
18120    return;
18121  }
18122  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
18123    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;
18124  } else if (typeof spaceBetween === 'string') {
18125    spaceBetween = parseFloat(spaceBetween);
18126  }
18127  swiper.virtualSize = -spaceBetween;
18128
18129  // reset margins
18130  slides.forEach(slideEl => {
18131    if (rtl) {
18132      slideEl.style.marginLeft = '';
18133    } else {
18134      slideEl.style.marginRight = '';
18135    }
18136    slideEl.style.marginBottom = '';
18137    slideEl.style.marginTop = '';
18138  });
18139
18140  // reset cssMode offsets
18141  if (params.centeredSlides && params.cssMode) {
18142    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', '');
18143    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', '');
18144  }
18145  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;
18146  if (gridEnabled) {
18147    swiper.grid.initSlides(slides);
18148  } else if (swiper.grid) {
18149    swiper.grid.unsetSlides();
18150  }
18151
18152  // Calc slides
18153  let slideSize;
18154  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {
18155    return typeof params.breakpoints[key].slidesPerView !== 'undefined';
18156  }).length > 0;
18157  for (let i = 0; i < slidesLength; i += 1) {
18158    slideSize = 0;
18159    let slide;
18160    if (slides[i]) slide = slides[i];
18161    if (gridEnabled) {
18162      swiper.grid.updateSlide(i, slide, slides);
18163    }
18164    if (slides[i] && (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(slide, 'display') === 'none') continue; // eslint-disable-line
18165
18166    if (params.slidesPerView === 'auto') {
18167      if (shouldResetSlideSize) {
18168        slides[i].style[swiper.getDirectionLabel('width')] = ``;
18169      }
18170      const slideStyles = getComputedStyle(slide);
18171      const currentTransform = slide.style.transform;
18172      const currentWebKitTransform = slide.style.webkitTransform;
18173      if (currentTransform) {
18174        slide.style.transform = 'none';
18175      }
18176      if (currentWebKitTransform) {
18177        slide.style.webkitTransform = 'none';
18178      }
18179      if (params.roundLengths) {
18180        slideSize = swiper.isHorizontal() ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'width', true) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.f)(slide, 'height', true);
18181      } else {
18182        // eslint-disable-next-line
18183        const width = getDirectionPropertyValue(slideStyles, 'width');
18184        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');
18185        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');
18186        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');
18187        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');
18188        const boxSizing = slideStyles.getPropertyValue('box-sizing');
18189        if (boxSizing && boxSizing === 'border-box') {
18190          slideSize = width + marginLeft + marginRight;
18191        } else {
18192          const {
18193            clientWidth,
18194            offsetWidth
18195          } = slide;
18196          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
18197        }
18198      }
18199      if (currentTransform) {
18200        slide.style.transform = currentTransform;
18201      }
18202      if (currentWebKitTransform) {
18203        slide.style.webkitTransform = currentWebKitTransform;
18204      }
18205      if (params.roundLengths) slideSize = Math.floor(slideSize);
18206    } else {
18207      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
18208      if (params.roundLengths) slideSize = Math.floor(slideSize);
18209      if (slides[i]) {
18210        slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;
18211      }
18212    }
18213    if (slides[i]) {
18214      slides[i].swiperSlideSize = slideSize;
18215    }
18216    slidesSizesGrid.push(slideSize);
18217    if (params.centeredSlides) {
18218      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;
18219      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
18220      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;
18221      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;
18222      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
18223      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);
18224      slidesGrid.push(slidePosition);
18225    } else {
18226      if (params.roundLengths) slidePosition = Math.floor(slidePosition);
18227      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);
18228      slidesGrid.push(slidePosition);
18229      slidePosition = slidePosition + slideSize + spaceBetween;
18230    }
18231    swiper.virtualSize += slideSize + spaceBetween;
18232    prevSlideSize = slideSize;
18233    index += 1;
18234  }
18235  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;
18236  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {
18237    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;
18238  }
18239  if (params.setWrapperSize) {
18240    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;
18241  }
18242  if (gridEnabled) {
18243    swiper.grid.updateWrapperSize(slideSize, snapGrid);
18244  }
18245
18246  // Remove last grid elements depending on width
18247  if (!params.centeredSlides) {
18248    const newSlidesGrid = [];
18249    for (let i = 0; i < snapGrid.length; i += 1) {
18250      let slidesGridItem = snapGrid[i];
18251      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);
18252      if (snapGrid[i] <= swiper.virtualSize - swiperSize) {
18253        newSlidesGrid.push(slidesGridItem);
18254      }
18255    }
18256    snapGrid = newSlidesGrid;
18257    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {
18258      snapGrid.push(swiper.virtualSize - swiperSize);
18259    }
18260  }
18261  if (isVirtual && params.loop) {
18262    const size = slidesSizesGrid[0] + spaceBetween;
18263    if (params.slidesPerGroup > 1) {
18264      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);
18265      const groupSize = size * params.slidesPerGroup;
18266      for (let i = 0; i < groups; i += 1) {
18267        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);
18268      }
18269    }
18270    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {
18271      if (params.slidesPerGroup === 1) {
18272        snapGrid.push(snapGrid[snapGrid.length - 1] + size);
18273      }
18274      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);
18275      swiper.virtualSize += size;
18276    }
18277  }
18278  if (snapGrid.length === 0) snapGrid = [0];
18279  if (spaceBetween !== 0) {
18280    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');
18281    slides.filter((_, slideIndex) => {
18282      if (!params.cssMode || params.loop) return true;
18283      if (slideIndex === slides.length - 1) {
18284        return false;
18285      }
18286      return true;
18287    }).forEach(slideEl => {
18288      slideEl.style[key] = `${spaceBetween}px`;
18289    });
18290  }
18291  if (params.centeredSlides && params.centeredSlidesBounds) {
18292    let allSlidesSize = 0;
18293    slidesSizesGrid.forEach(slideSizeValue => {
18294      allSlidesSize += slideSizeValue + (spaceBetween || 0);
18295    });
18296    allSlidesSize -= spaceBetween;
18297    const maxSnap = allSlidesSize - swiperSize;
18298    snapGrid = snapGrid.map(snap => {
18299      if (snap <= 0) return -offsetBefore;
18300      if (snap > maxSnap) return maxSnap + offsetAfter;
18301      return snap;
18302    });
18303  }
18304  if (params.centerInsufficientSlides) {
18305    let allSlidesSize = 0;
18306    slidesSizesGrid.forEach(slideSizeValue => {
18307      allSlidesSize += slideSizeValue + (spaceBetween || 0);
18308    });
18309    allSlidesSize -= spaceBetween;
18310    const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);
18311    if (allSlidesSize + offsetSize < swiperSize) {
18312      const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 2;
18313      snapGrid.forEach((snap, snapIndex) => {
18314        snapGrid[snapIndex] = snap - allSlidesOffset;
18315      });
18316      slidesGrid.forEach((snap, snapIndex) => {
18317        slidesGrid[snapIndex] = snap + allSlidesOffset;
18318      });
18319    }
18320  }
18321  Object.assign(swiper, {
18322    slides,
18323    snapGrid,
18324    slidesGrid,
18325    slidesSizesGrid
18326  });
18327  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {
18328    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);
18329    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.s)(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);
18330    const addToSnapGrid = -swiper.snapGrid[0];
18331    const addToSlidesGrid = -swiper.slidesGrid[0];
18332    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);
18333    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);
18334  }
18335  if (slidesLength !== previousSlidesLength) {
18336    swiper.emit('slidesLengthChange');
18337  }
18338  if (snapGrid.length !== previousSnapGridLength) {
18339    if (swiper.params.watchOverflow) swiper.checkOverflow();
18340    swiper.emit('snapGridLengthChange');
18341  }
18342  if (slidesGrid.length !== previousSlidesGridLength) {
18343    swiper.emit('slidesGridLengthChange');
18344  }
18345  if (params.watchSlidesProgress) {
18346    swiper.updateSlidesOffset();
18347  }
18348  swiper.emit('slidesUpdated');
18349  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {
18350    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;
18351    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);
18352    if (slidesLength <= params.maxBackfaceHiddenSlides) {
18353      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);
18354    } else if (hasClassBackfaceClassAdded) {
18355      swiper.el.classList.remove(backFaceHiddenClass);
18356    }
18357  }
18358}
18359
18360function updateAutoHeight(speed) {
18361  const swiper = this;
18362  const activeSlides = [];
18363  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
18364  let newHeight = 0;
18365  let i;
18366  if (typeof speed === 'number') {
18367    swiper.setTransition(speed);
18368  } else if (speed === true) {
18369    swiper.setTransition(swiper.params.speed);
18370  }
18371  const getSlideByIndex = index => {
18372    if (isVirtual) {
18373      return swiper.slides[swiper.getSlideIndexByData(index)];
18374    }
18375    return swiper.slides[index];
18376  };
18377  // Find slides currently in view
18378  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {
18379    if (swiper.params.centeredSlides) {
18380      (swiper.visibleSlides || []).forEach(slide => {
18381        activeSlides.push(slide);
18382      });
18383    } else {
18384      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {
18385        const index = swiper.activeIndex + i;
18386        if (index > swiper.slides.length && !isVirtual) break;
18387        activeSlides.push(getSlideByIndex(index));
18388      }
18389    }
18390  } else {
18391    activeSlides.push(getSlideByIndex(swiper.activeIndex));
18392  }
18393
18394  // Find new height from highest slide in view
18395  for (i = 0; i < activeSlides.length; i += 1) {
18396    if (typeof activeSlides[i] !== 'undefined') {
18397      const height = activeSlides[i].offsetHeight;
18398      newHeight = height > newHeight ? height : newHeight;
18399    }
18400  }
18401
18402  // Update Height
18403  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
18404}
18405
18406function updateSlidesOffset() {
18407  const swiper = this;
18408  const slides = swiper.slides;
18409  // eslint-disable-next-line
18410  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;
18411  for (let i = 0; i < slides.length; i += 1) {
18412    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();
18413  }
18414}
18415
18416const toggleSlideClasses$1 = (slideEl, condition, className) => {
18417  if (condition && !slideEl.classList.contains(className)) {
18418    slideEl.classList.add(className);
18419  } else if (!condition && slideEl.classList.contains(className)) {
18420    slideEl.classList.remove(className);
18421  }
18422};
18423function updateSlidesProgress(translate) {
18424  if (translate === void 0) {
18425    translate = this && this.translate || 0;
18426  }
18427  const swiper = this;
18428  const params = swiper.params;
18429  const {
18430    slides,
18431    rtlTranslate: rtl,
18432    snapGrid
18433  } = swiper;
18434  if (slides.length === 0) return;
18435  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();
18436  let offsetCenter = -translate;
18437  if (rtl) offsetCenter = translate;
18438  swiper.visibleSlidesIndexes = [];
18439  swiper.visibleSlides = [];
18440  let spaceBetween = params.spaceBetween;
18441  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {
18442    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;
18443  } else if (typeof spaceBetween === 'string') {
18444    spaceBetween = parseFloat(spaceBetween);
18445  }
18446  for (let i = 0; i < slides.length; i += 1) {
18447    const slide = slides[i];
18448    let slideOffset = slide.swiperSlideOffset;
18449    if (params.cssMode && params.centeredSlides) {
18450      slideOffset -= slides[0].swiperSlideOffset;
18451    }
18452    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
18453    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);
18454    const slideBefore = -(offsetCenter - slideOffset);
18455    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];
18456    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];
18457    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;
18458    if (isVisible) {
18459      swiper.visibleSlides.push(slide);
18460      swiper.visibleSlidesIndexes.push(i);
18461    }
18462    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);
18463    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);
18464    slide.progress = rtl ? -slideProgress : slideProgress;
18465    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;
18466  }
18467}
18468
18469function updateProgress(translate) {
18470  const swiper = this;
18471  if (typeof translate === 'undefined') {
18472    const multiplier = swiper.rtlTranslate ? -1 : 1;
18473    // eslint-disable-next-line
18474    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;
18475  }
18476  const params = swiper.params;
18477  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
18478  let {
18479    progress,
18480    isBeginning,
18481    isEnd,
18482    progressLoop
18483  } = swiper;
18484  const wasBeginning = isBeginning;
18485  const wasEnd = isEnd;
18486  if (translatesDiff === 0) {
18487    progress = 0;
18488    isBeginning = true;
18489    isEnd = true;
18490  } else {
18491    progress = (translate - swiper.minTranslate()) / translatesDiff;
18492    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;
18493    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;
18494    isBeginning = isBeginningRounded || progress <= 0;
18495    isEnd = isEndRounded || progress >= 1;
18496    if (isBeginningRounded) progress = 0;
18497    if (isEndRounded) progress = 1;
18498  }
18499  if (params.loop) {
18500    const firstSlideIndex = swiper.getSlideIndexByData(0);
18501    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);
18502    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];
18503    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];
18504    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];
18505    const translateAbs = Math.abs(translate);
18506    if (translateAbs >= firstSlideTranslate) {
18507      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;
18508    } else {
18509      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;
18510    }
18511    if (progressLoop > 1) progressLoop -= 1;
18512  }
18513  Object.assign(swiper, {
18514    progress,
18515    progressLoop,
18516    isBeginning,
18517    isEnd
18518  });
18519  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);
18520  if (isBeginning && !wasBeginning) {
18521    swiper.emit('reachBeginning toEdge');
18522  }
18523  if (isEnd && !wasEnd) {
18524    swiper.emit('reachEnd toEdge');
18525  }
18526  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {
18527    swiper.emit('fromEdge');
18528  }
18529  swiper.emit('progress', progress);
18530}
18531
18532const toggleSlideClasses = (slideEl, condition, className) => {
18533  if (condition && !slideEl.classList.contains(className)) {
18534    slideEl.classList.add(className);
18535  } else if (!condition && slideEl.classList.contains(className)) {
18536    slideEl.classList.remove(className);
18537  }
18538};
18539function updateSlidesClasses() {
18540  const swiper = this;
18541  const {
18542    slides,
18543    params,
18544    slidesEl,
18545    activeIndex
18546  } = swiper;
18547  const isVirtual = swiper.virtual && params.virtual.enabled;
18548  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
18549  const getFilteredSlide = selector => {
18550    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];
18551  };
18552  let activeSlide;
18553  let prevSlide;
18554  let nextSlide;
18555  if (isVirtual) {
18556    if (params.loop) {
18557      let slideIndex = activeIndex - swiper.virtual.slidesBefore;
18558      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;
18559      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;
18560      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${slideIndex}"]`);
18561    } else {
18562      activeSlide = getFilteredSlide(`[data-swiper-slide-index="${activeIndex}"]`);
18563    }
18564  } else {
18565    if (gridEnabled) {
18566      activeSlide = slides.filter(slideEl => slideEl.column === activeIndex)[0];
18567      nextSlide = slides.filter(slideEl => slideEl.column === activeIndex + 1)[0];
18568      prevSlide = slides.filter(slideEl => slideEl.column === activeIndex - 1)[0];
18569    } else {
18570      activeSlide = slides[activeIndex];
18571    }
18572  }
18573  if (activeSlide) {
18574    if (!gridEnabled) {
18575      // Next Slide
18576      nextSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.q)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
18577      if (params.loop && !nextSlide) {
18578        nextSlide = slides[0];
18579      }
18580
18581      // Prev Slide
18582      prevSlide = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.r)(activeSlide, `.${params.slideClass}, swiper-slide`)[0];
18583      if (params.loop && !prevSlide === 0) {
18584        prevSlide = slides[slides.length - 1];
18585      }
18586    }
18587  }
18588  slides.forEach(slideEl => {
18589    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);
18590    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);
18591    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);
18592  });
18593  swiper.emitSlidesClasses();
18594}
18595
18596const processLazyPreloader = (swiper, imageEl) => {
18597  if (!swiper || swiper.destroyed || !swiper.params) return;
18598  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;
18599  const slideEl = imageEl.closest(slideSelector());
18600  if (slideEl) {
18601    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);
18602    if (!lazyEl && swiper.isElement) {
18603      if (slideEl.shadowRoot) {
18604        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
18605      } else {
18606        // init later
18607        requestAnimationFrame(() => {
18608          if (slideEl.shadowRoot) {
18609            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);
18610            if (lazyEl) lazyEl.remove();
18611          }
18612        });
18613      }
18614    }
18615    if (lazyEl) lazyEl.remove();
18616  }
18617};
18618const unlazy = (swiper, index) => {
18619  if (!swiper.slides[index]) return;
18620  const imageEl = swiper.slides[index].querySelector('[loading="lazy"]');
18621  if (imageEl) imageEl.removeAttribute('loading');
18622};
18623const preload = swiper => {
18624  if (!swiper || swiper.destroyed || !swiper.params) return;
18625  let amount = swiper.params.lazyPreloadPrevNext;
18626  const len = swiper.slides.length;
18627  if (!len || !amount || amount < 0) return;
18628  amount = Math.min(amount, len);
18629  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);
18630  const activeIndex = swiper.activeIndex;
18631  if (swiper.params.grid && swiper.params.grid.rows > 1) {
18632    const activeColumn = activeIndex;
18633    const preloadColumns = [activeColumn - amount];
18634    preloadColumns.push(...Array.from({
18635      length: amount
18636    }).map((_, i) => {
18637      return activeColumn + slidesPerView + i;
18638    }));
18639    swiper.slides.forEach((slideEl, i) => {
18640      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);
18641    });
18642    return;
18643  }
18644  const slideIndexLastInView = activeIndex + slidesPerView - 1;
18645  if (swiper.params.rewind || swiper.params.loop) {
18646    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {
18647      const realIndex = (i % len + len) % len;
18648      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);
18649    }
18650  } else {
18651    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {
18652      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {
18653        unlazy(swiper, i);
18654      }
18655    }
18656  }
18657};
18658
18659function getActiveIndexByTranslate(swiper) {
18660  const {
18661    slidesGrid,
18662    params
18663  } = swiper;
18664  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
18665  let activeIndex;
18666  for (let i = 0; i < slidesGrid.length; i += 1) {
18667    if (typeof slidesGrid[i + 1] !== 'undefined') {
18668      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {
18669        activeIndex = i;
18670      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {
18671        activeIndex = i + 1;
18672      }
18673    } else if (translate >= slidesGrid[i]) {
18674      activeIndex = i;
18675    }
18676  }
18677  // Normalize slideIndex
18678  if (params.normalizeSlideIndex) {
18679    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;
18680  }
18681  return activeIndex;
18682}
18683function updateActiveIndex(newActiveIndex) {
18684  const swiper = this;
18685  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
18686  const {
18687    snapGrid,
18688    params,
18689    activeIndex: previousIndex,
18690    realIndex: previousRealIndex,
18691    snapIndex: previousSnapIndex
18692  } = swiper;
18693  let activeIndex = newActiveIndex;
18694  let snapIndex;
18695  const getVirtualRealIndex = aIndex => {
18696    let realIndex = aIndex - swiper.virtual.slidesBefore;
18697    if (realIndex < 0) {
18698      realIndex = swiper.virtual.slides.length + realIndex;
18699    }
18700    if (realIndex >= swiper.virtual.slides.length) {
18701      realIndex -= swiper.virtual.slides.length;
18702    }
18703    return realIndex;
18704  };
18705  if (typeof activeIndex === 'undefined') {
18706    activeIndex = getActiveIndexByTranslate(swiper);
18707  }
18708  if (snapGrid.indexOf(translate) >= 0) {
18709    snapIndex = snapGrid.indexOf(translate);
18710  } else {
18711    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);
18712    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);
18713  }
18714  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
18715  if (activeIndex === previousIndex && !swiper.params.loop) {
18716    if (snapIndex !== previousSnapIndex) {
18717      swiper.snapIndex = snapIndex;
18718      swiper.emit('snapIndexChange');
18719    }
18720    return;
18721  }
18722  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
18723    swiper.realIndex = getVirtualRealIndex(activeIndex);
18724    return;
18725  }
18726  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
18727
18728  // Get real index
18729  let realIndex;
18730  if (swiper.virtual && params.virtual.enabled && params.loop) {
18731    realIndex = getVirtualRealIndex(activeIndex);
18732  } else if (gridEnabled) {
18733    const firstSlideInColumn = swiper.slides.filter(slideEl => slideEl.column === activeIndex)[0];
18734    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);
18735    if (Number.isNaN(activeSlideIndex)) {
18736      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);
18737    }
18738    realIndex = Math.floor(activeSlideIndex / params.grid.rows);
18739  } else if (swiper.slides[activeIndex]) {
18740    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');
18741    if (slideIndex) {
18742      realIndex = parseInt(slideIndex, 10);
18743    } else {
18744      realIndex = activeIndex;
18745    }
18746  } else {
18747    realIndex = activeIndex;
18748  }
18749  Object.assign(swiper, {
18750    previousSnapIndex,
18751    snapIndex,
18752    previousRealIndex,
18753    realIndex,
18754    previousIndex,
18755    activeIndex
18756  });
18757  if (swiper.initialized) {
18758    preload(swiper);
18759  }
18760  swiper.emit('activeIndexChange');
18761  swiper.emit('snapIndexChange');
18762  if (swiper.initialized || swiper.params.runCallbacksOnInit) {
18763    if (previousRealIndex !== realIndex) {
18764      swiper.emit('realIndexChange');
18765    }
18766    swiper.emit('slideChange');
18767  }
18768}
18769
18770function updateClickedSlide(el, path) {
18771  const swiper = this;
18772  const params = swiper.params;
18773  let slide = el.closest(`.${params.slideClass}, swiper-slide`);
18774  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {
18775    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {
18776      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {
18777        slide = pathEl;
18778      }
18779    });
18780  }
18781  let slideFound = false;
18782  let slideIndex;
18783  if (slide) {
18784    for (let i = 0; i < swiper.slides.length; i += 1) {
18785      if (swiper.slides[i] === slide) {
18786        slideFound = true;
18787        slideIndex = i;
18788        break;
18789      }
18790    }
18791  }
18792  if (slide && slideFound) {
18793    swiper.clickedSlide = slide;
18794    if (swiper.virtual && swiper.params.virtual.enabled) {
18795      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);
18796    } else {
18797      swiper.clickedIndex = slideIndex;
18798    }
18799  } else {
18800    swiper.clickedSlide = undefined;
18801    swiper.clickedIndex = undefined;
18802    return;
18803  }
18804  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {
18805    swiper.slideToClickedSlide();
18806  }
18807}
18808
18809var update = {
18810  updateSize,
18811  updateSlides,
18812  updateAutoHeight,
18813  updateSlidesOffset,
18814  updateSlidesProgress,
18815  updateProgress,
18816  updateSlidesClasses,
18817  updateActiveIndex,
18818  updateClickedSlide
18819};
18820
18821function getSwiperTranslate(axis) {
18822  if (axis === void 0) {
18823    axis = this.isHorizontal() ? 'x' : 'y';
18824  }
18825  const swiper = this;
18826  const {
18827    params,
18828    rtlTranslate: rtl,
18829    translate,
18830    wrapperEl
18831  } = swiper;
18832  if (params.virtualTranslate) {
18833    return rtl ? -translate : translate;
18834  }
18835  if (params.cssMode) {
18836    return translate;
18837  }
18838  let currentTranslate = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.j)(wrapperEl, axis);
18839  currentTranslate += swiper.cssOverflowAdjustment();
18840  if (rtl) currentTranslate = -currentTranslate;
18841  return currentTranslate || 0;
18842}
18843
18844function setTranslate(translate, byController) {
18845  const swiper = this;
18846  const {
18847    rtlTranslate: rtl,
18848    params,
18849    wrapperEl,
18850    progress
18851  } = swiper;
18852  let x = 0;
18853  let y = 0;
18854  const z = 0;
18855  if (swiper.isHorizontal()) {
18856    x = rtl ? -translate : translate;
18857  } else {
18858    y = translate;
18859  }
18860  if (params.roundLengths) {
18861    x = Math.floor(x);
18862    y = Math.floor(y);
18863  }
18864  swiper.previousTranslate = swiper.translate;
18865  swiper.translate = swiper.isHorizontal() ? x : y;
18866  if (params.cssMode) {
18867    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;
18868  } else if (!params.virtualTranslate) {
18869    if (swiper.isHorizontal()) {
18870      x -= swiper.cssOverflowAdjustment();
18871    } else {
18872      y -= swiper.cssOverflowAdjustment();
18873    }
18874    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;
18875  }
18876
18877  // Check if we need to update progress
18878  let newProgress;
18879  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
18880  if (translatesDiff === 0) {
18881    newProgress = 0;
18882  } else {
18883    newProgress = (translate - swiper.minTranslate()) / translatesDiff;
18884  }
18885  if (newProgress !== progress) {
18886    swiper.updateProgress(translate);
18887  }
18888  swiper.emit('setTranslate', swiper.translate, byController);
18889}
18890
18891function minTranslate() {
18892  return -this.snapGrid[0];
18893}
18894
18895function maxTranslate() {
18896  return -this.snapGrid[this.snapGrid.length - 1];
18897}
18898
18899function translateTo(translate, speed, runCallbacks, translateBounds, internal) {
18900  if (translate === void 0) {
18901    translate = 0;
18902  }
18903  if (speed === void 0) {
18904    speed = this.params.speed;
18905  }
18906  if (runCallbacks === void 0) {
18907    runCallbacks = true;
18908  }
18909  if (translateBounds === void 0) {
18910    translateBounds = true;
18911  }
18912  const swiper = this;
18913  const {
18914    params,
18915    wrapperEl
18916  } = swiper;
18917  if (swiper.animating && params.preventInteractionOnTransition) {
18918    return false;
18919  }
18920  const minTranslate = swiper.minTranslate();
18921  const maxTranslate = swiper.maxTranslate();
18922  let newTranslate;
18923  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;
18924
18925  // Update progress
18926  swiper.updateProgress(newTranslate);
18927  if (params.cssMode) {
18928    const isH = swiper.isHorizontal();
18929    if (speed === 0) {
18930      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;
18931    } else {
18932      if (!swiper.support.smoothScroll) {
18933        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
18934          swiper,
18935          targetPosition: -newTranslate,
18936          side: isH ? 'left' : 'top'
18937        });
18938        return true;
18939      }
18940      wrapperEl.scrollTo({
18941        [isH ? 'left' : 'top']: -newTranslate,
18942        behavior: 'smooth'
18943      });
18944    }
18945    return true;
18946  }
18947  if (speed === 0) {
18948    swiper.setTransition(0);
18949    swiper.setTranslate(newTranslate);
18950    if (runCallbacks) {
18951      swiper.emit('beforeTransitionStart', speed, internal);
18952      swiper.emit('transitionEnd');
18953    }
18954  } else {
18955    swiper.setTransition(speed);
18956    swiper.setTranslate(newTranslate);
18957    if (runCallbacks) {
18958      swiper.emit('beforeTransitionStart', speed, internal);
18959      swiper.emit('transitionStart');
18960    }
18961    if (!swiper.animating) {
18962      swiper.animating = true;
18963      if (!swiper.onTranslateToWrapperTransitionEnd) {
18964        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {
18965          if (!swiper || swiper.destroyed) return;
18966          if (e.target !== this) return;
18967          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
18968          swiper.onTranslateToWrapperTransitionEnd = null;
18969          delete swiper.onTranslateToWrapperTransitionEnd;
18970          swiper.animating = false;
18971          if (runCallbacks) {
18972            swiper.emit('transitionEnd');
18973          }
18974        };
18975      }
18976      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);
18977    }
18978  }
18979  return true;
18980}
18981
18982var translate = {
18983  getTranslate: getSwiperTranslate,
18984  setTranslate,
18985  minTranslate,
18986  maxTranslate,
18987  translateTo
18988};
18989
18990function setTransition(duration, byController) {
18991  const swiper = this;
18992  if (!swiper.params.cssMode) {
18993    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;
18994    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';
18995  }
18996  swiper.emit('setTransition', duration, byController);
18997}
18998
18999function transitionEmit(_ref) {
19000  let {
19001    swiper,
19002    runCallbacks,
19003    direction,
19004    step
19005  } = _ref;
19006  const {
19007    activeIndex,
19008    previousIndex
19009  } = swiper;
19010  let dir = direction;
19011  if (!dir) {
19012    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';
19013  }
19014  swiper.emit(`transition${step}`);
19015  if (runCallbacks && activeIndex !== previousIndex) {
19016    if (dir === 'reset') {
19017      swiper.emit(`slideResetTransition${step}`);
19018      return;
19019    }
19020    swiper.emit(`slideChangeTransition${step}`);
19021    if (dir === 'next') {
19022      swiper.emit(`slideNextTransition${step}`);
19023    } else {
19024      swiper.emit(`slidePrevTransition${step}`);
19025    }
19026  }
19027}
19028
19029function transitionStart(runCallbacks, direction) {
19030  if (runCallbacks === void 0) {
19031    runCallbacks = true;
19032  }
19033  const swiper = this;
19034  const {
19035    params
19036  } = swiper;
19037  if (params.cssMode) return;
19038  if (params.autoHeight) {
19039    swiper.updateAutoHeight();
19040  }
19041  transitionEmit({
19042    swiper,
19043    runCallbacks,
19044    direction,
19045    step: 'Start'
19046  });
19047}
19048
19049function transitionEnd(runCallbacks, direction) {
19050  if (runCallbacks === void 0) {
19051    runCallbacks = true;
19052  }
19053  const swiper = this;
19054  const {
19055    params
19056  } = swiper;
19057  swiper.animating = false;
19058  if (params.cssMode) return;
19059  swiper.setTransition(0);
19060  transitionEmit({
19061    swiper,
19062    runCallbacks,
19063    direction,
19064    step: 'End'
19065  });
19066}
19067
19068var transition = {
19069  setTransition,
19070  transitionStart,
19071  transitionEnd
19072};
19073
19074function slideTo(index, speed, runCallbacks, internal, initial) {
19075  if (index === void 0) {
19076    index = 0;
19077  }
19078  if (runCallbacks === void 0) {
19079    runCallbacks = true;
19080  }
19081  if (typeof index === 'string') {
19082    index = parseInt(index, 10);
19083  }
19084  const swiper = this;
19085  let slideIndex = index;
19086  if (slideIndex < 0) slideIndex = 0;
19087  const {
19088    params,
19089    snapGrid,
19090    slidesGrid,
19091    previousIndex,
19092    activeIndex,
19093    rtlTranslate: rtl,
19094    wrapperEl,
19095    enabled
19096  } = swiper;
19097  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {
19098    return false;
19099  }
19100  if (typeof speed === 'undefined') {
19101    speed = swiper.params.speed;
19102  }
19103  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);
19104  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);
19105  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;
19106  const translate = -snapGrid[snapIndex];
19107  // Normalize slideIndex
19108  if (params.normalizeSlideIndex) {
19109    for (let i = 0; i < slidesGrid.length; i += 1) {
19110      const normalizedTranslate = -Math.floor(translate * 100);
19111      const normalizedGrid = Math.floor(slidesGrid[i] * 100);
19112      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);
19113      if (typeof slidesGrid[i + 1] !== 'undefined') {
19114        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {
19115          slideIndex = i;
19116        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {
19117          slideIndex = i + 1;
19118        }
19119      } else if (normalizedTranslate >= normalizedGrid) {
19120        slideIndex = i;
19121      }
19122    }
19123  }
19124  // Directions locks
19125  if (swiper.initialized && slideIndex !== activeIndex) {
19126    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {
19127      return false;
19128    }
19129    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {
19130      if ((activeIndex || 0) !== slideIndex) {
19131        return false;
19132      }
19133    }
19134  }
19135  if (slideIndex !== (previousIndex || 0) && runCallbacks) {
19136    swiper.emit('beforeSlideChangeStart');
19137  }
19138
19139  // Update progress
19140  swiper.updateProgress(translate);
19141  let direction;
19142  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';
19143
19144  // Update Index
19145  if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {
19146    swiper.updateActiveIndex(slideIndex);
19147    // Update Height
19148    if (params.autoHeight) {
19149      swiper.updateAutoHeight();
19150    }
19151    swiper.updateSlidesClasses();
19152    if (params.effect !== 'slide') {
19153      swiper.setTranslate(translate);
19154    }
19155    if (direction !== 'reset') {
19156      swiper.transitionStart(runCallbacks, direction);
19157      swiper.transitionEnd(runCallbacks, direction);
19158    }
19159    return false;
19160  }
19161  if (params.cssMode) {
19162    const isH = swiper.isHorizontal();
19163    const t = rtl ? translate : -translate;
19164    if (speed === 0) {
19165      const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
19166      if (isVirtual) {
19167        swiper.wrapperEl.style.scrollSnapType = 'none';
19168        swiper._immediateVirtual = true;
19169      }
19170      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {
19171        swiper._cssModeVirtualInitialSet = true;
19172        requestAnimationFrame(() => {
19173          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
19174        });
19175      } else {
19176        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;
19177      }
19178      if (isVirtual) {
19179        requestAnimationFrame(() => {
19180          swiper.wrapperEl.style.scrollSnapType = '';
19181          swiper._immediateVirtual = false;
19182        });
19183      }
19184    } else {
19185      if (!swiper.support.smoothScroll) {
19186        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.t)({
19187          swiper,
19188          targetPosition: t,
19189          side: isH ? 'left' : 'top'
19190        });
19191        return true;
19192      }
19193      wrapperEl.scrollTo({
19194        [isH ? 'left' : 'top']: t,
19195        behavior: 'smooth'
19196      });
19197    }
19198    return true;
19199  }
19200  swiper.setTransition(speed);
19201  swiper.setTranslate(translate);
19202  swiper.updateActiveIndex(slideIndex);
19203  swiper.updateSlidesClasses();
19204  swiper.emit('beforeTransitionStart', speed, internal);
19205  swiper.transitionStart(runCallbacks, direction);
19206  if (speed === 0) {
19207    swiper.transitionEnd(runCallbacks, direction);
19208  } else if (!swiper.animating) {
19209    swiper.animating = true;
19210    if (!swiper.onSlideToWrapperTransitionEnd) {
19211      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {
19212        if (!swiper || swiper.destroyed) return;
19213        if (e.target !== this) return;
19214        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
19215        swiper.onSlideToWrapperTransitionEnd = null;
19216        delete swiper.onSlideToWrapperTransitionEnd;
19217        swiper.transitionEnd(runCallbacks, direction);
19218      };
19219    }
19220    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);
19221  }
19222  return true;
19223}
19224
19225function slideToLoop(index, speed, runCallbacks, internal) {
19226  if (index === void 0) {
19227    index = 0;
19228  }
19229  if (runCallbacks === void 0) {
19230    runCallbacks = true;
19231  }
19232  if (typeof index === 'string') {
19233    const indexAsNumber = parseInt(index, 10);
19234    index = indexAsNumber;
19235  }
19236  const swiper = this;
19237  if (swiper.destroyed) return;
19238  if (typeof speed === 'undefined') {
19239    speed = swiper.params.speed;
19240  }
19241  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;
19242  let newIndex = index;
19243  if (swiper.params.loop) {
19244    if (swiper.virtual && swiper.params.virtual.enabled) {
19245      // eslint-disable-next-line
19246      newIndex = newIndex + swiper.virtual.slidesBefore;
19247    } else {
19248      let targetSlideIndex;
19249      if (gridEnabled) {
19250        const slideIndex = newIndex * swiper.params.grid.rows;
19251        targetSlideIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
19252      } else {
19253        targetSlideIndex = swiper.getSlideIndexByData(newIndex);
19254      }
19255      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;
19256      const {
19257        centeredSlides
19258      } = swiper.params;
19259      let slidesPerView = swiper.params.slidesPerView;
19260      if (slidesPerView === 'auto') {
19261        slidesPerView = swiper.slidesPerViewDynamic();
19262      } else {
19263        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));
19264        if (centeredSlides && slidesPerView % 2 === 0) {
19265          slidesPerView = slidesPerView + 1;
19266        }
19267      }
19268      let needLoopFix = cols - targetSlideIndex < slidesPerView;
19269      if (centeredSlides) {
19270        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);
19271      }
19272      if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {
19273        needLoopFix = false;
19274      }
19275      if (needLoopFix) {
19276        const direction = centeredSlides ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';
19277        swiper.loopFix({
19278          direction,
19279          slideTo: true,
19280          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,
19281          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined
19282        });
19283      }
19284      if (gridEnabled) {
19285        const slideIndex = newIndex * swiper.params.grid.rows;
19286        newIndex = swiper.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex)[0].column;
19287      } else {
19288        newIndex = swiper.getSlideIndexByData(newIndex);
19289      }
19290    }
19291  }
19292  requestAnimationFrame(() => {
19293    swiper.slideTo(newIndex, speed, runCallbacks, internal);
19294  });
19295  return swiper;
19296}
19297
19298/* eslint no-unused-vars: "off" */
19299function slideNext(speed, runCallbacks, internal) {
19300  if (runCallbacks === void 0) {
19301    runCallbacks = true;
19302  }
19303  const swiper = this;
19304  const {
19305    enabled,
19306    params,
19307    animating
19308  } = swiper;
19309  if (!enabled || swiper.destroyed) return swiper;
19310  if (typeof speed === 'undefined') {
19311    speed = swiper.params.speed;
19312  }
19313  let perGroup = params.slidesPerGroup;
19314  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
19315    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);
19316  }
19317  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;
19318  const isVirtual = swiper.virtual && params.virtual.enabled;
19319  if (params.loop) {
19320    if (animating && !isVirtual && params.loopPreventsSliding) return false;
19321    swiper.loopFix({
19322      direction: 'next'
19323    });
19324    // eslint-disable-next-line
19325    swiper._clientLeft = swiper.wrapperEl.clientLeft;
19326    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {
19327      requestAnimationFrame(() => {
19328        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
19329      });
19330      return true;
19331    }
19332  }
19333  if (params.rewind && swiper.isEnd) {
19334    return swiper.slideTo(0, speed, runCallbacks, internal);
19335  }
19336  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);
19337}
19338
19339/* eslint no-unused-vars: "off" */
19340function slidePrev(speed, runCallbacks, internal) {
19341  if (runCallbacks === void 0) {
19342    runCallbacks = true;
19343  }
19344  const swiper = this;
19345  const {
19346    params,
19347    snapGrid,
19348    slidesGrid,
19349    rtlTranslate,
19350    enabled,
19351    animating
19352  } = swiper;
19353  if (!enabled || swiper.destroyed) return swiper;
19354  if (typeof speed === 'undefined') {
19355    speed = swiper.params.speed;
19356  }
19357  const isVirtual = swiper.virtual && params.virtual.enabled;
19358  if (params.loop) {
19359    if (animating && !isVirtual && params.loopPreventsSliding) return false;
19360    swiper.loopFix({
19361      direction: 'prev'
19362    });
19363    // eslint-disable-next-line
19364    swiper._clientLeft = swiper.wrapperEl.clientLeft;
19365  }
19366  const translate = rtlTranslate ? swiper.translate : -swiper.translate;
19367  function normalize(val) {
19368    if (val < 0) return -Math.floor(Math.abs(val));
19369    return Math.floor(val);
19370  }
19371  const normalizedTranslate = normalize(translate);
19372  const normalizedSnapGrid = snapGrid.map(val => normalize(val));
19373  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];
19374  if (typeof prevSnap === 'undefined' && params.cssMode) {
19375    let prevSnapIndex;
19376    snapGrid.forEach((snap, snapIndex) => {
19377      if (normalizedTranslate >= snap) {
19378        // prevSnap = snap;
19379        prevSnapIndex = snapIndex;
19380      }
19381    });
19382    if (typeof prevSnapIndex !== 'undefined') {
19383      prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];
19384    }
19385  }
19386  let prevIndex = 0;
19387  if (typeof prevSnap !== 'undefined') {
19388    prevIndex = slidesGrid.indexOf(prevSnap);
19389    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;
19390    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {
19391      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;
19392      prevIndex = Math.max(prevIndex, 0);
19393    }
19394  }
19395  if (params.rewind && swiper.isBeginning) {
19396    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
19397    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);
19398  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {
19399    requestAnimationFrame(() => {
19400      swiper.slideTo(prevIndex, speed, runCallbacks, internal);
19401    });
19402    return true;
19403  }
19404  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);
19405}
19406
19407/* eslint no-unused-vars: "off" */
19408function slideReset(speed, runCallbacks, internal) {
19409  if (runCallbacks === void 0) {
19410    runCallbacks = true;
19411  }
19412  const swiper = this;
19413  if (swiper.destroyed) return;
19414  if (typeof speed === 'undefined') {
19415    speed = swiper.params.speed;
19416  }
19417  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);
19418}
19419
19420/* eslint no-unused-vars: "off" */
19421function slideToClosest(speed, runCallbacks, internal, threshold) {
19422  if (runCallbacks === void 0) {
19423    runCallbacks = true;
19424  }
19425  if (threshold === void 0) {
19426    threshold = 0.5;
19427  }
19428  const swiper = this;
19429  if (swiper.destroyed) return;
19430  if (typeof speed === 'undefined') {
19431    speed = swiper.params.speed;
19432  }
19433  let index = swiper.activeIndex;
19434  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);
19435  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);
19436  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;
19437  if (translate >= swiper.snapGrid[snapIndex]) {
19438    // The current translate is on or after the current snap index, so the choice
19439    // is between the current index and the one after it.
19440    const currentSnap = swiper.snapGrid[snapIndex];
19441    const nextSnap = swiper.snapGrid[snapIndex + 1];
19442    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {
19443      index += swiper.params.slidesPerGroup;
19444    }
19445  } else {
19446    // The current translate is before the current snap index, so the choice
19447    // is between the current index and the one before it.
19448    const prevSnap = swiper.snapGrid[snapIndex - 1];
19449    const currentSnap = swiper.snapGrid[snapIndex];
19450    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {
19451      index -= swiper.params.slidesPerGroup;
19452    }
19453  }
19454  index = Math.max(index, 0);
19455  index = Math.min(index, swiper.slidesGrid.length - 1);
19456  return swiper.slideTo(index, speed, runCallbacks, internal);
19457}
19458
19459function slideToClickedSlide() {
19460  const swiper = this;
19461  if (swiper.destroyed) return;
19462  const {
19463    params,
19464    slidesEl
19465  } = swiper;
19466  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;
19467  let slideToIndex = swiper.clickedIndex;
19468  let realIndex;
19469  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;
19470  if (params.loop) {
19471    if (swiper.animating) return;
19472    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);
19473    if (params.centeredSlides) {
19474      if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {
19475        swiper.loopFix();
19476        slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
19477        (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
19478          swiper.slideTo(slideToIndex);
19479        });
19480      } else {
19481        swiper.slideTo(slideToIndex);
19482      }
19483    } else if (slideToIndex > swiper.slides.length - slidesPerView) {
19484      swiper.loopFix();
19485      slideToIndex = swiper.getSlideIndex((0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `${slideSelector}[data-swiper-slide-index="${realIndex}"]`)[0]);
19486      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
19487        swiper.slideTo(slideToIndex);
19488      });
19489    } else {
19490      swiper.slideTo(slideToIndex);
19491    }
19492  } else {
19493    swiper.slideTo(slideToIndex);
19494  }
19495}
19496
19497var slide = {
19498  slideTo,
19499  slideToLoop,
19500  slideNext,
19501  slidePrev,
19502  slideReset,
19503  slideToClosest,
19504  slideToClickedSlide
19505};
19506
19507function loopCreate(slideRealIndex) {
19508  const swiper = this;
19509  const {
19510    params,
19511    slidesEl
19512  } = swiper;
19513  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
19514  const initSlides = () => {
19515    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
19516    slides.forEach((el, index) => {
19517      el.setAttribute('data-swiper-slide-index', index);
19518    });
19519  };
19520  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
19521  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);
19522  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;
19523  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;
19524  const addBlankSlides = amountOfSlides => {
19525    for (let i = 0; i < amountOfSlides; i += 1) {
19526      const slideEl = swiper.isElement ? (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('swiper-slide', [params.slideBlankClass]) : (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', [params.slideClass, params.slideBlankClass]);
19527      swiper.slidesEl.append(slideEl);
19528    }
19529  };
19530  if (shouldFillGroup) {
19531    if (params.loopAddBlankSlides) {
19532      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;
19533      addBlankSlides(slidesToAdd);
19534      swiper.recalcSlides();
19535      swiper.updateSlides();
19536    } else {
19537      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('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)');
19538    }
19539    initSlides();
19540  } else if (shouldFillGrid) {
19541    if (params.loopAddBlankSlides) {
19542      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;
19543      addBlankSlides(slidesToAdd);
19544      swiper.recalcSlides();
19545      swiper.updateSlides();
19546    } else {
19547      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('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)');
19548    }
19549    initSlides();
19550  } else {
19551    initSlides();
19552  }
19553  swiper.loopFix({
19554    slideRealIndex,
19555    direction: params.centeredSlides ? undefined : 'next'
19556  });
19557}
19558
19559function loopFix(_temp) {
19560  let {
19561    slideRealIndex,
19562    slideTo = true,
19563    direction,
19564    setTranslate,
19565    activeSlideIndex,
19566    byController,
19567    byMousewheel
19568  } = _temp === void 0 ? {} : _temp;
19569  const swiper = this;
19570  if (!swiper.params.loop) return;
19571  swiper.emit('beforeLoopFix');
19572  const {
19573    slides,
19574    allowSlidePrev,
19575    allowSlideNext,
19576    slidesEl,
19577    params
19578  } = swiper;
19579  const {
19580    centeredSlides
19581  } = params;
19582  swiper.allowSlidePrev = true;
19583  swiper.allowSlideNext = true;
19584  if (swiper.virtual && params.virtual.enabled) {
19585    if (slideTo) {
19586      if (!params.centeredSlides && swiper.snapIndex === 0) {
19587        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);
19588      } else if (params.centeredSlides && swiper.snapIndex < params.slidesPerView) {
19589        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);
19590      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {
19591        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);
19592      }
19593    }
19594    swiper.allowSlidePrev = allowSlidePrev;
19595    swiper.allowSlideNext = allowSlideNext;
19596    swiper.emit('loopFix');
19597    return;
19598  }
19599  let slidesPerView = params.slidesPerView;
19600  if (slidesPerView === 'auto') {
19601    slidesPerView = swiper.slidesPerViewDynamic();
19602  } else {
19603    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));
19604    if (centeredSlides && slidesPerView % 2 === 0) {
19605      slidesPerView = slidesPerView + 1;
19606    }
19607  }
19608  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;
19609  let loopedSlides = slidesPerGroup;
19610  if (loopedSlides % slidesPerGroup !== 0) {
19611    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;
19612  }
19613  loopedSlides += params.loopAdditionalSlides;
19614  swiper.loopedSlides = loopedSlides;
19615  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;
19616  if (slides.length < slidesPerView + loopedSlides) {
19617    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled and not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');
19618  } else if (gridEnabled && params.grid.fill === 'row') {
19619    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.u)('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');
19620  }
19621  const prependSlidesIndexes = [];
19622  const appendSlidesIndexes = [];
19623  let activeIndex = swiper.activeIndex;
19624  if (typeof activeSlideIndex === 'undefined') {
19625    activeSlideIndex = swiper.getSlideIndex(slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);
19626  } else {
19627    activeIndex = activeSlideIndex;
19628  }
19629  const isNext = direction === 'next' || !direction;
19630  const isPrev = direction === 'prev' || !direction;
19631  let slidesPrepended = 0;
19632  let slidesAppended = 0;
19633  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;
19634  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;
19635  const activeColIndexWithShift = activeColIndex + (centeredSlides && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);
19636  // prepend last slides before start
19637  if (activeColIndexWithShift < loopedSlides) {
19638    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);
19639    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {
19640      const index = i - Math.floor(i / cols) * cols;
19641      if (gridEnabled) {
19642        const colIndexToPrepend = cols - index - 1;
19643        for (let i = slides.length - 1; i >= 0; i -= 1) {
19644          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);
19645        }
19646        // slides.forEach((slide, slideIndex) => {
19647        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);
19648        // });
19649      } else {
19650        prependSlidesIndexes.push(cols - index - 1);
19651      }
19652    }
19653  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {
19654    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);
19655    for (let i = 0; i < slidesAppended; i += 1) {
19656      const index = i - Math.floor(i / cols) * cols;
19657      if (gridEnabled) {
19658        slides.forEach((slide, slideIndex) => {
19659          if (slide.column === index) appendSlidesIndexes.push(slideIndex);
19660        });
19661      } else {
19662        appendSlidesIndexes.push(index);
19663      }
19664    }
19665  }
19666  swiper.__preventObserver__ = true;
19667  requestAnimationFrame(() => {
19668    swiper.__preventObserver__ = false;
19669  });
19670  if (isPrev) {
19671    prependSlidesIndexes.forEach(index => {
19672      slides[index].swiperLoopMoveDOM = true;
19673      slidesEl.prepend(slides[index]);
19674      slides[index].swiperLoopMoveDOM = false;
19675    });
19676  }
19677  if (isNext) {
19678    appendSlidesIndexes.forEach(index => {
19679      slides[index].swiperLoopMoveDOM = true;
19680      slidesEl.append(slides[index]);
19681      slides[index].swiperLoopMoveDOM = false;
19682    });
19683  }
19684  swiper.recalcSlides();
19685  if (params.slidesPerView === 'auto') {
19686    swiper.updateSlides();
19687  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {
19688    swiper.slides.forEach((slide, slideIndex) => {
19689      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);
19690    });
19691  }
19692  if (params.watchSlidesProgress) {
19693    swiper.updateSlidesOffset();
19694  }
19695  if (slideTo) {
19696    if (prependSlidesIndexes.length > 0 && isPrev) {
19697      if (typeof slideRealIndex === 'undefined') {
19698        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
19699        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];
19700        const diff = newSlideTranslate - currentSlideTranslate;
19701        if (byMousewheel) {
19702          swiper.setTranslate(swiper.translate - diff);
19703        } else {
19704          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);
19705          if (setTranslate) {
19706            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
19707            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
19708          }
19709        }
19710      } else {
19711        if (setTranslate) {
19712          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;
19713          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);
19714          swiper.touchEventsData.currentTranslate = swiper.translate;
19715        }
19716      }
19717    } else if (appendSlidesIndexes.length > 0 && isNext) {
19718      if (typeof slideRealIndex === 'undefined') {
19719        const currentSlideTranslate = swiper.slidesGrid[activeIndex];
19720        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];
19721        const diff = newSlideTranslate - currentSlideTranslate;
19722        if (byMousewheel) {
19723          swiper.setTranslate(swiper.translate - diff);
19724        } else {
19725          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);
19726          if (setTranslate) {
19727            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;
19728            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;
19729          }
19730        }
19731      } else {
19732        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;
19733        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);
19734      }
19735    }
19736  }
19737  swiper.allowSlidePrev = allowSlidePrev;
19738  swiper.allowSlideNext = allowSlideNext;
19739  if (swiper.controller && swiper.controller.control && !byController) {
19740    const loopParams = {
19741      slideRealIndex,
19742      direction,
19743      setTranslate,
19744      activeSlideIndex,
19745      byController: true
19746    };
19747    if (Array.isArray(swiper.controller.control)) {
19748      swiper.controller.control.forEach(c => {
19749        if (!c.destroyed && c.params.loop) c.loopFix({
19750          ...loopParams,
19751          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false
19752        });
19753      });
19754    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {
19755      swiper.controller.control.loopFix({
19756        ...loopParams,
19757        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false
19758      });
19759    }
19760  }
19761  swiper.emit('loopFix');
19762}
19763
19764function loopDestroy() {
19765  const swiper = this;
19766  const {
19767    params,
19768    slidesEl
19769  } = swiper;
19770  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;
19771  swiper.recalcSlides();
19772  const newSlidesOrder = [];
19773  swiper.slides.forEach(slideEl => {
19774    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;
19775    newSlidesOrder[index] = slideEl;
19776  });
19777  swiper.slides.forEach(slideEl => {
19778    slideEl.removeAttribute('data-swiper-slide-index');
19779  });
19780  newSlidesOrder.forEach(slideEl => {
19781    slidesEl.append(slideEl);
19782  });
19783  swiper.recalcSlides();
19784  swiper.slideTo(swiper.realIndex, 0);
19785}
19786
19787var loop = {
19788  loopCreate,
19789  loopFix,
19790  loopDestroy
19791};
19792
19793function setGrabCursor(moving) {
19794  const swiper = this;
19795  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;
19796  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;
19797  if (swiper.isElement) {
19798    swiper.__preventObserver__ = true;
19799  }
19800  el.style.cursor = 'move';
19801  el.style.cursor = moving ? 'grabbing' : 'grab';
19802  if (swiper.isElement) {
19803    requestAnimationFrame(() => {
19804      swiper.__preventObserver__ = false;
19805    });
19806  }
19807}
19808
19809function unsetGrabCursor() {
19810  const swiper = this;
19811  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {
19812    return;
19813  }
19814  if (swiper.isElement) {
19815    swiper.__preventObserver__ = true;
19816  }
19817  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';
19818  if (swiper.isElement) {
19819    requestAnimationFrame(() => {
19820      swiper.__preventObserver__ = false;
19821    });
19822  }
19823}
19824
19825var grabCursor = {
19826  setGrabCursor,
19827  unsetGrabCursor
19828};
19829
19830// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd
19831function closestElement(selector, base) {
19832  if (base === void 0) {
19833    base = this;
19834  }
19835  function __closestFrom(el) {
19836    if (!el || el === (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)() || el === (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)()) return null;
19837    if (el.assignedSlot) el = el.assignedSlot;
19838    const found = el.closest(selector);
19839    if (!found && !el.getRootNode) {
19840      return null;
19841    }
19842    return found || __closestFrom(el.getRootNode().host);
19843  }
19844  return __closestFrom(base);
19845}
19846function preventEdgeSwipe(swiper, event, startX) {
19847  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
19848  const {
19849    params
19850  } = swiper;
19851  const edgeSwipeDetection = params.edgeSwipeDetection;
19852  const edgeSwipeThreshold = params.edgeSwipeThreshold;
19853  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {
19854    if (edgeSwipeDetection === 'prevent') {
19855      event.preventDefault();
19856      return true;
19857    }
19858    return false;
19859  }
19860  return true;
19861}
19862function onTouchStart(event) {
19863  const swiper = this;
19864  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
19865  let e = event;
19866  if (e.originalEvent) e = e.originalEvent;
19867  const data = swiper.touchEventsData;
19868  if (e.type === 'pointerdown') {
19869    if (data.pointerId !== null && data.pointerId !== e.pointerId) {
19870      return;
19871    }
19872    data.pointerId = e.pointerId;
19873  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {
19874    data.touchId = e.targetTouches[0].identifier;
19875  }
19876  if (e.type === 'touchstart') {
19877    // don't proceed touch event
19878    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);
19879    return;
19880  }
19881  const {
19882    params,
19883    touches,
19884    enabled
19885  } = swiper;
19886  if (!enabled) return;
19887  if (!params.simulateTouch && e.pointerType === 'mouse') return;
19888  if (swiper.animating && params.preventInteractionOnTransition) {
19889    return;
19890  }
19891  if (!swiper.animating && params.cssMode && params.loop) {
19892    swiper.loopFix();
19893  }
19894  let targetEl = e.target;
19895  if (params.touchEventsTarget === 'wrapper') {
19896    if (!(0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.v)(targetEl, swiper.wrapperEl)) return;
19897  }
19898  if ('which' in e && e.which === 3) return;
19899  if ('button' in e && e.button > 0) return;
19900  if (data.isTouched && data.isMoved) return;
19901
19902  // change target el for shadow root component
19903  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';
19904  // eslint-disable-next-line
19905  const eventPath = e.composedPath ? e.composedPath() : e.path;
19906  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {
19907    targetEl = eventPath[0];
19908  }
19909  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;
19910  const isTargetShadow = !!(e.target && e.target.shadowRoot);
19911
19912  // use closestElement for shadow root element to get the actual closest for nested shadow root element
19913  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {
19914    swiper.allowClick = true;
19915    return;
19916  }
19917  if (params.swipeHandler) {
19918    if (!targetEl.closest(params.swipeHandler)) return;
19919  }
19920  touches.currentX = e.pageX;
19921  touches.currentY = e.pageY;
19922  const startX = touches.currentX;
19923  const startY = touches.currentY;
19924
19925  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore
19926
19927  if (!preventEdgeSwipe(swiper, e, startX)) {
19928    return;
19929  }
19930  Object.assign(data, {
19931    isTouched: true,
19932    isMoved: false,
19933    allowTouchCallbacks: true,
19934    isScrolling: undefined,
19935    startMoving: undefined
19936  });
19937  touches.startX = startX;
19938  touches.startY = startY;
19939  data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
19940  swiper.allowClick = true;
19941  swiper.updateSize();
19942  swiper.swipeDirection = undefined;
19943  if (params.threshold > 0) data.allowThresholdMove = false;
19944  let preventDefault = true;
19945  if (targetEl.matches(data.focusableElements)) {
19946    preventDefault = false;
19947    if (targetEl.nodeName === 'SELECT') {
19948      data.isTouched = false;
19949    }
19950  }
19951  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl) {
19952    document.activeElement.blur();
19953  }
19954  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;
19955  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {
19956    e.preventDefault();
19957  }
19958  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {
19959    swiper.freeMode.onTouchStart();
19960  }
19961  swiper.emit('touchStart', e);
19962}
19963
19964function onTouchMove(event) {
19965  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
19966  const swiper = this;
19967  const data = swiper.touchEventsData;
19968  const {
19969    params,
19970    touches,
19971    rtlTranslate: rtl,
19972    enabled
19973  } = swiper;
19974  if (!enabled) return;
19975  if (!params.simulateTouch && event.pointerType === 'mouse') return;
19976  let e = event;
19977  if (e.originalEvent) e = e.originalEvent;
19978  if (e.type === 'pointermove') {
19979    if (data.touchId !== null) return; // return from pointer if we use touch
19980    const id = e.pointerId;
19981    if (id !== data.pointerId) return;
19982  }
19983  let targetTouch;
19984  if (e.type === 'touchmove') {
19985    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
19986    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
19987  } else {
19988    targetTouch = e;
19989  }
19990  if (!data.isTouched) {
19991    if (data.startMoving && data.isScrolling) {
19992      swiper.emit('touchMoveOpposite', e);
19993    }
19994    return;
19995  }
19996  const pageX = targetTouch.pageX;
19997  const pageY = targetTouch.pageY;
19998  if (e.preventedByNestedSwiper) {
19999    touches.startX = pageX;
20000    touches.startY = pageY;
20001    return;
20002  }
20003  if (!swiper.allowTouchMove) {
20004    if (!e.target.matches(data.focusableElements)) {
20005      swiper.allowClick = false;
20006    }
20007    if (data.isTouched) {
20008      Object.assign(touches, {
20009        startX: pageX,
20010        startY: pageY,
20011        currentX: pageX,
20012        currentY: pageY
20013      });
20014      data.touchStartTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
20015    }
20016    return;
20017  }
20018  if (params.touchReleaseOnEdges && !params.loop) {
20019    if (swiper.isVertical()) {
20020      // Vertical
20021      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {
20022        data.isTouched = false;
20023        data.isMoved = false;
20024        return;
20025      }
20026    } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {
20027      return;
20028    }
20029  }
20030  if (document.activeElement) {
20031    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {
20032      data.isMoved = true;
20033      swiper.allowClick = false;
20034      return;
20035    }
20036  }
20037  if (data.allowTouchCallbacks) {
20038    swiper.emit('touchMove', e);
20039  }
20040  touches.previousX = touches.currentX;
20041  touches.previousY = touches.currentY;
20042  touches.currentX = pageX;
20043  touches.currentY = pageY;
20044  const diffX = touches.currentX - touches.startX;
20045  const diffY = touches.currentY - touches.startY;
20046  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;
20047  if (typeof data.isScrolling === 'undefined') {
20048    let touchAngle;
20049    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {
20050      data.isScrolling = false;
20051    } else {
20052      // eslint-disable-next-line
20053      if (diffX * diffX + diffY * diffY >= 25) {
20054        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;
20055        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;
20056      }
20057    }
20058  }
20059  if (data.isScrolling) {
20060    swiper.emit('touchMoveOpposite', e);
20061  }
20062  if (typeof data.startMoving === 'undefined') {
20063    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {
20064      data.startMoving = true;
20065    }
20066  }
20067  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {
20068    data.isTouched = false;
20069    return;
20070  }
20071  if (!data.startMoving) {
20072    return;
20073  }
20074  swiper.allowClick = false;
20075  if (!params.cssMode && e.cancelable) {
20076    e.preventDefault();
20077  }
20078  if (params.touchMoveStopPropagation && !params.nested) {
20079    e.stopPropagation();
20080  }
20081  let diff = swiper.isHorizontal() ? diffX : diffY;
20082  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;
20083  if (params.oneWayMovement) {
20084    diff = Math.abs(diff) * (rtl ? 1 : -1);
20085    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);
20086  }
20087  touches.diff = diff;
20088  diff *= params.touchRatio;
20089  if (rtl) {
20090    diff = -diff;
20091    touchesDiff = -touchesDiff;
20092  }
20093  const prevTouchesDirection = swiper.touchesDirection;
20094  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';
20095  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';
20096  const isLoop = swiper.params.loop && !params.cssMode;
20097  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;
20098  if (!data.isMoved) {
20099    if (isLoop && allowLoopFix) {
20100      swiper.loopFix({
20101        direction: swiper.swipeDirection
20102      });
20103    }
20104    data.startTranslate = swiper.getTranslate();
20105    swiper.setTransition(0);
20106    if (swiper.animating) {
20107      const evt = new window.CustomEvent('transitionend', {
20108        bubbles: true,
20109        cancelable: true,
20110        detail: {
20111          bySwiperTouchMove: true
20112        }
20113      });
20114      swiper.wrapperEl.dispatchEvent(evt);
20115    }
20116    data.allowMomentumBounce = false;
20117    // Grab Cursor
20118    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
20119      swiper.setGrabCursor(true);
20120    }
20121    swiper.emit('sliderFirstMove', e);
20122  }
20123  let loopFixed;
20124  new Date().getTime();
20125  if (data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {
20126    Object.assign(touches, {
20127      startX: pageX,
20128      startY: pageY,
20129      currentX: pageX,
20130      currentY: pageY,
20131      startTranslate: data.currentTranslate
20132    });
20133    data.loopSwapReset = true;
20134    data.startTranslate = data.currentTranslate;
20135    return;
20136  }
20137  swiper.emit('sliderMove', e);
20138  data.isMoved = true;
20139  data.currentTranslate = diff + data.startTranslate;
20140  let disableParentSwiper = true;
20141  let resistanceRatio = params.resistanceRatio;
20142  if (params.touchReleaseOnEdges) {
20143    resistanceRatio = 0;
20144  }
20145  if (diff > 0) {
20146    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] : swiper.minTranslate())) {
20147      swiper.loopFix({
20148        direction: 'prev',
20149        setTranslate: true,
20150        activeSlideIndex: 0
20151      });
20152    }
20153    if (data.currentTranslate > swiper.minTranslate()) {
20154      disableParentSwiper = false;
20155      if (params.resistance) {
20156        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;
20157      }
20158    }
20159  } else if (diff < 0) {
20160    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] : swiper.maxTranslate())) {
20161      swiper.loopFix({
20162        direction: 'next',
20163        setTranslate: true,
20164        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))
20165      });
20166    }
20167    if (data.currentTranslate < swiper.maxTranslate()) {
20168      disableParentSwiper = false;
20169      if (params.resistance) {
20170        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;
20171      }
20172    }
20173  }
20174  if (disableParentSwiper) {
20175    e.preventedByNestedSwiper = true;
20176  }
20177
20178  // Directions locks
20179  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {
20180    data.currentTranslate = data.startTranslate;
20181  }
20182  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {
20183    data.currentTranslate = data.startTranslate;
20184  }
20185  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {
20186    data.currentTranslate = data.startTranslate;
20187  }
20188
20189  // Threshold
20190  if (params.threshold > 0) {
20191    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {
20192      if (!data.allowThresholdMove) {
20193        data.allowThresholdMove = true;
20194        touches.startX = touches.currentX;
20195        touches.startY = touches.currentY;
20196        data.currentTranslate = data.startTranslate;
20197        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;
20198        return;
20199      }
20200    } else {
20201      data.currentTranslate = data.startTranslate;
20202      return;
20203    }
20204  }
20205  if (!params.followFinger || params.cssMode) return;
20206
20207  // Update active index in free mode
20208  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {
20209    swiper.updateActiveIndex();
20210    swiper.updateSlidesClasses();
20211  }
20212  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {
20213    swiper.freeMode.onTouchMove();
20214  }
20215  // Update progress
20216  swiper.updateProgress(data.currentTranslate);
20217  // Update translate
20218  swiper.setTranslate(data.currentTranslate);
20219}
20220
20221function onTouchEnd(event) {
20222  const swiper = this;
20223  const data = swiper.touchEventsData;
20224  let e = event;
20225  if (e.originalEvent) e = e.originalEvent;
20226  let targetTouch;
20227  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';
20228  if (!isTouchEvent) {
20229    if (data.touchId !== null) return; // return from pointer if we use touch
20230    if (e.pointerId !== data.pointerId) return;
20231    targetTouch = e;
20232  } else {
20233    targetTouch = [...e.changedTouches].filter(t => t.identifier === data.touchId)[0];
20234    if (!targetTouch || targetTouch.identifier !== data.touchId) return;
20235  }
20236  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {
20237    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);
20238    if (!proceed) {
20239      return;
20240    }
20241  }
20242  data.pointerId = null;
20243  data.touchId = null;
20244  const {
20245    params,
20246    touches,
20247    rtlTranslate: rtl,
20248    slidesGrid,
20249    enabled
20250  } = swiper;
20251  if (!enabled) return;
20252  if (!params.simulateTouch && e.pointerType === 'mouse') return;
20253  if (data.allowTouchCallbacks) {
20254    swiper.emit('touchEnd', e);
20255  }
20256  data.allowTouchCallbacks = false;
20257  if (!data.isTouched) {
20258    if (data.isMoved && params.grabCursor) {
20259      swiper.setGrabCursor(false);
20260    }
20261    data.isMoved = false;
20262    data.startMoving = false;
20263    return;
20264  }
20265
20266  // Return Grab Cursor
20267  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {
20268    swiper.setGrabCursor(false);
20269  }
20270
20271  // Time diff
20272  const touchEndTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
20273  const timeDiff = touchEndTime - data.touchStartTime;
20274
20275  // Tap, doubleTap, Click
20276  if (swiper.allowClick) {
20277    const pathTree = e.path || e.composedPath && e.composedPath();
20278    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);
20279    swiper.emit('tap click', e);
20280    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {
20281      swiper.emit('doubleTap doubleClick', e);
20282    }
20283  }
20284  data.lastClickTime = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.d)();
20285  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.n)(() => {
20286    if (!swiper.destroyed) swiper.allowClick = true;
20287  });
20288  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {
20289    data.isTouched = false;
20290    data.isMoved = false;
20291    data.startMoving = false;
20292    return;
20293  }
20294  data.isTouched = false;
20295  data.isMoved = false;
20296  data.startMoving = false;
20297  let currentPos;
20298  if (params.followFinger) {
20299    currentPos = rtl ? swiper.translate : -swiper.translate;
20300  } else {
20301    currentPos = -data.currentTranslate;
20302  }
20303  if (params.cssMode) {
20304    return;
20305  }
20306  if (params.freeMode && params.freeMode.enabled) {
20307    swiper.freeMode.onTouchEnd({
20308      currentPos
20309    });
20310    return;
20311  }
20312
20313  // Find current slide
20314  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;
20315  let stopIndex = 0;
20316  let groupSize = swiper.slidesSizesGrid[0];
20317  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {
20318    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
20319    if (typeof slidesGrid[i + increment] !== 'undefined') {
20320      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {
20321        stopIndex = i;
20322        groupSize = slidesGrid[i + increment] - slidesGrid[i];
20323      }
20324    } else if (swipeToLast || currentPos >= slidesGrid[i]) {
20325      stopIndex = i;
20326      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];
20327    }
20328  }
20329  let rewindFirstIndex = null;
20330  let rewindLastIndex = null;
20331  if (params.rewind) {
20332    if (swiper.isBeginning) {
20333      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;
20334    } else if (swiper.isEnd) {
20335      rewindFirstIndex = 0;
20336    }
20337  }
20338  // Find current slide size
20339  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;
20340  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;
20341  if (timeDiff > params.longSwipesMs) {
20342    // Long touches
20343    if (!params.longSwipes) {
20344      swiper.slideTo(swiper.activeIndex);
20345      return;
20346    }
20347    if (swiper.swipeDirection === 'next') {
20348      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);
20349    }
20350    if (swiper.swipeDirection === 'prev') {
20351      if (ratio > 1 - params.longSwipesRatio) {
20352        swiper.slideTo(stopIndex + increment);
20353      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {
20354        swiper.slideTo(rewindLastIndex);
20355      } else {
20356        swiper.slideTo(stopIndex);
20357      }
20358    }
20359  } else {
20360    // Short swipes
20361    if (!params.shortSwipes) {
20362      swiper.slideTo(swiper.activeIndex);
20363      return;
20364    }
20365    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);
20366    if (!isNavButtonTarget) {
20367      if (swiper.swipeDirection === 'next') {
20368        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);
20369      }
20370      if (swiper.swipeDirection === 'prev') {
20371        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);
20372      }
20373    } else if (e.target === swiper.navigation.nextEl) {
20374      swiper.slideTo(stopIndex + increment);
20375    } else {
20376      swiper.slideTo(stopIndex);
20377    }
20378  }
20379}
20380
20381function onResize() {
20382  const swiper = this;
20383  const {
20384    params,
20385    el
20386  } = swiper;
20387  if (el && el.offsetWidth === 0) return;
20388
20389  // Breakpoints
20390  if (params.breakpoints) {
20391    swiper.setBreakpoint();
20392  }
20393
20394  // Save locks
20395  const {
20396    allowSlideNext,
20397    allowSlidePrev,
20398    snapGrid
20399  } = swiper;
20400  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;
20401
20402  // Disable locks on resize
20403  swiper.allowSlideNext = true;
20404  swiper.allowSlidePrev = true;
20405  swiper.updateSize();
20406  swiper.updateSlides();
20407  swiper.updateSlidesClasses();
20408  const isVirtualLoop = isVirtual && params.loop;
20409  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {
20410    swiper.slideTo(swiper.slides.length - 1, 0, false, true);
20411  } else {
20412    if (swiper.params.loop && !isVirtual) {
20413      swiper.slideToLoop(swiper.realIndex, 0, false, true);
20414    } else {
20415      swiper.slideTo(swiper.activeIndex, 0, false, true);
20416    }
20417  }
20418  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
20419    clearTimeout(swiper.autoplay.resizeTimeout);
20420    swiper.autoplay.resizeTimeout = setTimeout(() => {
20421      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {
20422        swiper.autoplay.resume();
20423      }
20424    }, 500);
20425  }
20426  // Return locks after resize
20427  swiper.allowSlidePrev = allowSlidePrev;
20428  swiper.allowSlideNext = allowSlideNext;
20429  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {
20430    swiper.checkOverflow();
20431  }
20432}
20433
20434function onClick(e) {
20435  const swiper = this;
20436  if (!swiper.enabled) return;
20437  if (!swiper.allowClick) {
20438    if (swiper.params.preventClicks) e.preventDefault();
20439    if (swiper.params.preventClicksPropagation && swiper.animating) {
20440      e.stopPropagation();
20441      e.stopImmediatePropagation();
20442    }
20443  }
20444}
20445
20446function onScroll() {
20447  const swiper = this;
20448  const {
20449    wrapperEl,
20450    rtlTranslate,
20451    enabled
20452  } = swiper;
20453  if (!enabled) return;
20454  swiper.previousTranslate = swiper.translate;
20455  if (swiper.isHorizontal()) {
20456    swiper.translate = -wrapperEl.scrollLeft;
20457  } else {
20458    swiper.translate = -wrapperEl.scrollTop;
20459  }
20460  // eslint-disable-next-line
20461  if (swiper.translate === 0) swiper.translate = 0;
20462  swiper.updateActiveIndex();
20463  swiper.updateSlidesClasses();
20464  let newProgress;
20465  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();
20466  if (translatesDiff === 0) {
20467    newProgress = 0;
20468  } else {
20469    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;
20470  }
20471  if (newProgress !== swiper.progress) {
20472    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);
20473  }
20474  swiper.emit('setTranslate', swiper.translate, false);
20475}
20476
20477function onLoad(e) {
20478  const swiper = this;
20479  processLazyPreloader(swiper, e.target);
20480  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {
20481    return;
20482  }
20483  swiper.update();
20484}
20485
20486function onDocumentTouchStart() {
20487  const swiper = this;
20488  if (swiper.documentTouchHandlerProceeded) return;
20489  swiper.documentTouchHandlerProceeded = true;
20490  if (swiper.params.touchReleaseOnEdges) {
20491    swiper.el.style.touchAction = 'auto';
20492  }
20493}
20494
20495const events = (swiper, method) => {
20496  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
20497  const {
20498    params,
20499    el,
20500    wrapperEl,
20501    device
20502  } = swiper;
20503  const capture = !!params.nested;
20504  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';
20505  const swiperMethod = method;
20506  if (!el || typeof el === 'string') return;
20507
20508  // Touch Events
20509  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {
20510    passive: false,
20511    capture
20512  });
20513  el[domMethod]('touchstart', swiper.onTouchStart, {
20514    passive: false
20515  });
20516  el[domMethod]('pointerdown', swiper.onTouchStart, {
20517    passive: false
20518  });
20519  document[domMethod]('touchmove', swiper.onTouchMove, {
20520    passive: false,
20521    capture
20522  });
20523  document[domMethod]('pointermove', swiper.onTouchMove, {
20524    passive: false,
20525    capture
20526  });
20527  document[domMethod]('touchend', swiper.onTouchEnd, {
20528    passive: true
20529  });
20530  document[domMethod]('pointerup', swiper.onTouchEnd, {
20531    passive: true
20532  });
20533  document[domMethod]('pointercancel', swiper.onTouchEnd, {
20534    passive: true
20535  });
20536  document[domMethod]('touchcancel', swiper.onTouchEnd, {
20537    passive: true
20538  });
20539  document[domMethod]('pointerout', swiper.onTouchEnd, {
20540    passive: true
20541  });
20542  document[domMethod]('pointerleave', swiper.onTouchEnd, {
20543    passive: true
20544  });
20545  document[domMethod]('contextmenu', swiper.onTouchEnd, {
20546    passive: true
20547  });
20548
20549  // Prevent Links Clicks
20550  if (params.preventClicks || params.preventClicksPropagation) {
20551    el[domMethod]('click', swiper.onClick, true);
20552  }
20553  if (params.cssMode) {
20554    wrapperEl[domMethod]('scroll', swiper.onScroll);
20555  }
20556
20557  // Resize handler
20558  if (params.updateOnWindowResize) {
20559    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);
20560  } else {
20561    swiper[swiperMethod]('observerUpdate', onResize, true);
20562  }
20563
20564  // Images loader
20565  el[domMethod]('load', swiper.onLoad, {
20566    capture: true
20567  });
20568};
20569function attachEvents() {
20570  const swiper = this;
20571  const {
20572    params
20573  } = swiper;
20574  swiper.onTouchStart = onTouchStart.bind(swiper);
20575  swiper.onTouchMove = onTouchMove.bind(swiper);
20576  swiper.onTouchEnd = onTouchEnd.bind(swiper);
20577  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);
20578  if (params.cssMode) {
20579    swiper.onScroll = onScroll.bind(swiper);
20580  }
20581  swiper.onClick = onClick.bind(swiper);
20582  swiper.onLoad = onLoad.bind(swiper);
20583  events(swiper, 'on');
20584}
20585function detachEvents() {
20586  const swiper = this;
20587  events(swiper, 'off');
20588}
20589var events$1 = {
20590  attachEvents,
20591  detachEvents
20592};
20593
20594const isGridEnabled = (swiper, params) => {
20595  return swiper.grid && params.grid && params.grid.rows > 1;
20596};
20597function setBreakpoint() {
20598  const swiper = this;
20599  const {
20600    realIndex,
20601    initialized,
20602    params,
20603    el
20604  } = swiper;
20605  const breakpoints = params.breakpoints;
20606  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;
20607
20608  // Get breakpoint for window width and update parameters
20609  const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);
20610  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;
20611  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;
20612  const breakpointParams = breakpointOnlyParams || swiper.originalParams;
20613  const wasMultiRow = isGridEnabled(swiper, params);
20614  const isMultiRow = isGridEnabled(swiper, breakpointParams);
20615  const wasGrabCursor = swiper.params.grabCursor;
20616  const isGrabCursor = breakpointParams.grabCursor;
20617  const wasEnabled = params.enabled;
20618  if (wasMultiRow && !isMultiRow) {
20619    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);
20620    swiper.emitContainerClasses();
20621  } else if (!wasMultiRow && isMultiRow) {
20622    el.classList.add(`${params.containerModifierClass}grid`);
20623    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {
20624      el.classList.add(`${params.containerModifierClass}grid-column`);
20625    }
20626    swiper.emitContainerClasses();
20627  }
20628  if (wasGrabCursor && !isGrabCursor) {
20629    swiper.unsetGrabCursor();
20630  } else if (!wasGrabCursor && isGrabCursor) {
20631    swiper.setGrabCursor();
20632  }
20633
20634  // Toggle navigation, pagination, scrollbar
20635  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {
20636    if (typeof breakpointParams[prop] === 'undefined') return;
20637    const wasModuleEnabled = params[prop] && params[prop].enabled;
20638    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;
20639    if (wasModuleEnabled && !isModuleEnabled) {
20640      swiper[prop].disable();
20641    }
20642    if (!wasModuleEnabled && isModuleEnabled) {
20643      swiper[prop].enable();
20644    }
20645  });
20646  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;
20647  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);
20648  const wasLoop = params.loop;
20649  if (directionChanged && initialized) {
20650    swiper.changeDirection();
20651  }
20652  (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(swiper.params, breakpointParams);
20653  const isEnabled = swiper.params.enabled;
20654  const hasLoop = swiper.params.loop;
20655  Object.assign(swiper, {
20656    allowTouchMove: swiper.params.allowTouchMove,
20657    allowSlideNext: swiper.params.allowSlideNext,
20658    allowSlidePrev: swiper.params.allowSlidePrev
20659  });
20660  if (wasEnabled && !isEnabled) {
20661    swiper.disable();
20662  } else if (!wasEnabled && isEnabled) {
20663    swiper.enable();
20664  }
20665  swiper.currentBreakpoint = breakpoint;
20666  swiper.emit('_beforeBreakpoint', breakpointParams);
20667  if (initialized) {
20668    if (needsReLoop) {
20669      swiper.loopDestroy();
20670      swiper.loopCreate(realIndex);
20671      swiper.updateSlides();
20672    } else if (!wasLoop && hasLoop) {
20673      swiper.loopCreate(realIndex);
20674      swiper.updateSlides();
20675    } else if (wasLoop && !hasLoop) {
20676      swiper.loopDestroy();
20677    }
20678  }
20679  swiper.emit('breakpoint', breakpointParams);
20680}
20681
20682function getBreakpoint(breakpoints, base, containerEl) {
20683  if (base === void 0) {
20684    base = 'window';
20685  }
20686  if (!breakpoints || base === 'container' && !containerEl) return undefined;
20687  let breakpoint = false;
20688  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
20689  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;
20690  const points = Object.keys(breakpoints).map(point => {
20691    if (typeof point === 'string' && point.indexOf('@') === 0) {
20692      const minRatio = parseFloat(point.substr(1));
20693      const value = currentHeight * minRatio;
20694      return {
20695        value,
20696        point
20697      };
20698    }
20699    return {
20700      value: point,
20701      point
20702    };
20703  });
20704  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));
20705  for (let i = 0; i < points.length; i += 1) {
20706    const {
20707      point,
20708      value
20709    } = points[i];
20710    if (base === 'window') {
20711      if (window.matchMedia(`(min-width: ${value}px)`).matches) {
20712        breakpoint = point;
20713      }
20714    } else if (value <= containerEl.clientWidth) {
20715      breakpoint = point;
20716    }
20717  }
20718  return breakpoint || 'max';
20719}
20720
20721var breakpoints = {
20722  setBreakpoint,
20723  getBreakpoint
20724};
20725
20726function prepareClasses(entries, prefix) {
20727  const resultClasses = [];
20728  entries.forEach(item => {
20729    if (typeof item === 'object') {
20730      Object.keys(item).forEach(classNames => {
20731        if (item[classNames]) {
20732          resultClasses.push(prefix + classNames);
20733        }
20734      });
20735    } else if (typeof item === 'string') {
20736      resultClasses.push(prefix + item);
20737    }
20738  });
20739  return resultClasses;
20740}
20741function addClasses() {
20742  const swiper = this;
20743  const {
20744    classNames,
20745    params,
20746    rtl,
20747    el,
20748    device
20749  } = swiper;
20750  // prettier-ignore
20751  const suffixes = prepareClasses(['initialized', params.direction, {
20752    'free-mode': swiper.params.freeMode && params.freeMode.enabled
20753  }, {
20754    'autoheight': params.autoHeight
20755  }, {
20756    'rtl': rtl
20757  }, {
20758    'grid': params.grid && params.grid.rows > 1
20759  }, {
20760    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'
20761  }, {
20762    'android': device.android
20763  }, {
20764    'ios': device.ios
20765  }, {
20766    'css-mode': params.cssMode
20767  }, {
20768    'centered': params.cssMode && params.centeredSlides
20769  }, {
20770    'watch-progress': params.watchSlidesProgress
20771  }], params.containerModifierClass);
20772  classNames.push(...suffixes);
20773  el.classList.add(...classNames);
20774  swiper.emitContainerClasses();
20775}
20776
20777function removeClasses() {
20778  const swiper = this;
20779  const {
20780    el,
20781    classNames
20782  } = swiper;
20783  if (!el || typeof el === 'string') return;
20784  el.classList.remove(...classNames);
20785  swiper.emitContainerClasses();
20786}
20787
20788var classes = {
20789  addClasses,
20790  removeClasses
20791};
20792
20793function checkOverflow() {
20794  const swiper = this;
20795  const {
20796    isLocked: wasLocked,
20797    params
20798  } = swiper;
20799  const {
20800    slidesOffsetBefore
20801  } = params;
20802  if (slidesOffsetBefore) {
20803    const lastSlideIndex = swiper.slides.length - 1;
20804    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;
20805    swiper.isLocked = swiper.size > lastSlideRightEdge;
20806  } else {
20807    swiper.isLocked = swiper.snapGrid.length === 1;
20808  }
20809  if (params.allowSlideNext === true) {
20810    swiper.allowSlideNext = !swiper.isLocked;
20811  }
20812  if (params.allowSlidePrev === true) {
20813    swiper.allowSlidePrev = !swiper.isLocked;
20814  }
20815  if (wasLocked && wasLocked !== swiper.isLocked) {
20816    swiper.isEnd = false;
20817  }
20818  if (wasLocked !== swiper.isLocked) {
20819    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');
20820  }
20821}
20822var checkOverflow$1 = {
20823  checkOverflow
20824};
20825
20826var defaults = {
20827  init: true,
20828  direction: 'horizontal',
20829  oneWayMovement: false,
20830  swiperElementNodeName: 'SWIPER-CONTAINER',
20831  touchEventsTarget: 'wrapper',
20832  initialSlide: 0,
20833  speed: 300,
20834  cssMode: false,
20835  updateOnWindowResize: true,
20836  resizeObserver: true,
20837  nested: false,
20838  createElements: false,
20839  eventsPrefix: 'swiper',
20840  enabled: true,
20841  focusableElements: 'input, select, option, textarea, button, video, label',
20842  // Overrides
20843  width: null,
20844  height: null,
20845  //
20846  preventInteractionOnTransition: false,
20847  // ssr
20848  userAgent: null,
20849  url: null,
20850  // To support iOS's swipe-to-go-back gesture (when being used in-app).
20851  edgeSwipeDetection: false,
20852  edgeSwipeThreshold: 20,
20853  // Autoheight
20854  autoHeight: false,
20855  // Set wrapper width
20856  setWrapperSize: false,
20857  // Virtual Translate
20858  virtualTranslate: false,
20859  // Effects
20860  effect: 'slide',
20861  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'
20862
20863  // Breakpoints
20864  breakpoints: undefined,
20865  breakpointsBase: 'window',
20866  // Slides grid
20867  spaceBetween: 0,
20868  slidesPerView: 1,
20869  slidesPerGroup: 1,
20870  slidesPerGroupSkip: 0,
20871  slidesPerGroupAuto: false,
20872  centeredSlides: false,
20873  centeredSlidesBounds: false,
20874  slidesOffsetBefore: 0,
20875  // in px
20876  slidesOffsetAfter: 0,
20877  // in px
20878  normalizeSlideIndex: true,
20879  centerInsufficientSlides: false,
20880  // Disable swiper and hide navigation when container not overflow
20881  watchOverflow: true,
20882  // Round length
20883  roundLengths: false,
20884  // Touches
20885  touchRatio: 1,
20886  touchAngle: 45,
20887  simulateTouch: true,
20888  shortSwipes: true,
20889  longSwipes: true,
20890  longSwipesRatio: 0.5,
20891  longSwipesMs: 300,
20892  followFinger: true,
20893  allowTouchMove: true,
20894  threshold: 5,
20895  touchMoveStopPropagation: false,
20896  touchStartPreventDefault: true,
20897  touchStartForcePreventDefault: false,
20898  touchReleaseOnEdges: false,
20899  // Unique Navigation Elements
20900  uniqueNavElements: true,
20901  // Resistance
20902  resistance: true,
20903  resistanceRatio: 0.85,
20904  // Progress
20905  watchSlidesProgress: false,
20906  // Cursor
20907  grabCursor: false,
20908  // Clicks
20909  preventClicks: true,
20910  preventClicksPropagation: true,
20911  slideToClickedSlide: false,
20912  // loop
20913  loop: false,
20914  loopAddBlankSlides: true,
20915  loopAdditionalSlides: 0,
20916  loopPreventsSliding: true,
20917  // rewind
20918  rewind: false,
20919  // Swiping/no swiping
20920  allowSlidePrev: true,
20921  allowSlideNext: true,
20922  swipeHandler: null,
20923  // '.swipe-handler',
20924  noSwiping: true,
20925  noSwipingClass: 'swiper-no-swiping',
20926  noSwipingSelector: null,
20927  // Passive Listeners
20928  passiveListeners: true,
20929  maxBackfaceHiddenSlides: 10,
20930  // NS
20931  containerModifierClass: 'swiper-',
20932  // NEW
20933  slideClass: 'swiper-slide',
20934  slideBlankClass: 'swiper-slide-blank',
20935  slideActiveClass: 'swiper-slide-active',
20936  slideVisibleClass: 'swiper-slide-visible',
20937  slideFullyVisibleClass: 'swiper-slide-fully-visible',
20938  slideNextClass: 'swiper-slide-next',
20939  slidePrevClass: 'swiper-slide-prev',
20940  wrapperClass: 'swiper-wrapper',
20941  lazyPreloaderClass: 'swiper-lazy-preloader',
20942  lazyPreloadPrevNext: 0,
20943  // Callbacks
20944  runCallbacksOnInit: true,
20945  // Internals
20946  _emitClasses: false
20947};
20948
20949function moduleExtendParams(params, allModulesParams) {
20950  return function extendParams(obj) {
20951    if (obj === void 0) {
20952      obj = {};
20953    }
20954    const moduleParamName = Object.keys(obj)[0];
20955    const moduleParams = obj[moduleParamName];
20956    if (typeof moduleParams !== 'object' || moduleParams === null) {
20957      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
20958      return;
20959    }
20960    if (params[moduleParamName] === true) {
20961      params[moduleParamName] = {
20962        enabled: true
20963      };
20964    }
20965    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {
20966      params[moduleParamName].auto = true;
20967    }
20968    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {
20969      params[moduleParamName].auto = true;
20970    }
20971    if (!(moduleParamName in params && 'enabled' in moduleParams)) {
20972      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
20973      return;
20974    }
20975    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {
20976      params[moduleParamName].enabled = true;
20977    }
20978    if (!params[moduleParamName]) params[moduleParamName] = {
20979      enabled: false
20980    };
20981    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(allModulesParams, obj);
20982  };
20983}
20984
20985/* eslint no-param-reassign: "off" */
20986const prototypes = {
20987  eventsEmitter,
20988  update,
20989  translate,
20990  transition,
20991  slide,
20992  loop,
20993  grabCursor,
20994  events: events$1,
20995  breakpoints,
20996  checkOverflow: checkOverflow$1,
20997  classes
20998};
20999const extendedDefaults = {};
21000class Swiper {
21001  constructor() {
21002    let el;
21003    let params;
21004    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
21005      args[_key] = arguments[_key];
21006    }
21007    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {
21008      params = args[0];
21009    } else {
21010      [el, params] = args;
21011    }
21012    if (!params) params = {};
21013    params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
21014    if (el && !params.el) params.el = el;
21015    const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
21016    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {
21017      const swipers = [];
21018      document.querySelectorAll(params.el).forEach(containerEl => {
21019        const newParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params, {
21020          el: containerEl
21021        });
21022        swipers.push(new Swiper(newParams));
21023      });
21024      // eslint-disable-next-line no-constructor-return
21025      return swipers;
21026    }
21027
21028    // Swiper Instance
21029    const swiper = this;
21030    swiper.__swiper__ = true;
21031    swiper.support = getSupport();
21032    swiper.device = getDevice({
21033      userAgent: params.userAgent
21034    });
21035    swiper.browser = getBrowser();
21036    swiper.eventsListeners = {};
21037    swiper.eventsAnyListeners = [];
21038    swiper.modules = [...swiper.__modules__];
21039    if (params.modules && Array.isArray(params.modules)) {
21040      swiper.modules.push(...params.modules);
21041    }
21042    const allModulesParams = {};
21043    swiper.modules.forEach(mod => {
21044      mod({
21045        params,
21046        swiper,
21047        extendParams: moduleExtendParams(params, allModulesParams),
21048        on: swiper.on.bind(swiper),
21049        once: swiper.once.bind(swiper),
21050        off: swiper.off.bind(swiper),
21051        emit: swiper.emit.bind(swiper)
21052      });
21053    });
21054
21055    // Extend defaults with modules params
21056    const swiperParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, defaults, allModulesParams);
21057
21058    // Extend defaults with passed params
21059    swiper.params = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiperParams, extendedDefaults, params);
21060    swiper.originalParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, swiper.params);
21061    swiper.passedParams = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)({}, params);
21062
21063    // add event listeners
21064    if (swiper.params && swiper.params.on) {
21065      Object.keys(swiper.params.on).forEach(eventName => {
21066        swiper.on(eventName, swiper.params.on[eventName]);
21067      });
21068    }
21069    if (swiper.params && swiper.params.onAny) {
21070      swiper.onAny(swiper.params.onAny);
21071    }
21072
21073    // Extend Swiper
21074    Object.assign(swiper, {
21075      enabled: swiper.params.enabled,
21076      el,
21077      // Classes
21078      classNames: [],
21079      // Slides
21080      slides: [],
21081      slidesGrid: [],
21082      snapGrid: [],
21083      slidesSizesGrid: [],
21084      // isDirection
21085      isHorizontal() {
21086        return swiper.params.direction === 'horizontal';
21087      },
21088      isVertical() {
21089        return swiper.params.direction === 'vertical';
21090      },
21091      // Indexes
21092      activeIndex: 0,
21093      realIndex: 0,
21094      //
21095      isBeginning: true,
21096      isEnd: false,
21097      // Props
21098      translate: 0,
21099      previousTranslate: 0,
21100      progress: 0,
21101      velocity: 0,
21102      animating: false,
21103      cssOverflowAdjustment() {
21104        // Returns 0 unless `translate` is > 2**23
21105        // Should be subtracted from css values to prevent overflow
21106        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;
21107      },
21108      // Locks
21109      allowSlideNext: swiper.params.allowSlideNext,
21110      allowSlidePrev: swiper.params.allowSlidePrev,
21111      // Touch Events
21112      touchEventsData: {
21113        isTouched: undefined,
21114        isMoved: undefined,
21115        allowTouchCallbacks: undefined,
21116        touchStartTime: undefined,
21117        isScrolling: undefined,
21118        currentTranslate: undefined,
21119        startTranslate: undefined,
21120        allowThresholdMove: undefined,
21121        // Form elements to match
21122        focusableElements: swiper.params.focusableElements,
21123        // Last click time
21124        lastClickTime: 0,
21125        clickTimeout: undefined,
21126        // Velocities
21127        velocities: [],
21128        allowMomentumBounce: undefined,
21129        startMoving: undefined,
21130        pointerId: null,
21131        touchId: null
21132      },
21133      // Clicks
21134      allowClick: true,
21135      // Touches
21136      allowTouchMove: swiper.params.allowTouchMove,
21137      touches: {
21138        startX: 0,
21139        startY: 0,
21140        currentX: 0,
21141        currentY: 0,
21142        diff: 0
21143      },
21144      // Images
21145      imagesToLoad: [],
21146      imagesLoaded: 0
21147    });
21148    swiper.emit('_swiper');
21149
21150    // Init
21151    if (swiper.params.init) {
21152      swiper.init();
21153    }
21154
21155    // Return app instance
21156    // eslint-disable-next-line no-constructor-return
21157    return swiper;
21158  }
21159  getDirectionLabel(property) {
21160    if (this.isHorizontal()) {
21161      return property;
21162    }
21163    // prettier-ignore
21164    return {
21165      'width': 'height',
21166      'margin-top': 'margin-left',
21167      'margin-bottom ': 'margin-right',
21168      'margin-left': 'margin-top',
21169      'margin-right': 'margin-bottom',
21170      'padding-left': 'padding-top',
21171      'padding-right': 'padding-bottom',
21172      'marginRight': 'marginBottom'
21173    }[property];
21174  }
21175  getSlideIndex(slideEl) {
21176    const {
21177      slidesEl,
21178      params
21179    } = this;
21180    const slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
21181    const firstSlideIndex = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slides[0]);
21182    return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.h)(slideEl) - firstSlideIndex;
21183  }
21184  getSlideIndexByData(index) {
21185    return this.getSlideIndex(this.slides.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);
21186  }
21187  recalcSlides() {
21188    const swiper = this;
21189    const {
21190      slidesEl,
21191      params
21192    } = swiper;
21193    swiper.slides = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(slidesEl, `.${params.slideClass}, swiper-slide`);
21194  }
21195  enable() {
21196    const swiper = this;
21197    if (swiper.enabled) return;
21198    swiper.enabled = true;
21199    if (swiper.params.grabCursor) {
21200      swiper.setGrabCursor();
21201    }
21202    swiper.emit('enable');
21203  }
21204  disable() {
21205    const swiper = this;
21206    if (!swiper.enabled) return;
21207    swiper.enabled = false;
21208    if (swiper.params.grabCursor) {
21209      swiper.unsetGrabCursor();
21210    }
21211    swiper.emit('disable');
21212  }
21213  setProgress(progress, speed) {
21214    const swiper = this;
21215    progress = Math.min(Math.max(progress, 0), 1);
21216    const min = swiper.minTranslate();
21217    const max = swiper.maxTranslate();
21218    const current = (max - min) * progress + min;
21219    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);
21220    swiper.updateActiveIndex();
21221    swiper.updateSlidesClasses();
21222  }
21223  emitContainerClasses() {
21224    const swiper = this;
21225    if (!swiper.params._emitClasses || !swiper.el) return;
21226    const cls = swiper.el.className.split(' ').filter(className => {
21227      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;
21228    });
21229    swiper.emit('_containerClasses', cls.join(' '));
21230  }
21231  getSlideClasses(slideEl) {
21232    const swiper = this;
21233    if (swiper.destroyed) return '';
21234    return slideEl.className.split(' ').filter(className => {
21235      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;
21236    }).join(' ');
21237  }
21238  emitSlidesClasses() {
21239    const swiper = this;
21240    if (!swiper.params._emitClasses || !swiper.el) return;
21241    const updates = [];
21242    swiper.slides.forEach(slideEl => {
21243      const classNames = swiper.getSlideClasses(slideEl);
21244      updates.push({
21245        slideEl,
21246        classNames
21247      });
21248      swiper.emit('_slideClass', slideEl, classNames);
21249    });
21250    swiper.emit('_slideClasses', updates);
21251  }
21252  slidesPerViewDynamic(view, exact) {
21253    if (view === void 0) {
21254      view = 'current';
21255    }
21256    if (exact === void 0) {
21257      exact = false;
21258    }
21259    const swiper = this;
21260    const {
21261      params,
21262      slides,
21263      slidesGrid,
21264      slidesSizesGrid,
21265      size: swiperSize,
21266      activeIndex
21267    } = swiper;
21268    let spv = 1;
21269    if (typeof params.slidesPerView === 'number') return params.slidesPerView;
21270    if (params.centeredSlides) {
21271      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;
21272      let breakLoop;
21273      for (let i = activeIndex + 1; i < slides.length; i += 1) {
21274        if (slides[i] && !breakLoop) {
21275          slideSize += Math.ceil(slides[i].swiperSlideSize);
21276          spv += 1;
21277          if (slideSize > swiperSize) breakLoop = true;
21278        }
21279      }
21280      for (let i = activeIndex - 1; i >= 0; i -= 1) {
21281        if (slides[i] && !breakLoop) {
21282          slideSize += slides[i].swiperSlideSize;
21283          spv += 1;
21284          if (slideSize > swiperSize) breakLoop = true;
21285        }
21286      }
21287    } else {
21288      // eslint-disable-next-line
21289      if (view === 'current') {
21290        for (let i = activeIndex + 1; i < slides.length; i += 1) {
21291          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;
21292          if (slideInView) {
21293            spv += 1;
21294          }
21295        }
21296      } else {
21297        // previous
21298        for (let i = activeIndex - 1; i >= 0; i -= 1) {
21299          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;
21300          if (slideInView) {
21301            spv += 1;
21302          }
21303        }
21304      }
21305    }
21306    return spv;
21307  }
21308  update() {
21309    const swiper = this;
21310    if (!swiper || swiper.destroyed) return;
21311    const {
21312      snapGrid,
21313      params
21314    } = swiper;
21315    // Breakpoints
21316    if (params.breakpoints) {
21317      swiper.setBreakpoint();
21318    }
21319    [...swiper.el.querySelectorAll('[loading="lazy"]')].forEach(imageEl => {
21320      if (imageEl.complete) {
21321        processLazyPreloader(swiper, imageEl);
21322      }
21323    });
21324    swiper.updateSize();
21325    swiper.updateSlides();
21326    swiper.updateProgress();
21327    swiper.updateSlidesClasses();
21328    function setTranslate() {
21329      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;
21330      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());
21331      swiper.setTranslate(newTranslate);
21332      swiper.updateActiveIndex();
21333      swiper.updateSlidesClasses();
21334    }
21335    let translated;
21336    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {
21337      setTranslate();
21338      if (params.autoHeight) {
21339        swiper.updateAutoHeight();
21340      }
21341    } else {
21342      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {
21343        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;
21344        translated = swiper.slideTo(slides.length - 1, 0, false, true);
21345      } else {
21346        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);
21347      }
21348      if (!translated) {
21349        setTranslate();
21350      }
21351    }
21352    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {
21353      swiper.checkOverflow();
21354    }
21355    swiper.emit('update');
21356  }
21357  changeDirection(newDirection, needUpdate) {
21358    if (needUpdate === void 0) {
21359      needUpdate = true;
21360    }
21361    const swiper = this;
21362    const currentDirection = swiper.params.direction;
21363    if (!newDirection) {
21364      // eslint-disable-next-line
21365      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';
21366    }
21367    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {
21368      return swiper;
21369    }
21370    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);
21371    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);
21372    swiper.emitContainerClasses();
21373    swiper.params.direction = newDirection;
21374    swiper.slides.forEach(slideEl => {
21375      if (newDirection === 'vertical') {
21376        slideEl.style.width = '';
21377      } else {
21378        slideEl.style.height = '';
21379      }
21380    });
21381    swiper.emit('changeDirection');
21382    if (needUpdate) swiper.update();
21383    return swiper;
21384  }
21385  changeLanguageDirection(direction) {
21386    const swiper = this;
21387    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;
21388    swiper.rtl = direction === 'rtl';
21389    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;
21390    if (swiper.rtl) {
21391      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);
21392      swiper.el.dir = 'rtl';
21393    } else {
21394      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);
21395      swiper.el.dir = 'ltr';
21396    }
21397    swiper.update();
21398  }
21399  mount(element) {
21400    const swiper = this;
21401    if (swiper.mounted) return true;
21402
21403    // Find el
21404    let el = element || swiper.params.el;
21405    if (typeof el === 'string') {
21406      el = document.querySelector(el);
21407    }
21408    if (!el) {
21409      return false;
21410    }
21411    el.swiper = swiper;
21412    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {
21413      swiper.isElement = true;
21414    }
21415    const getWrapperSelector = () => {
21416      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;
21417    };
21418    const getWrapper = () => {
21419      if (el && el.shadowRoot && el.shadowRoot.querySelector) {
21420        const res = el.shadowRoot.querySelector(getWrapperSelector());
21421        // Children needs to return slot items
21422        return res;
21423      }
21424      return (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, getWrapperSelector())[0];
21425    };
21426    // Find Wrapper
21427    let wrapperEl = getWrapper();
21428    if (!wrapperEl && swiper.params.createElements) {
21429      wrapperEl = (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.c)('div', swiper.params.wrapperClass);
21430      el.append(wrapperEl);
21431      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.e)(el, `.${swiper.params.slideClass}`).forEach(slideEl => {
21432        wrapperEl.append(slideEl);
21433      });
21434    }
21435    Object.assign(swiper, {
21436      el,
21437      wrapperEl,
21438      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
21439      hostEl: swiper.isElement ? el.parentNode.host : el,
21440      mounted: true,
21441      // RTL
21442      rtl: el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl',
21443      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(el, 'direction') === 'rtl'),
21444      wrongRTL: (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.p)(wrapperEl, 'display') === '-webkit-box'
21445    });
21446    return true;
21447  }
21448  init(el) {
21449    const swiper = this;
21450    if (swiper.initialized) return swiper;
21451    const mounted = swiper.mount(el);
21452    if (mounted === false) return swiper;
21453    swiper.emit('beforeInit');
21454
21455    // Set breakpoint
21456    if (swiper.params.breakpoints) {
21457      swiper.setBreakpoint();
21458    }
21459
21460    // Add Classes
21461    swiper.addClasses();
21462
21463    // Update size
21464    swiper.updateSize();
21465
21466    // Update slides
21467    swiper.updateSlides();
21468    if (swiper.params.watchOverflow) {
21469      swiper.checkOverflow();
21470    }
21471
21472    // Set Grab Cursor
21473    if (swiper.params.grabCursor && swiper.enabled) {
21474      swiper.setGrabCursor();
21475    }
21476
21477    // Slide To Initial Slide
21478    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {
21479      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);
21480    } else {
21481      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);
21482    }
21483
21484    // Create loop
21485    if (swiper.params.loop) {
21486      swiper.loopCreate();
21487    }
21488
21489    // Attach events
21490    swiper.attachEvents();
21491    const lazyElements = [...swiper.el.querySelectorAll('[loading="lazy"]')];
21492    if (swiper.isElement) {
21493      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading="lazy"]'));
21494    }
21495    lazyElements.forEach(imageEl => {
21496      if (imageEl.complete) {
21497        processLazyPreloader(swiper, imageEl);
21498      } else {
21499        imageEl.addEventListener('load', e => {
21500          processLazyPreloader(swiper, e.target);
21501        });
21502      }
21503    });
21504    preload(swiper);
21505
21506    // Init Flag
21507    swiper.initialized = true;
21508    preload(swiper);
21509
21510    // Emit
21511    swiper.emit('init');
21512    swiper.emit('afterInit');
21513    return swiper;
21514  }
21515  destroy(deleteInstance, cleanStyles) {
21516    if (deleteInstance === void 0) {
21517      deleteInstance = true;
21518    }
21519    if (cleanStyles === void 0) {
21520      cleanStyles = true;
21521    }
21522    const swiper = this;
21523    const {
21524      params,
21525      el,
21526      wrapperEl,
21527      slides
21528    } = swiper;
21529    if (typeof swiper.params === 'undefined' || swiper.destroyed) {
21530      return null;
21531    }
21532    swiper.emit('beforeDestroy');
21533
21534    // Init Flag
21535    swiper.initialized = false;
21536
21537    // Detach events
21538    swiper.detachEvents();
21539
21540    // Destroy loop
21541    if (params.loop) {
21542      swiper.loopDestroy();
21543    }
21544
21545    // Cleanup styles
21546    if (cleanStyles) {
21547      swiper.removeClasses();
21548      if (el && typeof el !== 'string') {
21549        el.removeAttribute('style');
21550      }
21551      if (wrapperEl) {
21552        wrapperEl.removeAttribute('style');
21553      }
21554      if (slides && slides.length) {
21555        slides.forEach(slideEl => {
21556          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);
21557          slideEl.removeAttribute('style');
21558          slideEl.removeAttribute('data-swiper-slide-index');
21559        });
21560      }
21561    }
21562    swiper.emit('destroy');
21563
21564    // Detach emitter events
21565    Object.keys(swiper.eventsListeners).forEach(eventName => {
21566      swiper.off(eventName);
21567    });
21568    if (deleteInstance !== false) {
21569      if (swiper.el && typeof swiper.el !== 'string') {
21570        swiper.el.swiper = null;
21571      }
21572      (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.x)(swiper);
21573    }
21574    swiper.destroyed = true;
21575    return null;
21576  }
21577  static extendDefaults(newDefaults) {
21578    (0,_utils_mjs__WEBPACK_IMPORTED_MODULE_1__.w)(extendedDefaults, newDefaults);
21579  }
21580  static get extendedDefaults() {
21581    return extendedDefaults;
21582  }
21583  static get defaults() {
21584    return defaults;
21585  }
21586  static installModule(mod) {
21587    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];
21588    const modules = Swiper.prototype.__modules__;
21589    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {
21590      modules.push(mod);
21591    }
21592  }
21593  static use(module) {
21594    if (Array.isArray(module)) {
21595      module.forEach(m => Swiper.installModule(m));
21596      return Swiper;
21597    }
21598    Swiper.installModule(module);
21599    return Swiper;
21600  }
21601}
21602Object.keys(prototypes).forEach(prototypeGroup => {
21603  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {
21604    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];
21605  });
21606});
21607Swiper.use([Resize, Observer]);
21608
21609
21610
21611
21612/***/ }),
21613
vendor: 12,726 bytes, lines 21614-21966
21614/***/ "./node_modules/swiper/shared/utils.mjs":
21615/*!**********************************************!*\
21616  !*** ./node_modules/swiper/shared/utils.mjs ***!
21617  \**********************************************/
21618/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
21619
21620__webpack_require__.r(__webpack_exports__);
21621/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21622/* harmony export */   a: function() { return /* binding */ elementParents; },
21623/* harmony export */   b: function() { return /* binding */ elementOffset; },
21624/* harmony export */   c: function() { return /* binding */ createElement; },
21625/* harmony export */   d: function() { return /* binding */ now; },
21626/* harmony export */   e: function() { return /* binding */ elementChildren; },
21627/* harmony export */   f: function() { return /* binding */ elementOuterSize; },
21628/* harmony export */   g: function() { return /* binding */ getSlideTransformEl; },
21629/* harmony export */   h: function() { return /* binding */ elementIndex; },
21630/* harmony export */   i: function() { return /* binding */ classesToTokens; },
21631/* harmony export */   j: function() { return /* binding */ getTranslate; },
21632/* harmony export */   k: function() { return /* binding */ elementTransitionEnd; },
21633/* harmony export */   l: function() { return /* binding */ isObject; },
21634/* harmony export */   m: function() { return /* binding */ makeElementsArray; },
21635/* harmony export */   n: function() { return /* binding */ nextTick; },
21636/* harmony export */   o: function() { return /* binding */ getRotateFix; },
21637/* harmony export */   p: function() { return /* binding */ elementStyle; },
21638/* harmony export */   q: function() { return /* binding */ elementNextAll; },
21639/* harmony export */   r: function() { return /* binding */ elementPrevAll; },
21640/* harmony export */   s: function() { return /* binding */ setCSSProperty; },
21641/* harmony export */   t: function() { return /* binding */ animateCSSModeScroll; },
21642/* harmony export */   u: function() { return /* binding */ showWarning; },
21643/* harmony export */   v: function() { return /* binding */ elementIsChildOf; },
21644/* harmony export */   w: function() { return /* binding */ extend; },
21645/* harmony export */   x: function() { return /* binding */ deleteProps; }
21646/* harmony export */ });
21647/* harmony import */ var _ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ssr-window.esm.mjs */ "./node_modules/swiper/shared/ssr-window.esm.mjs");
21648
21649
21650function classesToTokens(classes) {
21651  if (classes === void 0) {
21652    classes = '';
21653  }
21654  return classes.trim().split(' ').filter(c => !!c.trim());
21655}
21656
21657function deleteProps(obj) {
21658  const object = obj;
21659  Object.keys(object).forEach(key => {
21660    try {
21661      object[key] = null;
21662    } catch (e) {
21663      // no getter for object
21664    }
21665    try {
21666      delete object[key];
21667    } catch (e) {
21668      // something got wrong
21669    }
21670  });
21671}
21672function nextTick(callback, delay) {
21673  if (delay === void 0) {
21674    delay = 0;
21675  }
21676  return setTimeout(callback, delay);
21677}
21678function now() {
21679  return Date.now();
21680}
21681function getComputedStyle(el) {
21682  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21683  let style;
21684  if (window.getComputedStyle) {
21685    style = window.getComputedStyle(el, null);
21686  }
21687  if (!style && el.currentStyle) {
21688    style = el.currentStyle;
21689  }
21690  if (!style) {
21691    style = el.style;
21692  }
21693  return style;
21694}
21695function getTranslate(el, axis) {
21696  if (axis === void 0) {
21697    axis = 'x';
21698  }
21699  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21700  let matrix;
21701  let curTransform;
21702  let transformMatrix;
21703  const curStyle = getComputedStyle(el);
21704  if (window.WebKitCSSMatrix) {
21705    curTransform = curStyle.transform || curStyle.webkitTransform;
21706    if (curTransform.split(',').length > 6) {
21707      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');
21708    }
21709    // Some old versions of Webkit choke when 'none' is passed; pass
21710    // empty string instead in this case
21711    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);
21712  } else {
21713    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');
21714    matrix = transformMatrix.toString().split(',');
21715  }
21716  if (axis === 'x') {
21717    // Latest Chrome and webkits Fix
21718    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;
21719    // Crazy IE10 Matrix
21720    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);
21721    // Normal Browsers
21722    else curTransform = parseFloat(matrix[4]);
21723  }
21724  if (axis === 'y') {
21725    // Latest Chrome and webkits Fix
21726    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;
21727    // Crazy IE10 Matrix
21728    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);
21729    // Normal Browsers
21730    else curTransform = parseFloat(matrix[5]);
21731  }
21732  return curTransform || 0;
21733}
21734function isObject(o) {
21735  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';
21736}
21737function isNode(node) {
21738  // eslint-disable-next-line
21739  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {
21740    return node instanceof HTMLElement;
21741  }
21742  return node && (node.nodeType === 1 || node.nodeType === 11);
21743}
21744function extend() {
21745  const to = Object(arguments.length <= 0 ? undefined : arguments[0]);
21746  const noExtend = ['__proto__', 'constructor', 'prototype'];
21747  for (let i = 1; i < arguments.length; i += 1) {
21748    const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];
21749    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {
21750      const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);
21751      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
21752        const nextKey = keysArray[nextIndex];
21753        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
21754        if (desc !== undefined && desc.enumerable) {
21755          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
21756            if (nextSource[nextKey].__swiper__) {
21757              to[nextKey] = nextSource[nextKey];
21758            } else {
21759              extend(to[nextKey], nextSource[nextKey]);
21760            }
21761          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
21762            to[nextKey] = {};
21763            if (nextSource[nextKey].__swiper__) {
21764              to[nextKey] = nextSource[nextKey];
21765            } else {
21766              extend(to[nextKey], nextSource[nextKey]);
21767            }
21768          } else {
21769            to[nextKey] = nextSource[nextKey];
21770          }
21771        }
21772      }
21773    }
21774  }
21775  return to;
21776}
21777function setCSSProperty(el, varName, varValue) {
21778  el.style.setProperty(varName, varValue);
21779}
21780function animateCSSModeScroll(_ref) {
21781  let {
21782    swiper,
21783    targetPosition,
21784    side
21785  } = _ref;
21786  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21787  const startPosition = -swiper.translate;
21788  let startTime = null;
21789  let time;
21790  const duration = swiper.params.speed;
21791  swiper.wrapperEl.style.scrollSnapType = 'none';
21792  window.cancelAnimationFrame(swiper.cssModeFrameID);
21793  const dir = targetPosition > startPosition ? 'next' : 'prev';
21794  const isOutOfBound = (current, target) => {
21795    return dir === 'next' && current >= target || dir === 'prev' && current <= target;
21796  };
21797  const animate = () => {
21798    time = new Date().getTime();
21799    if (startTime === null) {
21800      startTime = time;
21801    }
21802    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);
21803    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;
21804    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);
21805    if (isOutOfBound(currentPosition, targetPosition)) {
21806      currentPosition = targetPosition;
21807    }
21808    swiper.wrapperEl.scrollTo({
21809      [side]: currentPosition
21810    });
21811    if (isOutOfBound(currentPosition, targetPosition)) {
21812      swiper.wrapperEl.style.overflow = 'hidden';
21813      swiper.wrapperEl.style.scrollSnapType = '';
21814      setTimeout(() => {
21815        swiper.wrapperEl.style.overflow = '';
21816        swiper.wrapperEl.scrollTo({
21817          [side]: currentPosition
21818        });
21819      });
21820      window.cancelAnimationFrame(swiper.cssModeFrameID);
21821      return;
21822    }
21823    swiper.cssModeFrameID = window.requestAnimationFrame(animate);
21824  };
21825  animate();
21826}
21827function getSlideTransformEl(slideEl) {
21828  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;
21829}
21830function elementChildren(element, selector) {
21831  if (selector === void 0) {
21832    selector = '';
21833  }
21834  const children = [...element.children];
21835  if (element instanceof HTMLSlotElement) {
21836    children.push(...element.assignedElements());
21837  }
21838  if (!selector) {
21839    return children;
21840  }
21841  return children.filter(el => el.matches(selector));
21842}
21843function elementIsChildOf(el, parent) {
21844  const isChild = parent.contains(el);
21845  if (!isChild && parent instanceof HTMLSlotElement) {
21846    const children = [...element.assignedElements()];
21847    return children.includes(el);
21848  }
21849  return isChild;
21850}
21851function showWarning(text) {
21852  try {
21853    console.warn(text);
21854    return;
21855  } catch (err) {
21856    // err
21857  }
21858}
21859function createElement(tag, classes) {
21860  if (classes === void 0) {
21861    classes = [];
21862  }
21863  const el = document.createElement(tag);
21864  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));
21865  return el;
21866}
21867function elementOffset(el) {
21868  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21869  const document = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.g)();
21870  const box = el.getBoundingClientRect();
21871  const body = document.body;
21872  const clientTop = el.clientTop || body.clientTop || 0;
21873  const clientLeft = el.clientLeft || body.clientLeft || 0;
21874  const scrollTop = el === window ? window.scrollY : el.scrollTop;
21875  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;
21876  return {
21877    top: box.top + scrollTop - clientTop,
21878    left: box.left + scrollLeft - clientLeft
21879  };
21880}
21881function elementPrevAll(el, selector) {
21882  const prevEls = [];
21883  while (el.previousElementSibling) {
21884    const prev = el.previousElementSibling; // eslint-disable-line
21885    if (selector) {
21886      if (prev.matches(selector)) prevEls.push(prev);
21887    } else prevEls.push(prev);
21888    el = prev;
21889  }
21890  return prevEls;
21891}
21892function elementNextAll(el, selector) {
21893  const nextEls = [];
21894  while (el.nextElementSibling) {
21895    const next = el.nextElementSibling; // eslint-disable-line
21896    if (selector) {
21897      if (next.matches(selector)) nextEls.push(next);
21898    } else nextEls.push(next);
21899    el = next;
21900  }
21901  return nextEls;
21902}
21903function elementStyle(el, prop) {
21904  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21905  return window.getComputedStyle(el, null).getPropertyValue(prop);
21906}
21907function elementIndex(el) {
21908  let child = el;
21909  let i;
21910  if (child) {
21911    i = 0;
21912    // eslint-disable-next-line
21913    while ((child = child.previousSibling) !== null) {
21914      if (child.nodeType === 1) i += 1;
21915    }
21916    return i;
21917  }
21918  return undefined;
21919}
21920function elementParents(el, selector) {
21921  const parents = []; // eslint-disable-line
21922  let parent = el.parentElement; // eslint-disable-line
21923  while (parent) {
21924    if (selector) {
21925      if (parent.matches(selector)) parents.push(parent);
21926    } else {
21927      parents.push(parent);
21928    }
21929    parent = parent.parentElement;
21930  }
21931  return parents;
21932}
21933function elementTransitionEnd(el, callback) {
21934  function fireCallBack(e) {
21935    if (e.target !== el) return;
21936    callback.call(el, e);
21937    el.removeEventListener('transitionend', fireCallBack);
21938  }
21939  if (callback) {
21940    el.addEventListener('transitionend', fireCallBack);
21941  }
21942}
21943function elementOuterSize(el, size, includeMargins) {
21944  const window = (0,_ssr_window_esm_mjs__WEBPACK_IMPORTED_MODULE_0__.a)();
21945  if (includeMargins) {
21946    return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));
21947  }
21948  return el.offsetWidth;
21949}
21950function makeElementsArray(el) {
21951  return (Array.isArray(el) ? el : [el]).filter(e => !!e);
21952}
21953function getRotateFix(swiper) {
21954  return v => {
21955    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {
21956      return v + 0.001;
21957    }
21958    return v;
21959  };
21960}
21961
21962
21963
21964
21965/***/ }),
21966
vendor: 1,120 bytes, lines 21967-21994
21967/***/ "./node_modules/swiper/swiper.mjs":
21968/*!****************************************!*\
21969  !*** ./node_modules/swiper/swiper.mjs ***!
21970  \****************************************/
21971/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
21972
21973__webpack_require__.r(__webpack_exports__);
21974/* harmony export */ __webpack_require__.d(__webpack_exports__, {
21975/* harmony export */   Swiper: function() { return /* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S; },
21976/* harmony export */   "default": function() { return /* reexport safe */ _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__.S; }
21977/* harmony export */ });
21978/* harmony import */ var _shared_swiper_core_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./shared/swiper-core.mjs */ "./node_modules/swiper/shared/swiper-core.mjs");
21979/**
21980 * Swiper 11.1.7
21981 * Most modern mobile touch slider and framework with hardware accelerated transitions
21982 * https://swiperjs.com
21983 *
21984 * Copyright 2014-2024 Vladimir Kharlampidi
21985 *
21986 * Released under the MIT License
21987 *
21988 * Released on: July 24, 2024
21989 */
21990
21991
21992
21993
21994/***/ })
21994
21995
21996/******/ 	});
21997/************************************************************************/
21998/******/ 	// The module cache
21999/******/ 	var __webpack_module_cache__ = {};
22000/******/ 	
22001/******/ 	// The require function
22002/******/ 	function __webpack_require__(moduleId) {
22003/******/ 		// Check if module is in cache
22004/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
22005/******/ 		if (cachedModule !== undefined) {
22006/******/ 			return cachedModule.exports;
22007/******/ 		}
22008/******/ 		// Create a new module (and put it into the cache)
22009/******/ 		var module = __webpack_module_cache__[moduleId] = {
22010/******/ 			// no module.id needed
22011/******/ 			// no module.loaded needed
22012/******/ 			exports: {}
22013/******/ 		};
22014/******/ 	
22015/******/ 		// Execute the module function
22016/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
22017/******/ 	
22018/******/ 		// Return the exports of the module
22019/******/ 		return module.exports;
22020/******/ 	}
22021/******/ 	
22022/******/ 	// expose the modules object (__webpack_modules__)
22023/******/ 	__webpack_require__.m = __webpack_modules__;
22024/******/ 	
22025/************************************************************************/
22026/******/ 	/* webpack/runtime/chunk loaded */
22027/******/ 	!function() {
22028/******/ 		var deferred = [];
22029/******/ 		__webpack_require__.O = function(result, chunkIds, fn, priority) {
22030/******/ 			if(chunkIds) {
22031/******/ 				priority = priority || 0;
22032/******/ 				for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];
22033/******/ 				deferred[i] = [chunkIds, fn, priority];
22034/******/ 				return;
22035/******/ 			}
22036/******/ 			var notFulfilled = Infinity;
22037/******/ 			for (var i = 0; i < deferred.length; i++) {
22038/******/ 				var chunkIds = deferred[i][0];
22039/******/ 				var fn = deferred[i][1];
22040/******/ 				var priority = deferred[i][2];
22041/******/ 				var fulfilled = true;
22042/******/ 				for (var j = 0; j < chunkIds.length; j++) {
22043/******/ 					if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {
22044/******/ 						chunkIds.splice(j--, 1);
22045/******/ 					} else {
22046/******/ 						fulfilled = false;
22047/******/ 						if(priority < notFulfilled) notFulfilled = priority;
22048/******/ 					}
22049/******/ 				}
22050/******/ 				if(fulfilled) {
22051/******/ 					deferred.splice(i--, 1)
22052/******/ 					var r = fn();
22053/******/ 					if (r !== undefined) result = r;
22054/******/ 				}
22055/******/ 			}
22056/******/ 			return result;
22057/******/ 		};
22058/******/ 	}();
22059/******/ 	
22060/******/ 	/* webpack/runtime/define property getters */
22061/******/ 	!function() {
22062/******/ 		// define getter functions for harmony exports
22063/******/ 		__webpack_require__.d = function(exports, definition) {
22064/******/ 			for(var key in definition) {
22065/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
22066/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
22067/******/ 				}
22068/******/ 			}
22069/******/ 		};
22070/******/ 	}();
22071/******/ 	
22072/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
22073/******/ 	!function() {
22074/******/ 		__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
22075/******/ 	}();
22076/******/ 	
22077/******/ 	/* webpack/runtime/make namespace object */
22078/******/ 	!function() {
22079/******/ 		// define __esModule on exports
22080/******/ 		__webpack_require__.r = function(exports) {
22081/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
22082/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
22083/******/ 			}
22084/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
22085/******/ 		};
22086/******/ 	}();
22087/******/ 	
22088/******/ 	/* webpack/runtime/jsonp chunk loading */
22089/******/ 	!function() {
22090/******/ 		// no baseURI
22091/******/ 		
22092/******/ 		// object to store loaded and loading chunks
22093/******/ 		// undefined = chunk not loaded, null = chunk preloaded/prefetched
22094/******/ 		// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
22095/******/ 		var installedChunks = {
22096/******/ 			"/js/app": 0,
22097/******/ 			"css/app": 0
22098/******/ 		};
22099/******/ 		
22100/******/ 		// no chunk on demand loading
22101/******/ 		
22102/******/ 		// no prefetching
22103/******/ 		
22104/******/ 		// no preloaded
22105/******/ 		
22106/******/ 		// no HMR
22107/******/ 		
22108/******/ 		// no HMR manifest
22109/******/ 		
22110/******/ 		__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };
22111/******/ 		
22112/******/ 		// install a JSONP callback for chunk loading
22113/******/ 		var webpackJsonpCallback = function(parentChunkLoadingFunction, data) {
22114/******/ 			var chunkIds = data[0];
22115/******/ 			var moreModules = data[1];
22116/******/ 			var runtime = data[2];
22117/******/ 			// add "moreModules" to the modules object,
22118/******/ 			// then flag all "chunkIds" as loaded and fire callback
22119/******/ 			var moduleId, chunkId, i = 0;
22120/******/ 			if(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {
22121/******/ 				for(moduleId in moreModules) {
22122/******/ 					if(__webpack_require__.o(moreModules, moduleId)) {
22123/******/ 						__webpack_require__.m[moduleId] = moreModules[moduleId];
22124/******/ 					}
22125/******/ 				}
22126/******/ 				if(runtime) var result = runtime(__webpack_require__);
22127/******/ 			}
22128/******/ 			if(parentChunkLoadingFunction) parentChunkLoadingFunction(data);
22129/******/ 			for(;i < chunkIds.length; i++) {
22130/******/ 				chunkId = chunkIds[i];
22131/******/ 				if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {
22132/******/ 					installedChunks[chunkId][0]();
22133/******/ 				}
22134/******/ 				installedChunks[chunkId] = 0;
22135/******/ 			}
22136/******/ 			return __webpack_require__.O(result);
22137/******/ 		}
22138/******/ 		
22139/******/ 		var chunkLoadingGlobal = self["webpackChunkCredit9_v2"] = self["webpackChunkCredit9_v2"] || [];
22140/******/ 		chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));
22141/******/ 		chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));
22142/******/ 	}();
22143/******/ 	
22144/************************************************************************/
22145/******/ 	
22146/******/ 	// startup
22147/******/ 	// Load entry module and return exports
22148/******/ 	// This entry module depends on other loaded chunks and execution need to be delayed
22149/******/ 	__webpack_require__.O(undefined, ["css/app"], function() { return __webpack_require__("./src/js/app.js"); })
22150/******/ 	var __webpack_exports__ = __webpack_require__.O(undefined, ["css/app"], function() { return __webpack_require__("./src/scss/app.scss"); })
22151/******/ 	__webpack_exports__ = __webpack_require__.O(__webpack_exports__);
22152/******/ 	
22153/******/ })()
22154;
22155//# sourceMappingURL=app.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.