{"version":3,"file":"static/components/1760-535a0db21b7992af.mjs?cv=7","sources":["webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/swiper.css","webpack://Agir/../node_modules/swiper/swiper.css?cd83","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/shared/swiper-core.mjs","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/shared/ssr-window.esm.mjs","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/shared/utils.mjs","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/shared/update-swiper.mjs","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/swiper-react.mjs","webpack:///home/runner/work/actionpopulaire.fr/actionpopulaire.fr/node_modules/swiper/shared/update-on-virtual-data.mjs"],"sourcesContent":["import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n  return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n  /* o */\n  && prop.charCodeAt(1) === 110\n  /* n */\n  && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","function memoize(fn) {\n  var cache = Object.create(null);\n  return function (arg) {\n    if (cache[arg] === undefined) cache[arg] = fn(arg);\n    return cache[arg];\n  };\n}\n\nexport { memoize as default };\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/**\n * Swiper 12.1.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2026 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 18, 2026\n */\n\n:root {\n  --swiper-theme-color: #007aff;\n  /*\n  --swiper-preloader-color: var(--swiper-theme-color);\n  --swiper-wrapper-transition-timing-function: initial;\n  */\n}\n:host {\n  position: relative;\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n  z-index: 1;\n}\n.swiper {\n  margin-left: auto;\n  margin-right: auto;\n  position: relative;\n  overflow: hidden;\n  list-style: none;\n  padding: 0;\n  /* Fix of Webkit flickering */\n  z-index: 1;\n  display: block;\n}\n.swiper-vertical > .swiper-wrapper {\n  flex-direction: column;\n}\n.swiper-wrapper {\n  position: relative;\n  width: 100%;\n  height: 100%;\n  z-index: 1;\n  display: flex;\n  transition-property: transform;\n  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\n  box-sizing: content-box;\n}\n.swiper-android .swiper-slide,\n.swiper-ios .swiper-slide,\n.swiper-wrapper {\n  transform: translate3d(0px, 0, 0);\n}\n.swiper-horizontal {\n  touch-action: pan-y;\n}\n.swiper-vertical {\n  touch-action: pan-x;\n}\n.swiper-slide {\n  flex-shrink: 0;\n  width: 100%;\n  height: 100%;\n  position: relative;\n  transition-property: transform;\n  display: block;\n}\n.swiper-slide-invisible-blank {\n  visibility: hidden;\n}\n/* Auto Height */\n.swiper-autoheight,\n.swiper-autoheight .swiper-slide {\n  height: auto;\n}\n.swiper-autoheight .swiper-wrapper {\n  align-items: flex-start;\n  transition-property: transform, height;\n}\n.swiper-backface-hidden .swiper-slide {\n  transform: translateZ(0);\n  backface-visibility: hidden;\n}\n/* 3D Effects */\n.swiper-3d.swiper-css-mode .swiper-wrapper {\n  perspective: 1200px;\n}\n.swiper-3d .swiper-wrapper {\n  transform-style: preserve-3d;\n}\n.swiper-3d {\n  perspective: 1200px;\n  .swiper-slide,\n  .swiper-cube-shadow {\n    transform-style: preserve-3d;\n  }\n}\n\n/* CSS Mode */\n.swiper-css-mode {\n  > .swiper-wrapper {\n    overflow: auto;\n    scrollbar-width: none; /* For Firefox */\n    -ms-overflow-style: none; /* For Internet Explorer and Edge */\n    &::-webkit-scrollbar {\n      display: none;\n    }\n  }\n  > .swiper-wrapper > .swiper-slide {\n    scroll-snap-align: start start;\n  }\n  &.swiper-horizontal {\n    > .swiper-wrapper {\n      scroll-snap-type: x mandatory;\n    }\n    > .swiper-wrapper > .swiper-slide:first-child {\n      margin-inline-start: var(--swiper-slides-offset-before);\n      scroll-margin-inline-start: var(--swiper-slides-offset-before);\n    }\n    > .swiper-wrapper > .swiper-slide:last-child {\n      margin-inline-end: var(--swiper-slides-offset-after);\n    }\n  }\n  &.swiper-vertical {\n    > .swiper-wrapper {\n      scroll-snap-type: y mandatory;\n    }\n    > .swiper-wrapper > .swiper-slide:first-child {\n      margin-block-start: var(--swiper-slides-offset-before);\n      scroll-margin-block-start: var(--swiper-slides-offset-before);\n    }\n    > .swiper-wrapper > .swiper-slide:last-child {\n      margin-block-end: var(--swiper-slides-offset-after);\n    }\n  }\n  &.swiper-free-mode {\n    > .swiper-wrapper {\n      scroll-snap-type: none;\n    }\n    > .swiper-wrapper > .swiper-slide {\n      scroll-snap-align: none;\n    }\n  }\n  &.swiper-centered {\n    > .swiper-wrapper::before {\n      content: '';\n      flex-shrink: 0;\n      order: 9999;\n    }\n    > .swiper-wrapper > .swiper-slide {\n      scroll-snap-align: center center;\n      scroll-snap-stop: always;\n    }\n  }\n  &.swiper-centered.swiper-horizontal {\n    > .swiper-wrapper > .swiper-slide:first-child {\n      margin-inline-start: var(--swiper-centered-offset-before);\n    }\n    > .swiper-wrapper::before {\n      height: 100%;\n      min-height: 1px;\n      width: var(--swiper-centered-offset-after);\n    }\n  }\n  &.swiper-centered.swiper-vertical {\n    > .swiper-wrapper > .swiper-slide:first-child {\n      margin-block-start: var(--swiper-centered-offset-before);\n    }\n    > .swiper-wrapper::before {\n      width: 100%;\n      min-width: 1px;\n      height: var(--swiper-centered-offset-after);\n    }\n  }\n}\n\n/* Slide styles start */\n/* 3D Shadows */\n.swiper-3d {\n  .swiper-slide-shadow,\n  .swiper-slide-shadow-left,\n  .swiper-slide-shadow-right,\n  .swiper-slide-shadow-top,\n  .swiper-slide-shadow-bottom,\n  .swiper-slide-shadow,\n  .swiper-slide-shadow-left,\n  .swiper-slide-shadow-right,\n  .swiper-slide-shadow-top,\n  .swiper-slide-shadow-bottom {\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 100%;\n    height: 100%;\n    pointer-events: none;\n    z-index: 10;\n  }\n  .swiper-slide-shadow {\n    background: rgba(0, 0, 0, 0.15);\n  }\n  .swiper-slide-shadow-left {\n    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  }\n  .swiper-slide-shadow-right {\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  }\n  .swiper-slide-shadow-top {\n    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  }\n  .swiper-slide-shadow-bottom {\n    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\n  }\n}\n.swiper-lazy-preloader {\n  width: 42px;\n  height: 42px;\n  position: absolute;\n  left: 50%;\n  top: 50%;\n  margin-left: -21px;\n  margin-top: -21px;\n  z-index: 10;\n  transform-origin: 50%;\n  box-sizing: border-box;\n  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\n  border-radius: 50%;\n  border-top-color: transparent;\n}\n.swiper:not(.swiper-watch-progress),\n.swiper-watch-progress .swiper-slide-visible {\n  .swiper-lazy-preloader {\n    animation: swiper-preloader-spin 1s infinite linear;\n  }\n}\n.swiper-lazy-preloader-white {\n  --swiper-preloader-color: #fff;\n}\n.swiper-lazy-preloader-black {\n  --swiper-preloader-color: #000;\n}\n@keyframes swiper-preloader-spin {\n  0% {\n    transform: rotate(0deg);\n  }\n  100% {\n    transform: rotate(360deg);\n  }\n}\n/* Slide styles end */\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/swiper/swiper.css\"],\"names\":[],\"mappings\":\"AAAA;;;;;;;;;;EAUE;;AAEF;EACE,6BAA6B;EAC7B;;;GAGC;AACH;AACA;EACE,kBAAkB;EAClB,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,UAAU;AACZ;AACA;EACE,iBAAiB;EACjB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,UAAU;EACV,6BAA6B;EAC7B,UAAU;EACV,cAAc;AAChB;AACA;EACE,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,UAAU;EACV,aAAa;EACb,8BAA8B;EAC9B,qFAAqF;EACrF,uBAAuB;AACzB;AACA;;;EAGE,iCAAiC;AACnC;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,8BAA8B;EAC9B,cAAc;AAChB;AACA;EACE,kBAAkB;AACpB;AACA,gBAAgB;AAChB;;EAEE,YAAY;AACd;AACA;EACE,uBAAuB;EACvB,sCAAsC;AACxC;AACA;EACE,wBAAwB;EACxB,2BAA2B;AAC7B;AACA,eAAe;AACf;EACE,mBAAmB;AACrB;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,mBAAmB;EACnB;;IAEE,4BAA4B;EAC9B;AACF;;AAEA,aAAa;AACb;EACE;IACE,cAAc;IACd,qBAAqB,EAAE,gBAAgB;IACvC,wBAAwB,EAAE,mCAAmC;IAC7D;MACE,aAAa;IACf;EACF;EACA;IACE,8BAA8B;EAChC;EACA;IACE;MACE,6BAA6B;IAC/B;IACA;MACE,uDAAuD;MACvD,8DAA8D;IAChE;IACA;MACE,oDAAoD;IACtD;EACF;EACA;IACE;MACE,6BAA6B;IAC/B;IACA;MACE,sDAAsD;MACtD,6DAA6D;IAC/D;IACA;MACE,mDAAmD;IACrD;EACF;EACA;IACE;MACE,sBAAsB;IACxB;IACA;MACE,uBAAuB;IACzB;EACF;EACA;IACE;MACE,WAAW;MACX,cAAc;MACd,WAAW;IACb;IACA;MACE,gCAAgC;MAChC,wBAAwB;IAC1B;EACF;EACA;IACE;MACE,yDAAyD;IAC3D;IACA;MACE,YAAY;MACZ,eAAe;MACf,0CAA0C;IAC5C;EACF;EACA;IACE;MACE,wDAAwD;IAC1D;IACA;MACE,WAAW;MACX,cAAc;MACd,2CAA2C;IAC7C;EACF;AACF;;AAEA,uBAAuB;AACvB,eAAe;AACf;EACE;;;;;;;;;;IAUE,kBAAkB;IAClB,OAAO;IACP,MAAM;IACN,WAAW;IACX,YAAY;IACZ,oBAAoB;IACpB,WAAW;EACb;EACA;IACE,+BAA+B;EACjC;EACA;IACE,gFAAgF;EAClF;EACA;IACE,iFAAiF;EACnF;EACA;IACE,+EAA+E;EACjF;EACA;IACE,kFAAkF;EACpF;AACF;AACA;EACE,WAAW;EACX,YAAY;EACZ,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,kBAAkB;EAClB,iBAAiB;EACjB,WAAW;EACX,qBAAqB;EACrB,sBAAsB;EACtB,0EAA0E;EAC1E,kBAAkB;EAClB,6BAA6B;AAC/B;AACA;;EAEE;IACE,mDAAmD;EACrD;AACF;AACA;EACE,8BAA8B;AAChC;AACA;EACE,8BAA8B;AAChC;AACA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF;AACA,qBAAqB\",\"sourcesContent\":[\"/**\\n * Swiper 12.1.2\\n * Most modern mobile touch slider and framework with hardware accelerated transitions\\n * https://swiperjs.com\\n *\\n * Copyright 2014-2026 Vladimir Kharlampidi\\n *\\n * Released under the MIT License\\n *\\n * Released on: February 18, 2026\\n */\\n\\n:root {\\n  --swiper-theme-color: #007aff;\\n  /*\\n  --swiper-preloader-color: var(--swiper-theme-color);\\n  --swiper-wrapper-transition-timing-function: initial;\\n  */\\n}\\n:host {\\n  position: relative;\\n  display: block;\\n  margin-left: auto;\\n  margin-right: auto;\\n  z-index: 1;\\n}\\n.swiper {\\n  margin-left: auto;\\n  margin-right: auto;\\n  position: relative;\\n  overflow: hidden;\\n  list-style: none;\\n  padding: 0;\\n  /* Fix of Webkit flickering */\\n  z-index: 1;\\n  display: block;\\n}\\n.swiper-vertical > .swiper-wrapper {\\n  flex-direction: column;\\n}\\n.swiper-wrapper {\\n  position: relative;\\n  width: 100%;\\n  height: 100%;\\n  z-index: 1;\\n  display: flex;\\n  transition-property: transform;\\n  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);\\n  box-sizing: content-box;\\n}\\n.swiper-android .swiper-slide,\\n.swiper-ios .swiper-slide,\\n.swiper-wrapper {\\n  transform: translate3d(0px, 0, 0);\\n}\\n.swiper-horizontal {\\n  touch-action: pan-y;\\n}\\n.swiper-vertical {\\n  touch-action: pan-x;\\n}\\n.swiper-slide {\\n  flex-shrink: 0;\\n  width: 100%;\\n  height: 100%;\\n  position: relative;\\n  transition-property: transform;\\n  display: block;\\n}\\n.swiper-slide-invisible-blank {\\n  visibility: hidden;\\n}\\n/* Auto Height */\\n.swiper-autoheight,\\n.swiper-autoheight .swiper-slide {\\n  height: auto;\\n}\\n.swiper-autoheight .swiper-wrapper {\\n  align-items: flex-start;\\n  transition-property: transform, height;\\n}\\n.swiper-backface-hidden .swiper-slide {\\n  transform: translateZ(0);\\n  backface-visibility: hidden;\\n}\\n/* 3D Effects */\\n.swiper-3d.swiper-css-mode .swiper-wrapper {\\n  perspective: 1200px;\\n}\\n.swiper-3d .swiper-wrapper {\\n  transform-style: preserve-3d;\\n}\\n.swiper-3d {\\n  perspective: 1200px;\\n  .swiper-slide,\\n  .swiper-cube-shadow {\\n    transform-style: preserve-3d;\\n  }\\n}\\n\\n/* CSS Mode */\\n.swiper-css-mode {\\n  > .swiper-wrapper {\\n    overflow: auto;\\n    scrollbar-width: none; /* For Firefox */\\n    -ms-overflow-style: none; /* For Internet Explorer and Edge */\\n    &::-webkit-scrollbar {\\n      display: none;\\n    }\\n  }\\n  > .swiper-wrapper > .swiper-slide {\\n    scroll-snap-align: start start;\\n  }\\n  &.swiper-horizontal {\\n    > .swiper-wrapper {\\n      scroll-snap-type: x mandatory;\\n    }\\n    > .swiper-wrapper > .swiper-slide:first-child {\\n      margin-inline-start: var(--swiper-slides-offset-before);\\n      scroll-margin-inline-start: var(--swiper-slides-offset-before);\\n    }\\n    > .swiper-wrapper > .swiper-slide:last-child {\\n      margin-inline-end: var(--swiper-slides-offset-after);\\n    }\\n  }\\n  &.swiper-vertical {\\n    > .swiper-wrapper {\\n      scroll-snap-type: y mandatory;\\n    }\\n    > .swiper-wrapper > .swiper-slide:first-child {\\n      margin-block-start: var(--swiper-slides-offset-before);\\n      scroll-margin-block-start: var(--swiper-slides-offset-before);\\n    }\\n    > .swiper-wrapper > .swiper-slide:last-child {\\n      margin-block-end: var(--swiper-slides-offset-after);\\n    }\\n  }\\n  &.swiper-free-mode {\\n    > .swiper-wrapper {\\n      scroll-snap-type: none;\\n    }\\n    > .swiper-wrapper > .swiper-slide {\\n      scroll-snap-align: none;\\n    }\\n  }\\n  &.swiper-centered {\\n    > .swiper-wrapper::before {\\n      content: '';\\n      flex-shrink: 0;\\n      order: 9999;\\n    }\\n    > .swiper-wrapper > .swiper-slide {\\n      scroll-snap-align: center center;\\n      scroll-snap-stop: always;\\n    }\\n  }\\n  &.swiper-centered.swiper-horizontal {\\n    > .swiper-wrapper > .swiper-slide:first-child {\\n      margin-inline-start: var(--swiper-centered-offset-before);\\n    }\\n    > .swiper-wrapper::before {\\n      height: 100%;\\n      min-height: 1px;\\n      width: var(--swiper-centered-offset-after);\\n    }\\n  }\\n  &.swiper-centered.swiper-vertical {\\n    > .swiper-wrapper > .swiper-slide:first-child {\\n      margin-block-start: var(--swiper-centered-offset-before);\\n    }\\n    > .swiper-wrapper::before {\\n      width: 100%;\\n      min-width: 1px;\\n      height: var(--swiper-centered-offset-after);\\n    }\\n  }\\n}\\n\\n/* Slide styles start */\\n/* 3D Shadows */\\n.swiper-3d {\\n  .swiper-slide-shadow,\\n  .swiper-slide-shadow-left,\\n  .swiper-slide-shadow-right,\\n  .swiper-slide-shadow-top,\\n  .swiper-slide-shadow-bottom,\\n  .swiper-slide-shadow,\\n  .swiper-slide-shadow-left,\\n  .swiper-slide-shadow-right,\\n  .swiper-slide-shadow-top,\\n  .swiper-slide-shadow-bottom {\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    width: 100%;\\n    height: 100%;\\n    pointer-events: none;\\n    z-index: 10;\\n  }\\n  .swiper-slide-shadow {\\n    background: rgba(0, 0, 0, 0.15);\\n  }\\n  .swiper-slide-shadow-left {\\n    background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n  }\\n  .swiper-slide-shadow-right {\\n    background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n  }\\n  .swiper-slide-shadow-top {\\n    background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n  }\\n  .swiper-slide-shadow-bottom {\\n    background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));\\n  }\\n}\\n.swiper-lazy-preloader {\\n  width: 42px;\\n  height: 42px;\\n  position: absolute;\\n  left: 50%;\\n  top: 50%;\\n  margin-left: -21px;\\n  margin-top: -21px;\\n  z-index: 10;\\n  transform-origin: 50%;\\n  box-sizing: border-box;\\n  border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));\\n  border-radius: 50%;\\n  border-top-color: transparent;\\n}\\n.swiper:not(.swiper-watch-progress),\\n.swiper-watch-progress .swiper-slide-visible {\\n  .swiper-lazy-preloader {\\n    animation: swiper-preloader-spin 1s infinite linear;\\n  }\\n}\\n.swiper-lazy-preloader-white {\\n  --swiper-preloader-color: #fff;\\n}\\n.swiper-lazy-preloader-black {\\n  --swiper-preloader-color: #000;\\n}\\n@keyframes swiper-preloader-spin {\\n  0% {\\n    transform: rotate(0deg);\\n  }\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n/* Slide styles end */\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n      import API from \"!../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../css-loader/dist/cjs.js!./swiper.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../css-loader/dist/cjs.js!./swiper.css\";\n       export default content && content.locals ? content.locals : undefined;\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { d as elementParents, q as elementStyle, e as elementChildren, b as setCSSProperty, i as elementOuterSize, r as elementNextAll, t as elementPrevAll, l as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, h as now, x as extend, j as elementIndex, y as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n  const window = getWindow();\n  const document = getDocument();\n  return {\n    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n  };\n}\nfunction getSupport() {\n  if (!support) {\n    support = calcSupport();\n  }\n  return support;\n}\n\nlet deviceCached;\nfunction calcDevice({\n  userAgent\n} = {}) {\n  const support = getSupport();\n  const window = getWindow();\n  const platform = window.navigator.platform;\n  const ua = userAgent || window.navigator.userAgent;\n  const device = {\n    ios: false,\n    android: false\n  };\n  const screenWidth = window.screen.width;\n  const screenHeight = window.screen.height;\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n  let ipad = ua.match(/(iPad)(?!\\1).*OS\\s([\\d_]+)/);\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n  const windows = platform === 'Win32';\n  let macos = platform === 'MacIntel';\n\n  // iPadOs 13 fix\n  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n    ipad = ua.match(/(Version)\\/([\\d.]+)/);\n    if (!ipad) ipad = [0, 1, '13_0_0'];\n    macos = false;\n  }\n\n  // Android\n  if (android && !windows) {\n    device.os = 'android';\n    device.android = true;\n  }\n  if (ipad || iphone || ipod) {\n    device.os = 'ios';\n    device.ios = true;\n  }\n\n  // Export object\n  return device;\n}\nfunction getDevice(overrides = {}) {\n  if (!deviceCached) {\n    deviceCached = calcDevice(overrides);\n  }\n  return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n  const window = getWindow();\n  const device = getDevice();\n  let needPerspectiveFix = false;\n  function isSafari() {\n    const ua = window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n  if (isSafari()) {\n    const ua = String(window.navigator.userAgent);\n    if (ua.includes('Version/')) {\n      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n      needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n    }\n  }\n  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n  const isSafariBrowser = isSafari();\n  const need3dFix = isSafariBrowser || isWebView && device.ios;\n  return {\n    isSafari: needPerspectiveFix || isSafariBrowser,\n    needPerspectiveFix,\n    need3dFix,\n    isWebView\n  };\n}\nfunction getBrowser() {\n  if (!browser) {\n    browser = calcBrowser();\n  }\n  return browser;\n}\n\nfunction Resize({\n  swiper,\n  on,\n  emit\n}) {\n  const window = getWindow();\n  let observer = null;\n  let animationFrame = null;\n  const resizeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('beforeResize');\n    emit('resize');\n  };\n  const createObserver = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    observer = new ResizeObserver(entries => {\n      animationFrame = window.requestAnimationFrame(() => {\n        const {\n          width,\n          height\n        } = swiper;\n        let newWidth = width;\n        let newHeight = height;\n        entries.forEach(({\n          contentBoxSize,\n          contentRect,\n          target\n        }) => {\n          if (target && target !== swiper.el) return;\n          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n        });\n        if (newWidth !== width || newHeight !== height) {\n          resizeHandler();\n        }\n      });\n    });\n    observer.observe(swiper.el);\n  };\n  const removeObserver = () => {\n    if (animationFrame) {\n      window.cancelAnimationFrame(animationFrame);\n    }\n    if (observer && observer.unobserve && swiper.el) {\n      observer.unobserve(swiper.el);\n      observer = null;\n    }\n  };\n  const orientationChangeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('orientationchange');\n  };\n  on('init', () => {\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n      createObserver();\n      return;\n    }\n    window.addEventListener('resize', resizeHandler);\n    window.addEventListener('orientationchange', orientationChangeHandler);\n  });\n  on('destroy', () => {\n    removeObserver();\n    window.removeEventListener('resize', resizeHandler);\n    window.removeEventListener('orientationchange', orientationChangeHandler);\n  });\n}\n\nfunction Observer({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  const observers = [];\n  const window = getWindow();\n  const attach = (target, options = {}) => {\n    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    const observer = new ObserverFunc(mutations => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (swiper.__preventObserver__) return;\n      if (mutations.length === 1) {\n        emit('observerUpdate', mutations[0]);\n        return;\n      }\n      const observerUpdate = function observerUpdate() {\n        emit('observerUpdate', mutations[0]);\n      };\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\n      }\n    });\n    observer.observe(target, {\n      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n      characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n    });\n    observers.push(observer);\n  };\n  const init = () => {\n    if (!swiper.params.observer) return;\n    if (swiper.params.observeParents) {\n      const containerParents = elementParents(swiper.hostEl);\n      for (let i = 0; i < containerParents.length; i += 1) {\n        attach(containerParents[i]);\n      }\n    }\n    // Observe container\n    attach(swiper.hostEl, {\n      childList: swiper.params.observeSlideChildren\n    });\n\n    // Observe wrapper\n    attach(swiper.wrapperEl, {\n      attributes: false\n    });\n  };\n  const destroy = () => {\n    observers.forEach(observer => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  });\n  on('init', init);\n  on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n  on(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(event => {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  },\n  once(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    function onceHandler(...args) {\n      self.off(events, onceHandler);\n      if (onceHandler.__emitterProxy) {\n        delete onceHandler.__emitterProxy;\n      }\n      handler.apply(self, args);\n    }\n    onceHandler.__emitterProxy = handler;\n    return self.on(events, onceHandler, priority);\n  },\n  onAny(handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n    return self;\n  },\n  offAny(handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsAnyListeners) return self;\n    const index = self.eventsAnyListeners.indexOf(handler);\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n    return self;\n  },\n  off(events, handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(event => {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach((eventHandler, index) => {\n          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  },\n  emit(...args) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    let events;\n    let data;\n    let context;\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n      events = args[0];\n      data = args.slice(1, args.length);\n      context = self;\n    } else {\n      events = args[0].events;\n      data = args[0].data;\n      context = args[0].context || self;\n    }\n    data.unshift(context);\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(event => {\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n        self.eventsAnyListeners.forEach(eventHandler => {\n          eventHandler.apply(context, [event, ...data]);\n        });\n      }\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(eventHandler => {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};\n\nfunction updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const el = swiper.el;\n  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n    width = swiper.params.width;\n  } else {\n    width = el.clientWidth;\n  }\n  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n    height = swiper.params.height;\n  } else {\n    height = el.clientHeight;\n  }\n  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n    return;\n  }\n\n  // Subtract paddings\n  width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n  height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n  if (Number.isNaN(width)) width = 0;\n  if (Number.isNaN(height)) height = 0;\n  Object.assign(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}\n\nfunction updateSlides() {\n  const swiper = this;\n  function getDirectionPropertyValue(node, label) {\n    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n  }\n  const params = swiper.params;\n  const {\n    wrapperEl,\n    slidesEl,\n    rtlTranslate: rtl,\n    wrongRTL\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  let snapGrid = [];\n  const slidesGrid = [];\n  const slidesSizesGrid = [];\n  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\n  const swiperSize = swiper.size - offsetBefore - offsetAfter;\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  swiper.virtualSize = -spaceBetween - offsetBefore - offsetAfter;\n\n  // reset margins\n  slides.forEach(slideEl => {\n    if (rtl) {\n      slideEl.style.marginLeft = '';\n    } else {\n      slideEl.style.marginRight = '';\n    }\n    slideEl.style.marginBottom = '';\n    slideEl.style.marginTop = '';\n  });\n\n  // reset cssMode offsets\n  if (params.centeredSlides && params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n  }\n\n  // set cssMode offsets\n  if (params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-slides-offset-before', `${offsetBefore}px`);\n    setCSSProperty(wrapperEl, '--swiper-slides-offset-after', `${offsetAfter}px`);\n  }\n  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n  if (gridEnabled) {\n    swiper.grid.initSlides(slides);\n  } else if (swiper.grid) {\n    swiper.grid.unsetSlides();\n  }\n\n  // Calc slides\n  let slideSize;\n  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n    return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n  }).length > 0;\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    const slide = slides[i];\n    if (slide) {\n      if (gridEnabled) {\n        swiper.grid.updateSlide(i, slide, slides);\n      }\n      if (elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n    }\n\n    if (isVirtual && params.slidesPerView === 'auto') {\n      if (params.virtual.slidesPerViewAutoSlideSize) {\n        slideSize = params.virtual.slidesPerViewAutoSlideSize;\n      }\n      if (slideSize && slide) {\n        if (params.roundLengths) slideSize = Math.floor(slideSize);\n        slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    } else if (params.slidesPerView === 'auto') {\n      if (shouldResetSlideSize) {\n        slide.style[swiper.getDirectionLabel('width')] = ``;\n      }\n      const slideStyles = getComputedStyle(slide);\n      const currentTransform = slide.style.transform;\n      const currentWebKitTransform = slide.style.webkitTransform;\n      if (currentTransform) {\n        slide.style.transform = 'none';\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = 'none';\n      }\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n      } else {\n        // eslint-disable-next-line\n        const width = getDirectionPropertyValue(slideStyles, 'width');\n        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n        const boxSizing = slideStyles.getPropertyValue('box-sizing');\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          const {\n            clientWidth,\n            offsetWidth\n          } = slide;\n          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n        }\n      }\n      if (currentTransform) {\n        slide.style.transform = currentTransform;\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = currentWebKitTransform;\n      }\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n      if (slide) {\n        slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    }\n    if (slide) {\n      slide.swiperSlideSize = slideSize;\n    }\n    slidesSizesGrid.push(slideSize);\n    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n    } else {\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (params.setWrapperSize) {\n    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (gridEnabled) {\n    swiper.grid.updateWrapperSize(slideSize, snapGrid);\n  }\n\n  // Remove last grid elements depending on width\n  if (!params.centeredSlides) {\n    // Check if snapToSlideEdge should be applied\n    const isFractionalSlidesPerView = params.slidesPerView !== 'auto' && params.slidesPerView % 1 !== 0;\n    const shouldSnapToSlideEdge = params.snapToSlideEdge && !params.loop && (params.slidesPerView === 'auto' || isFractionalSlidesPerView);\n\n    // Calculate the last allowed snap index when snapToSlideEdge is enabled\n    // This ensures minimum slides are visible at the end\n    let lastAllowedSnapIndex = snapGrid.length;\n    if (shouldSnapToSlideEdge) {\n      let minVisibleSlides;\n      if (params.slidesPerView === 'auto') {\n        // For 'auto' mode, calculate how many slides fit based on actual sizes\n        minVisibleSlides = 1;\n        let accumulatedSize = 0;\n        for (let i = slidesSizesGrid.length - 1; i >= 0; i -= 1) {\n          accumulatedSize += slidesSizesGrid[i] + (i < slidesSizesGrid.length - 1 ? spaceBetween : 0);\n          if (accumulatedSize <= swiperSize) {\n            minVisibleSlides = slidesSizesGrid.length - i;\n          } else {\n            break;\n          }\n        }\n      } else {\n        minVisibleSlides = Math.floor(params.slidesPerView);\n      }\n      lastAllowedSnapIndex = Math.max(slidesLength - minVisibleSlides, 0);\n    }\n    const newSlidesGrid = [];\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n      if (shouldSnapToSlideEdge) {\n        // When snapToSlideEdge is enabled, only keep snaps up to lastAllowedSnapIndex\n        if (i <= lastAllowedSnapIndex) {\n          newSlidesGrid.push(slidesGridItem);\n        }\n      } else if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        // When snapToSlideEdge is disabled, keep snaps that fit within scrollable area\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n    snapGrid = newSlidesGrid;\n    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n      // Only add edge-aligned snap if snapToSlideEdge is not enabled\n      if (!shouldSnapToSlideEdge) {\n        snapGrid.push(swiper.virtualSize - swiperSize);\n      }\n    }\n  }\n  if (isVirtual && params.loop) {\n    const size = slidesSizesGrid[0] + spaceBetween;\n    if (params.slidesPerGroup > 1) {\n      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n      const groupSize = size * params.slidesPerGroup;\n      for (let i = 0; i < groups; i += 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n      }\n    }\n    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n      if (params.slidesPerGroup === 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n      }\n      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n      swiper.virtualSize += size;\n    }\n  }\n  if (snapGrid.length === 0) snapGrid = [0];\n  if (spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n    slides.filter((_, slideIndex) => {\n      if (!params.cssMode || params.loop) return true;\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n      return true;\n    }).forEach(slideEl => {\n      slideEl.style[key] = `${spaceBetween}px`;\n    });\n  }\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n    snapGrid = snapGrid.map(snap => {\n      if (snap <= 0) return -offsetBefore;\n      if (snap > maxSnap) return maxSnap + offsetAfter;\n      return snap;\n    });\n  }\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    if (allSlidesSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n    const addToSnapGrid = -swiper.snapGrid[0];\n    const addToSlidesGrid = -swiper.slidesGrid[0];\n    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n  }\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  swiper.emit('slidesUpdated');\n  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n    if (slidesLength <= params.maxBackfaceHiddenSlides) {\n      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n    } else if (hasClassBackfaceClassAdded) {\n      swiper.el.classList.remove(backFaceHiddenClass);\n    }\n  }\n}\n\nfunction updateAutoHeight(speed) {\n  const swiper = this;\n  const activeSlides = [];\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  let newHeight = 0;\n  let i;\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n  const getSlideByIndex = index => {\n    if (isVirtual) {\n      return swiper.slides[swiper.getSlideIndexByData(index)];\n    }\n    return swiper.slides[index];\n  };\n  // Find slides currently in view\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    if (swiper.params.centeredSlides) {\n      (swiper.visibleSlides || []).forEach(slide => {\n        activeSlides.push(slide);\n      });\n    } else {\n      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n        const index = swiper.activeIndex + i;\n        if (index > swiper.slides.length && !isVirtual) break;\n        activeSlides.push(getSlideByIndex(index));\n      }\n    }\n  } else {\n    activeSlides.push(getSlideByIndex(swiper.activeIndex));\n  }\n\n  // Find new height from highest slide in view\n  for (i = 0; i < activeSlides.length; i += 1) {\n    if (typeof activeSlides[i] !== 'undefined') {\n      const height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  }\n\n  // Update Height\n  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n  // eslint-disable-next-line\n  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n  }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesProgress(translate = this && this.translate || 0) {\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    slides,\n    rtlTranslate: rtl,\n    snapGrid\n  } = swiper;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n  let offsetCenter = -translate;\n  if (rtl) offsetCenter = translate;\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n  let spaceBetween = params.spaceBetween;\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    let slideOffset = slide.swiperSlideOffset;\n    if (params.cssMode && params.centeredSlides) {\n      slideOffset -= slides[0].swiperSlideOffset;\n    }\n    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const slideBefore = -(offsetCenter - slideOffset);\n    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n    if (isVisible) {\n      swiper.visibleSlides.push(slide);\n      swiper.visibleSlidesIndexes.push(i);\n    }\n    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n    slide.progress = rtl ? -slideProgress : slideProgress;\n    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n  }\n}\n\nfunction updateProgress(translate) {\n  const swiper = this;\n  if (typeof translate === 'undefined') {\n    const multiplier = swiper.rtlTranslate ? -1 : 1;\n    // eslint-disable-next-line\n    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n  }\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let {\n    progress,\n    isBeginning,\n    isEnd,\n    progressLoop\n  } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n    isBeginning = isBeginningRounded || progress <= 0;\n    isEnd = isEndRounded || progress >= 1;\n    if (isBeginningRounded) progress = 0;\n    if (isEndRounded) progress = 1;\n  }\n  if (params.loop) {\n    const firstSlideIndex = swiper.getSlideIndexByData(0);\n    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n    const translateAbs = Math.abs(translate);\n    if (translateAbs >= firstSlideTranslate) {\n      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n    } else {\n      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n    }\n    if (progressLoop > 1) progressLoop -= 1;\n  }\n  Object.assign(swiper, {\n    progress,\n    progressLoop,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n    swiper.emit('fromEdge');\n  }\n  swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    slidesEl,\n    activeIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  const getFilteredSlide = selector => {\n    return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n  };\n  let activeSlide;\n  let prevSlide;\n  let nextSlide;\n  if (isVirtual) {\n    if (params.loop) {\n      let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n    } else {\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n    }\n  } else {\n    if (gridEnabled) {\n      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n    } else {\n      activeSlide = slides[activeIndex];\n    }\n  }\n  if (activeSlide) {\n    if (!gridEnabled) {\n      // Next Slide\n      nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !nextSlide) {\n        nextSlide = slides[0];\n      }\n\n      // Prev Slide\n      prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !prevSlide === 0) {\n        prevSlide = slides[slides.length - 1];\n      }\n    }\n  }\n  slides.forEach(slideEl => {\n    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n  });\n  swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n  const slideEl = imageEl.closest(slideSelector());\n  if (slideEl) {\n    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n    if (!lazyEl && swiper.isElement) {\n      if (slideEl.shadowRoot) {\n        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n      } else {\n        // init later\n        requestAnimationFrame(() => {\n          if (slideEl.shadowRoot) {\n            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n            if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();\n          }\n        });\n      }\n    }\n    // Skip removal if managed by React/Vue component\n    if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();\n  }\n};\nconst unlazy = (swiper, index) => {\n  if (!swiper.slides[index]) return;\n  const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n  if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  let amount = swiper.params.lazyPreloadPrevNext;\n  const len = swiper.slides.length;\n  if (!len || !amount || amount < 0) return;\n  amount = Math.min(amount, len);\n  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n  const activeIndex = swiper.activeIndex;\n  if (swiper.params.grid && swiper.params.grid.rows > 1) {\n    const activeColumn = activeIndex;\n    const preloadColumns = [activeColumn - amount];\n    preloadColumns.push(...Array.from({\n      length: amount\n    }).map((_, i) => {\n      return activeColumn + slidesPerView + i;\n    }));\n    swiper.slides.forEach((slideEl, i) => {\n      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n    });\n    return;\n  }\n  const slideIndexLastInView = activeIndex + slidesPerView - 1;\n  if (swiper.params.rewind || swiper.params.loop) {\n    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n      const realIndex = (i % len + len) % len;\n      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n    }\n  } else {\n    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n        unlazy(swiper, i);\n      }\n    }\n  }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n  const {\n    slidesGrid,\n    params\n  } = swiper;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  let activeIndex;\n  for (let i = 0; i < slidesGrid.length; i += 1) {\n    if (typeof slidesGrid[i + 1] !== 'undefined') {\n      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n        activeIndex = i;\n      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n        activeIndex = i + 1;\n      }\n    } else if (translate >= slidesGrid[i]) {\n      activeIndex = i;\n    }\n  }\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n  }\n  return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n  const getVirtualRealIndex = aIndex => {\n    let realIndex = aIndex - swiper.virtual.slidesBefore;\n    if (realIndex < 0) {\n      realIndex = swiper.virtual.slides.length + realIndex;\n    }\n    if (realIndex >= swiper.virtual.slides.length) {\n      realIndex -= swiper.virtual.slides.length;\n    }\n    return realIndex;\n  };\n  if (typeof activeIndex === 'undefined') {\n    activeIndex = getActiveIndexByTranslate(swiper);\n  }\n  if (snapGrid.indexOf(translate) >= 0) {\n    snapIndex = snapGrid.indexOf(translate);\n  } else {\n    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n  }\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if (activeIndex === previousIndex && !swiper.params.loop) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n    return;\n  }\n  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n    swiper.realIndex = getVirtualRealIndex(activeIndex);\n    return;\n  }\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n  // Get real index\n  let realIndex;\n  if (swiper.virtual && params.virtual.enabled) {\n    if (params.loop) {\n      realIndex = getVirtualRealIndex(activeIndex);\n    } else {\n      realIndex = activeIndex;\n    }\n  } else if (gridEnabled) {\n    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n    if (Number.isNaN(activeSlideIndex)) {\n      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n    }\n    realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n  } else if (swiper.slides[activeIndex]) {\n    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n    if (slideIndex) {\n      realIndex = parseInt(slideIndex, 10);\n    } else {\n      realIndex = activeIndex;\n    }\n  } else {\n    realIndex = activeIndex;\n  }\n  Object.assign(swiper, {\n    previousSnapIndex,\n    snapIndex,\n    previousRealIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  if (swiper.initialized) {\n    preload(swiper);\n  }\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n  if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n    if (previousRealIndex !== realIndex) {\n      swiper.emit('realIndexChange');\n    }\n    swiper.emit('slideChange');\n  }\n}\n\nfunction updateClickedSlide(el, path) {\n  const swiper = this;\n  const params = swiper.params;\n  let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n        slide = pathEl;\n      }\n    });\n  }\n  let slideFound = false;\n  let slideIndex;\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) {\n        slideFound = true;\n        slideIndex = i;\n        break;\n      }\n    }\n  }\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n    } else {\n      swiper.clickedIndex = slideIndex;\n    }\n  } else {\n    swiper.clickedSlide = undefined;\n    swiper.clickedIndex = undefined;\n    return;\n  }\n  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\n  }\n}\n\nvar update = {\n  updateSize,\n  updateSlides,\n  updateAutoHeight,\n  updateSlidesOffset,\n  updateSlidesProgress,\n  updateProgress,\n  updateSlidesClasses,\n  updateActiveIndex,\n  updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    wrapperEl\n  } = swiper;\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  if (params.cssMode) {\n    return translate;\n  }\n  let currentTranslate = getTranslate(wrapperEl, axis);\n  currentTranslate += swiper.cssOverflowAdjustment();\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n  const swiper = this;\n  const {\n    rtlTranslate: rtl,\n    params,\n    wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    if (swiper.isHorizontal()) {\n      x -= swiper.cssOverflowAdjustment();\n    } else {\n      y -= swiper.cssOverflowAdjustment();\n    }\n    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n  }\n\n  // Check if we need to update progress\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n  return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    wrapperEl\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n  // Update progress\n  swiper.updateProgress(newTranslate);\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: -newTranslate,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionEnd');\n    }\n  } else {\n    swiper.setTransition(speed);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionStart');\n    }\n    if (!swiper.animating) {\n      swiper.animating = true;\n      if (!swiper.onTranslateToWrapperTransitionEnd) {\n        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n          swiper.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n          swiper.animating = false;\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n    }\n  }\n  return true;\n}\n\nvar translate = {\n  getTranslate: getSwiperTranslate,\n  setTranslate,\n  minTranslate,\n  maxTranslate,\n  translateTo\n};\n\nfunction setTransition(duration, byController) {\n  const swiper = this;\n  if (!swiper.params.cssMode) {\n    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n  }\n  swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit({\n  swiper,\n  runCallbacks,\n  direction,\n  step\n}) {\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit(`transition${step}`);\n  if (runCallbacks && dir === 'reset') {\n    swiper.emit(`slideResetTransition${step}`);\n  } else if (runCallbacks && activeIndex !== previousIndex) {\n    swiper.emit(`slideChangeTransition${step}`);\n    if (dir === 'next') {\n      swiper.emit(`slideNextTransition${step}`);\n    } else {\n      swiper.emit(`slidePrevTransition${step}`);\n    }\n  }\n}\n\nfunction transitionStart(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  if (params.cssMode) return;\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'Start'\n  });\n}\n\nfunction transitionEnd(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.animating = false;\n  if (params.cssMode) return;\n  swiper.setTransition(0);\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'End'\n  });\n}\n\nvar transition = {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};\n\nfunction slideTo(index = 0, speed, runCallbacks = true, internal, initial) {\n  if (typeof index === 'string') {\n    index = parseInt(index, 10);\n  }\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl,\n    wrapperEl,\n    enabled\n  } = swiper;\n  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  const translate = -snapGrid[snapIndex];\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      const normalizedTranslate = -Math.floor(translate * 100);\n      const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n          slideIndex = i;\n        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n          slideIndex = i + 1;\n        }\n      } else if (normalizedTranslate >= normalizedGrid) {\n        slideIndex = i;\n      }\n    }\n  }\n  // Directions locks\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) {\n        return false;\n      }\n    }\n  }\n  if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  // Update progress\n  swiper.updateProgress(translate);\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n  // initial virtual\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  const isInitialVirtual = isVirtual && initial;\n  // Update Index\n  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n    swiper.updateActiveIndex(slideIndex);\n    // Update Height\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n    swiper.updateSlidesClasses();\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n    return false;\n  }\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    const t = rtl ? translate : -translate;\n    if (speed === 0) {\n      if (isVirtual) {\n        swiper.wrapperEl.style.scrollSnapType = 'none';\n        swiper._immediateVirtual = true;\n      }\n      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n        swiper._cssModeVirtualInitialSet = true;\n        requestAnimationFrame(() => {\n          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n        });\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      }\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._immediateVirtual = false;\n        });\n      }\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: t,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: t,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  const browser = getBrowser();\n  const isSafari = browser.isSafari;\n  if (isVirtual && !initial && isSafari && swiper.isElement) {\n    swiper.virtual.update(false, false, slideIndex);\n  }\n  swiper.setTransition(speed);\n  swiper.setTranslate(translate);\n  swiper.updateActiveIndex(slideIndex);\n  swiper.updateSlidesClasses();\n  swiper.emit('beforeTransitionStart', speed, internal);\n  swiper.transitionStart(runCallbacks, direction);\n  if (speed === 0) {\n    swiper.transitionEnd(runCallbacks, direction);\n  } else if (!swiper.animating) {\n    swiper.animating = true;\n    if (!swiper.onSlideToWrapperTransitionEnd) {\n      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n        if (!swiper || swiper.destroyed) return;\n        if (e.target !== this) return;\n        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n        swiper.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n  }\n  return true;\n}\n\nfunction slideToLoop(index = 0, speed, runCallbacks = true, internal) {\n  if (typeof index === 'string') {\n    const indexAsNumber = parseInt(index, 10);\n    index = indexAsNumber;\n  }\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n  let newIndex = index;\n  if (swiper.params.loop) {\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      // eslint-disable-next-line\n      newIndex = newIndex + swiper.virtual.slidesBefore;\n    } else {\n      let targetSlideIndex;\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n      }\n      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n      const {\n        centeredSlides,\n        slidesOffsetBefore,\n        slidesOffsetAfter\n      } = swiper.params;\n      const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n      let slidesPerView = swiper.params.slidesPerView;\n      if (slidesPerView === 'auto') {\n        slidesPerView = swiper.slidesPerViewDynamic();\n      } else {\n        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n        if (bothDirections && slidesPerView % 2 === 0) {\n          slidesPerView = slidesPerView + 1;\n        }\n      }\n      let needLoopFix = cols - targetSlideIndex < slidesPerView;\n      if (bothDirections) {\n        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n      }\n      if (internal && bothDirections && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n        needLoopFix = false;\n      }\n      if (needLoopFix) {\n        const direction = bothDirections ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n        swiper.loopFix({\n          direction,\n          slideTo: true,\n          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n        });\n      }\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        newIndex = swiper.getSlideIndexByData(newIndex);\n      }\n    }\n  }\n  requestAnimationFrame(() => {\n    swiper.slideTo(newIndex, speed, runCallbacks, internal);\n  });\n  return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    enabled,\n    params,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let perGroup = params.slidesPerGroup;\n  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n  }\n  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'next'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n      requestAnimationFrame(() => {\n        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n      });\n      return true;\n    }\n  }\n  if (params.rewind && swiper.isEnd) {\n    return swiper.slideTo(0, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate,\n    enabled,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'prev'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n  const isFreeMode = params.freeMode && params.freeMode.enabled;\n  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\n    let prevSnapIndex;\n    snapGrid.forEach((snap, snapIndex) => {\n      if (normalizedTranslate >= snap) {\n        // prevSnap = snap;\n        prevSnapIndex = snapIndex;\n      }\n    });\n    if (typeof prevSnapIndex !== 'undefined') {\n      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n    }\n  }\n  let prevIndex = 0;\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n      prevIndex = Math.max(prevIndex, 0);\n    }\n  }\n  if (params.rewind && swiper.isBeginning) {\n    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n    requestAnimationFrame(() => {\n      swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n    });\n    return true;\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks = true, internal, threshold = 0.5) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let index = swiper.activeIndex;\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  if (translate >= swiper.snapGrid[snapIndex]) {\n    // The current translate is on or after the current snap index, so the choice\n    // is between the current index and the one after it.\n    const currentSnap = swiper.snapGrid[snapIndex];\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\n    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n      index += swiper.params.slidesPerGroup;\n    }\n  } else {\n    // The current translate is before the current snap index, so the choice\n    // is between the current index and the one before it.\n    const prevSnap = swiper.snapGrid[snapIndex - 1];\n    const currentSnap = swiper.snapGrid[snapIndex];\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n      index -= swiper.params.slidesPerGroup;\n    }\n  }\n  index = Math.max(index, 0);\n  index = Math.min(index, swiper.slidesGrid.length - 1);\n  return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.getSlideIndexWhenGrid(swiper.clickedIndex);\n  let realIndex;\n  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n  const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n    if (params.centeredSlides) {\n      swiper.slideToLoop(realIndex);\n    } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : swiper.slides.length - slidesPerView)) {\n      swiper.loopFix();\n      slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}\n\nvar slide = {\n  slideTo,\n  slideToLoop,\n  slideNext,\n  slidePrev,\n  slideReset,\n  slideToClosest,\n  slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex, initial) {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n  const initSlides = () => {\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    slides.forEach((el, index) => {\n      el.setAttribute('data-swiper-slide-index', index);\n    });\n  };\n  const clearBlankSlides = () => {\n    const slides = elementChildren(slidesEl, `.${params.slideBlankClass}`);\n    slides.forEach(el => {\n      el.remove();\n    });\n    if (slides.length > 0) {\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    }\n  };\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {\n    clearBlankSlides();\n  }\n  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n  const addBlankSlides = amountOfSlides => {\n    for (let i = 0; i < amountOfSlides; i += 1) {\n      const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n      swiper.slidesEl.append(slideEl);\n    }\n  };\n  if (shouldFillGroup) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else if (shouldFillGrid) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else {\n    initSlides();\n  }\n  const bothDirections = params.centeredSlides || !!params.slidesOffsetBefore || !!params.slidesOffsetAfter;\n  swiper.loopFix({\n    slideRealIndex,\n    direction: bothDirections ? undefined : 'next',\n    initial\n  });\n}\n\nfunction loopFix({\n  slideRealIndex,\n  slideTo = true,\n  direction,\n  setTranslate,\n  activeSlideIndex,\n  initial,\n  byController,\n  byMousewheel\n} = {}) {\n  const swiper = this;\n  if (!swiper.params.loop) return;\n  swiper.emit('beforeLoopFix');\n  const {\n    slides,\n    allowSlidePrev,\n    allowSlideNext,\n    slidesEl,\n    params\n  } = swiper;\n  const {\n    centeredSlides,\n    slidesOffsetBefore,\n    slidesOffsetAfter,\n    initialSlide\n  } = params;\n  const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  if (swiper.virtual && params.virtual.enabled) {\n    if (slideTo) {\n      if (!bothDirections && swiper.snapIndex === 0) {\n        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n      } else if (bothDirections && swiper.snapIndex < params.slidesPerView) {\n        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n      }\n    }\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n    swiper.emit('loopFix');\n    return;\n  }\n  let slidesPerView = params.slidesPerView;\n  if (slidesPerView === 'auto') {\n    slidesPerView = swiper.slidesPerViewDynamic();\n  } else {\n    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n    if (bothDirections && slidesPerView % 2 === 0) {\n      slidesPerView = slidesPerView + 1;\n    }\n  }\n  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n  let loopedSlides = bothDirections ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : slidesPerGroup;\n  if (loopedSlides % slidesPerGroup !== 0) {\n    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n  }\n  loopedSlides += params.loopAdditionalSlides;\n  swiper.loopedSlides = loopedSlides;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n  } else if (gridEnabled && params.grid.fill === 'row') {\n    showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n  }\n  const prependSlidesIndexes = [];\n  const appendSlidesIndexes = [];\n  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !bothDirections;\n  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n  if (typeof activeSlideIndex === 'undefined') {\n    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n  } else {\n    activeIndex = activeSlideIndex;\n  }\n  const isNext = direction === 'next' || !direction;\n  const isPrev = direction === 'prev' || !direction;\n  let slidesPrepended = 0;\n  let slidesAppended = 0;\n  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n  const activeColIndexWithShift = activeColIndex + (bothDirections && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n  // prepend last slides before start\n  if (activeColIndexWithShift < loopedSlides) {\n    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        const colIndexToPrepend = cols - index - 1;\n        for (let i = slides.length - 1; i >= 0; i -= 1) {\n          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n        }\n        // slides.forEach((slide, slideIndex) => {\n        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n        // });\n      } else {\n        prependSlidesIndexes.push(cols - index - 1);\n      }\n    }\n  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n    if (isInitialOverflow) {\n      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n    }\n    for (let i = 0; i < slidesAppended; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        slides.forEach((slide, slideIndex) => {\n          if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n        });\n      } else {\n        appendSlidesIndexes.push(index);\n      }\n    }\n  }\n  swiper.__preventObserver__ = true;\n  requestAnimationFrame(() => {\n    swiper.__preventObserver__ = false;\n  });\n  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    if (appendSlidesIndexes.includes(activeSlideIndex)) {\n      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n    if (prependSlidesIndexes.includes(activeSlideIndex)) {\n      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n  }\n  if (isPrev) {\n    prependSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.prepend(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  if (isNext) {\n    appendSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.append(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  swiper.recalcSlides();\n  if (params.slidesPerView === 'auto') {\n    swiper.updateSlides();\n  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n    swiper.slides.forEach((slide, slideIndex) => {\n      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n    });\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  if (slideTo) {\n    if (prependSlidesIndexes.length > 0 && isPrev) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        if (setTranslate) {\n          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n          swiper.touchEventsData.currentTranslate = swiper.translate;\n        }\n      }\n    } else if (appendSlidesIndexes.length > 0 && isNext) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n      }\n    }\n  }\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.controller && swiper.controller.control && !byController) {\n    const loopParams = {\n      slideRealIndex,\n      direction,\n      setTranslate,\n      activeSlideIndex,\n      byController: true\n    };\n    if (Array.isArray(swiper.controller.control)) {\n      swiper.controller.control.forEach(c => {\n        if (!c.destroyed && c.params.loop) c.loopFix({\n          ...loopParams,\n          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n        });\n      });\n    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n      swiper.controller.control.loopFix({\n        ...loopParams,\n        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n      });\n    }\n  }\n  swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;\n  swiper.recalcSlides();\n  const newSlidesOrder = [];\n  swiper.slides.forEach(slideEl => {\n    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n    newSlidesOrder[index] = slideEl;\n  });\n  swiper.slides.forEach(slideEl => {\n    slideEl.removeAttribute('data-swiper-slide-index');\n  });\n  newSlidesOrder.forEach(slideEl => {\n    slidesEl.append(slideEl);\n  });\n  swiper.recalcSlides();\n  swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n  loopCreate,\n  loopFix,\n  loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n  const swiper = this;\n  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nfunction unsetGrabCursor() {\n  const swiper = this;\n  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nvar grabCursor = {\n  setGrabCursor,\n  unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n  function __closestFrom(el) {\n    if (!el || el === getDocument() || el === getWindow()) return null;\n    if (el.assignedSlot) el = el.assignedSlot;\n    const found = el.closest(selector);\n    if (!found && !el.getRootNode) {\n      return null;\n    }\n    return found || __closestFrom(el.getRootNode().host);\n  }\n  return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n  const window = getWindow();\n  const {\n    params\n  } = swiper;\n  const edgeSwipeDetection = params.edgeSwipeDetection;\n  const edgeSwipeThreshold = params.edgeSwipeThreshold;\n  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n      return true;\n    }\n    return false;\n  }\n  return true;\n}\nfunction onTouchStart(event) {\n  const swiper = this;\n  const document = getDocument();\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  const data = swiper.touchEventsData;\n  if (e.type === 'pointerdown') {\n    if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n      return;\n    }\n    data.pointerId = e.pointerId;\n  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n    data.touchId = e.targetTouches[0].identifier;\n  }\n  if (e.type === 'touchstart') {\n    // don't proceed touch event\n    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n    return;\n  }\n  const {\n    params,\n    touches,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n  if (!swiper.animating && params.cssMode && params.loop) {\n    swiper.loopFix();\n  }\n  let targetEl = e.target;\n  if (params.touchEventsTarget === 'wrapper') {\n    if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n  }\n  if ('which' in e && e.which === 3) return;\n  if ('button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return;\n\n  // change target el for shadow root component\n  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n  // eslint-disable-next-line\n  const eventPath = e.composedPath ? e.composedPath() : e.path;\n  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n    targetEl = eventPath[0];\n  }\n  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n  const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n  // use closestElement for shadow root element to get the actual closest for nested shadow root element\n  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n    swiper.allowClick = true;\n    return;\n  }\n  if (params.swipeHandler) {\n    if (!targetEl.closest(params.swipeHandler)) return;\n  }\n  touches.currentX = e.pageX;\n  touches.currentY = e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY;\n\n  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n  if (!preventEdgeSwipe(swiper, e, startX)) {\n    return;\n  }\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\n  });\n  touches.startX = startX;\n  touches.startY = startY;\n  data.touchStartTime = now();\n  swiper.allowClick = true;\n  swiper.updateSize();\n  swiper.swipeDirection = undefined;\n  if (params.threshold > 0) data.allowThresholdMove = false;\n  let preventDefault = true;\n  if (targetEl.matches(data.focusableElements)) {\n    preventDefault = false;\n    if (targetEl.nodeName === 'SELECT') {\n      data.isTouched = false;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n    document.activeElement.blur();\n  }\n  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n    e.preventDefault();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n    swiper.freeMode.onTouchStart();\n  }\n  swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n  const document = getDocument();\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (e.type === 'pointermove') {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    const id = e.pointerId;\n    if (id !== data.pointerId) return;\n  }\n  let targetTouch;\n  if (e.type === 'touchmove') {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  } else {\n    targetTouch = e;\n  }\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n    return;\n  }\n  const pageX = targetTouch.pageX;\n  const pageY = targetTouch.pageY;\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n  if (!swiper.allowTouchMove) {\n    if (!e.target.matches(data.focusableElements)) {\n      swiper.allowClick = false;\n    }\n    if (data.isTouched) {\n      Object.assign(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY\n      });\n      data.touchStartTime = now();\n    }\n    return;\n  }\n  if (params.touchReleaseOnEdges && !params.loop) {\n    if (swiper.isVertical()) {\n      // Vertical\n      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n      return;\n    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n      return;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n    document.activeElement.blur();\n  }\n  if (document.activeElement) {\n    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\n  touches.previousX = touches.currentX;\n  touches.previousY = touches.currentY;\n  touches.currentX = pageX;\n  touches.currentY = pageY;\n  const diffX = touches.currentX - touches.startX;\n  const diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n      data.isScrolling = false;\n    } else {\n      // eslint-disable-next-line\n      if (diffX * diffX + diffY * diffY >= 25) {\n        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n      }\n    }\n  }\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n    data.isTouched = false;\n    return;\n  }\n  if (!data.startMoving) {\n    return;\n  }\n  swiper.allowClick = false;\n  if (!params.cssMode && e.cancelable) {\n    e.preventDefault();\n  }\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n  if (params.oneWayMovement) {\n    diff = Math.abs(diff) * (rtl ? 1 : -1);\n    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n  }\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) {\n    diff = -diff;\n    touchesDiff = -touchesDiff;\n  }\n  const prevTouchesDirection = swiper.touchesDirection;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n  const isLoop = swiper.params.loop && !params.cssMode;\n  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n  if (!data.isMoved) {\n    if (isLoop && allowLoopFix) {\n      swiper.loopFix({\n        direction: swiper.swipeDirection\n      });\n    }\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n    if (swiper.animating) {\n      const evt = new window.CustomEvent('transitionend', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          bySwiperTouchMove: true\n        }\n      });\n      swiper.wrapperEl.dispatchEvent(evt);\n    }\n    data.allowMomentumBounce = false;\n    // Grab Cursor\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n    swiper.emit('sliderFirstMove', e);\n  }\n  let loopFixed;\n  new Date().getTime();\n  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n    Object.assign(touches, {\n      startX: pageX,\n      startY: pageY,\n      currentX: pageX,\n      currentY: pageY,\n      startTranslate: data.currentTranslate\n    });\n    data.loopSwapReset = true;\n    data.startTranslate = data.currentTranslate;\n    return;\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n      swiper.loopFix({\n        direction: 'prev',\n        setTranslate: true,\n        activeSlideIndex: 0\n      });\n    }\n    if (data.currentTranslate > swiper.minTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n      }\n    }\n  } else if (diff < 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n      swiper.loopFix({\n        direction: 'next',\n        setTranslate: true,\n        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n      });\n    }\n    if (data.currentTranslate < swiper.maxTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n      }\n    }\n  }\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  // Threshold\n  if (params.threshold > 0) {\n    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n      if (!data.allowThresholdMove) {\n        data.allowThresholdMove = true;\n        touches.startX = touches.currentX;\n        touches.startY = touches.currentY;\n        data.currentTranslate = data.startTranslate;\n        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n  if (!params.followFinger || params.cssMode) return;\n\n  // Update active index in free mode\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n    swiper.freeMode.onTouchMove();\n  }\n  // Update progress\n  swiper.updateProgress(data.currentTranslate);\n  // Update translate\n  swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n  const swiper = this;\n  const data = swiper.touchEventsData;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  let targetTouch;\n  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n  if (!isTouchEvent) {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    if (e.pointerId !== data.pointerId) return;\n    targetTouch = e;\n  } else {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  }\n  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n    if (!proceed) {\n      return;\n    }\n  }\n  data.pointerId = null;\n  data.touchId = null;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    slidesGrid,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n  data.allowTouchCallbacks = false;\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n\n  // Return Grab Cursor\n  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n    swiper.setGrabCursor(false);\n  }\n\n  // Time diff\n  const touchEndTime = now();\n  const timeDiff = touchEndTime - data.touchStartTime;\n\n  // Tap, doubleTap, Click\n  if (swiper.allowClick) {\n    const pathTree = e.path || e.composedPath && e.composedPath();\n    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n    swiper.emit('tap click', e);\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      swiper.emit('doubleTap doubleClick', e);\n    }\n  }\n  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n  if (params.cssMode) {\n    return;\n  }\n  if (params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({\n      currentPos\n    });\n    return;\n  }\n\n  // Find current slide\n  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n    if (typeof slidesGrid[i + increment] !== 'undefined') {\n      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + increment] - slidesGrid[i];\n      }\n    } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n  if (params.rewind) {\n    if (swiper.isBeginning) {\n      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    } else if (swiper.isEnd) {\n      rewindFirstIndex = 0;\n    }\n  }\n  // Find current slide size\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) {\n        swiper.slideTo(stopIndex + increment);\n      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n        swiper.slideTo(rewindLastIndex);\n      } else {\n        swiper.slideTo(stopIndex);\n      }\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n    if (!isNavButtonTarget) {\n      if (swiper.swipeDirection === 'next') {\n        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n      }\n      if (swiper.swipeDirection === 'prev') {\n        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n      }\n    } else if (e.target === swiper.navigation.nextEl) {\n      swiper.slideTo(stopIndex + increment);\n    } else {\n      swiper.slideTo(stopIndex);\n    }\n  }\n}\n\nfunction onResize() {\n  const swiper = this;\n  const {\n    params,\n    el\n  } = swiper;\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper;\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  swiper.updateSlidesClasses();\n  const isVirtualLoop = isVirtual && params.loop;\n  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n    swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n  } else {\n    if (swiper.params.loop && !isVirtual) {\n      swiper.slideToLoop(swiper.realIndex, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n  }\n  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    clearTimeout(swiper.autoplay.resizeTimeout);\n    swiper.autoplay.resizeTimeout = setTimeout(() => {\n      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n        swiper.autoplay.resume();\n      }\n    }, 500);\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}\n\nfunction onClick(e) {\n  const swiper = this;\n  if (!swiper.enabled) return;\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n    }\n  }\n}\n\nfunction onScroll() {\n  const swiper = this;\n  const {\n    wrapperEl,\n    rtlTranslate,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  swiper.previousTranslate = swiper.translate;\n  if (swiper.isHorizontal()) {\n    swiper.translate = -wrapperEl.scrollLeft;\n  } else {\n    swiper.translate = -wrapperEl.scrollTop;\n  }\n  // eslint-disable-next-line\n  if (swiper.translate === 0) swiper.translate = 0;\n  swiper.updateActiveIndex();\n  swiper.updateSlidesClasses();\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== swiper.progress) {\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n  const swiper = this;\n  processLazyPreloader(swiper, e.target);\n  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n    return;\n  }\n  swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n  const swiper = this;\n  if (swiper.documentTouchHandlerProceeded) return;\n  swiper.documentTouchHandlerProceeded = true;\n  if (swiper.params.touchReleaseOnEdges) {\n    swiper.el.style.touchAction = 'auto';\n  }\n}\n\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const {\n    params,\n    el,\n    wrapperEl,\n    device\n  } = swiper;\n  const capture = !!params.nested;\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n  const swiperMethod = method;\n  if (!el || typeof el === 'string') return;\n\n  // Touch Events\n  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n    passive: false,\n    capture\n  });\n  el[domMethod]('touchstart', swiper.onTouchStart, {\n    passive: false\n  });\n  el[domMethod]('pointerdown', swiper.onTouchStart, {\n    passive: false\n  });\n  document[domMethod]('touchmove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('pointermove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('touchend', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerup', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointercancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('touchcancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerout', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerleave', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('contextmenu', swiper.onTouchEnd, {\n    passive: true\n  });\n\n  // Prevent Links Clicks\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el[domMethod]('click', swiper.onClick, true);\n  }\n  if (params.cssMode) {\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\n  }\n\n  // Resize handler\n  if (params.updateOnWindowResize) {\n    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n  } else {\n    swiper[swiperMethod]('observerUpdate', onResize, true);\n  }\n\n  // Images loader\n  el[domMethod]('load', swiper.onLoad, {\n    capture: true\n  });\n};\nfunction attachEvents() {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n  swiper.onClick = onClick.bind(swiper);\n  swiper.onLoad = onLoad.bind(swiper);\n  events(swiper, 'on');\n}\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\nvar events$1 = {\n  attachEvents,\n  detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n  const swiper = this;\n  const {\n    realIndex,\n    initialized,\n    params,\n    el\n  } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n  const document = getDocument();\n\n  // Get breakpoint for window/container width and update parameters\n  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n  const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n  const wasMultiRow = isGridEnabled(swiper, params);\n  const isMultiRow = isGridEnabled(swiper, breakpointParams);\n  const wasGrabCursor = swiper.params.grabCursor;\n  const isGrabCursor = breakpointParams.grabCursor;\n  const wasEnabled = params.enabled;\n  if (wasMultiRow && !isMultiRow) {\n    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    el.classList.add(`${params.containerModifierClass}grid`);\n    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n      el.classList.add(`${params.containerModifierClass}grid-column`);\n    }\n    swiper.emitContainerClasses();\n  }\n  if (wasGrabCursor && !isGrabCursor) {\n    swiper.unsetGrabCursor();\n  } else if (!wasGrabCursor && isGrabCursor) {\n    swiper.setGrabCursor();\n  }\n\n  // Toggle navigation, pagination, scrollbar\n  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n    if (typeof breakpointParams[prop] === 'undefined') return;\n    const wasModuleEnabled = params[prop] && params[prop].enabled;\n    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n    if (wasModuleEnabled && !isModuleEnabled) {\n      swiper[prop].disable();\n    }\n    if (!wasModuleEnabled && isModuleEnabled) {\n      swiper[prop].enable();\n    }\n  });\n  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n  const wasLoop = params.loop;\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n  extend(swiper.params, breakpointParams);\n  const isEnabled = swiper.params.enabled;\n  const hasLoop = swiper.params.loop;\n  Object.assign(swiper, {\n    allowTouchMove: swiper.params.allowTouchMove,\n    allowSlideNext: swiper.params.allowSlideNext,\n    allowSlidePrev: swiper.params.allowSlidePrev\n  });\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n  swiper.currentBreakpoint = breakpoint;\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n  if (initialized) {\n    if (needsReLoop) {\n      swiper.loopDestroy();\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (!wasLoop && hasLoop) {\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (wasLoop && !hasLoop) {\n      swiper.loopDestroy();\n    }\n  }\n  swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base = 'window', containerEl) {\n  if (!breakpoints || base === 'container' && !containerEl) return undefined;\n  let breakpoint = false;\n  const window = getWindow();\n  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n  const points = Object.keys(breakpoints).map(point => {\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\n      const minRatio = parseFloat(point.substr(1));\n      const value = currentHeight * minRatio;\n      return {\n        value,\n        point\n      };\n    }\n    return {\n      value: point,\n      point\n    };\n  });\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n  for (let i = 0; i < points.length; i += 1) {\n    const {\n      point,\n      value\n    } = points[i];\n    if (base === 'window') {\n      if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n        breakpoint = point;\n      }\n    } else if (value <= containerEl.clientWidth) {\n      breakpoint = point;\n    }\n  }\n  return breakpoint || 'max';\n}\n\nvar breakpoints = {\n  setBreakpoint,\n  getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n  const resultClasses = [];\n  entries.forEach(item => {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach(classNames => {\n        if (item[classNames]) {\n          resultClasses.push(prefix + classNames);\n        }\n      });\n    } else if (typeof item === 'string') {\n      resultClasses.push(prefix + item);\n    }\n  });\n  return resultClasses;\n}\nfunction addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    el,\n    device\n  } = swiper;\n  // prettier-ignore\n  const suffixes = prepareClasses(['initialized', params.direction, {\n    'free-mode': swiper.params.freeMode && params.freeMode.enabled\n  }, {\n    'autoheight': params.autoHeight\n  }, {\n    'rtl': rtl\n  }, {\n    'grid': params.grid && params.grid.rows > 1\n  }, {\n    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n  }, {\n    'android': device.android\n  }, {\n    'ios': device.ios\n  }, {\n    'css-mode': params.cssMode\n  }, {\n    'centered': params.cssMode && params.centeredSlides\n  }, {\n    'watch-progress': params.watchSlidesProgress\n  }], params.containerModifierClass);\n  classNames.push(...suffixes);\n  el.classList.add(...classNames);\n  swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n  const swiper = this;\n  const {\n    el,\n    classNames\n  } = swiper;\n  if (!el || typeof el === 'string') return;\n  el.classList.remove(...classNames);\n  swiper.emitContainerClasses();\n}\n\nvar classes = {\n  addClasses,\n  removeClasses\n};\n\nfunction checkOverflow() {\n  const swiper = this;\n  const {\n    isLocked: wasLocked,\n    params\n  } = swiper;\n  const {\n    slidesOffsetBefore\n  } = params;\n  if (slidesOffsetBefore) {\n    const lastSlideIndex = swiper.slides.length - 1;\n    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n    swiper.isLocked = swiper.size > lastSlideRightEdge;\n  } else {\n    swiper.isLocked = swiper.snapGrid.length === 1;\n  }\n  if (params.allowSlideNext === true) {\n    swiper.allowSlideNext = !swiper.isLocked;\n  }\n  if (params.allowSlidePrev === true) {\n    swiper.allowSlidePrev = !swiper.isLocked;\n  }\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n  }\n  if (wasLocked !== swiper.isLocked) {\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  }\n}\nvar checkOverflow$1 = {\n  checkOverflow\n};\n\nvar defaults = {\n  init: true,\n  direction: 'horizontal',\n  oneWayMovement: false,\n  swiperElementNodeName: 'SWIPER-CONTAINER',\n  touchEventsTarget: 'wrapper',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: true,\n  nested: false,\n  createElements: false,\n  eventsPrefix: 'swiper',\n  enabled: true,\n  focusableElements: 'input, select, option, textarea, button, video, label',\n  // Overrides\n  width: null,\n  height: null,\n  //\n  preventInteractionOnTransition: false,\n  // ssr\n  userAgent: null,\n  url: null,\n  // To support iOS's swipe-to-go-back gesture (when being used in-app).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n  // Autoheight\n  autoHeight: false,\n  // Set wrapper width\n  setWrapperSize: false,\n  // Virtual Translate\n  virtualTranslate: false,\n  // Effects\n  effect: 'slide',\n  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsBase: 'window',\n  // Slides grid\n  spaceBetween: 0,\n  slidesPerView: 1,\n  slidesPerGroup: 1,\n  slidesPerGroupSkip: 0,\n  slidesPerGroupAuto: false,\n  centeredSlides: false,\n  centeredSlidesBounds: false,\n  slidesOffsetBefore: 0,\n  // in px\n  slidesOffsetAfter: 0,\n  // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n  snapToSlideEdge: false,\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: true,\n  // Round length\n  roundLengths: false,\n  // Touches\n  touchRatio: 1,\n  touchAngle: 45,\n  simulateTouch: true,\n  shortSwipes: true,\n  longSwipes: true,\n  longSwipesRatio: 0.5,\n  longSwipesMs: 300,\n  followFinger: true,\n  allowTouchMove: true,\n  threshold: 5,\n  touchMoveStopPropagation: false,\n  touchStartPreventDefault: true,\n  touchStartForcePreventDefault: false,\n  touchReleaseOnEdges: false,\n  // Unique Navigation Elements\n  uniqueNavElements: true,\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n  // Progress\n  watchSlidesProgress: false,\n  // Cursor\n  grabCursor: false,\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n  // loop\n  loop: false,\n  loopAddBlankSlides: true,\n  loopAdditionalSlides: 0,\n  loopPreventsSliding: true,\n  // rewind\n  rewind: false,\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null,\n  // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n  // Passive Listeners\n  passiveListeners: true,\n  maxBackfaceHiddenSlides: 10,\n  // NS\n  containerModifierClass: 'swiper-',\n  // NEW\n  slideClass: 'swiper-slide',\n  slideBlankClass: 'swiper-slide-blank',\n  slideActiveClass: 'swiper-slide-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideFullyVisibleClass: 'swiper-slide-fully-visible',\n  slideNextClass: 'swiper-slide-next',\n  slidePrevClass: 'swiper-slide-prev',\n  wrapperClass: 'swiper-wrapper',\n  lazyPreloaderClass: 'swiper-lazy-preloader',\n  lazyPreloadPrevNext: 0,\n  // Callbacks\n  runCallbacksOnInit: true,\n  // Internals\n  _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n  return function extendParams(obj = {}) {\n    const moduleParamName = Object.keys(obj)[0];\n    const moduleParams = obj[moduleParamName];\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        enabled: true\n      };\n    }\n    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n      params[moduleParamName].auto = true;\n    }\n    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n      params[moduleParamName].auto = true;\n    }\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n      params[moduleParamName].enabled = true;\n    }\n    if (!params[moduleParamName]) params[moduleParamName] = {\n      enabled: false\n    };\n    extend(allModulesParams, obj);\n  };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n  eventsEmitter,\n  update,\n  translate,\n  transition,\n  slide,\n  loop,\n  grabCursor,\n  events: events$1,\n  breakpoints,\n  checkOverflow: checkOverflow$1,\n  classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n  constructor(...args) {\n    let el;\n    let params;\n    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n    const document = getDocument();\n    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n      const swipers = [];\n      document.querySelectorAll(params.el).forEach(containerEl => {\n        const newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      // eslint-disable-next-line no-constructor-return\n      return swipers;\n    }\n\n    // Swiper Instance\n    const swiper = this;\n    swiper.__swiper__ = true;\n    swiper.support = getSupport();\n    swiper.device = getDevice({\n      userAgent: params.userAgent\n    });\n    swiper.browser = getBrowser();\n    swiper.eventsListeners = {};\n    swiper.eventsAnyListeners = [];\n    swiper.modules = [...swiper.__modules__];\n    if (params.modules && Array.isArray(params.modules)) {\n      params.modules.forEach(mod => {\n        if (typeof mod === 'function' && swiper.modules.indexOf(mod) < 0) {\n          swiper.modules.push(mod);\n        }\n      });\n    }\n    const allModulesParams = {};\n    swiper.modules.forEach(mod => {\n      mod({\n        params,\n        swiper,\n        extendParams: moduleExtendParams(params, allModulesParams),\n        on: swiper.on.bind(swiper),\n        once: swiper.once.bind(swiper),\n        off: swiper.off.bind(swiper),\n        emit: swiper.emit.bind(swiper)\n      });\n    });\n\n    // Extend defaults with modules params\n    const swiperParams = extend({}, defaults, allModulesParams);\n\n    // Extend defaults with passed params\n    swiper.params = extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = extend({}, swiper.params);\n    swiper.passedParams = extend({}, params);\n\n    // add event listeners\n    if (swiper.params && swiper.params.on) {\n      Object.keys(swiper.params.on).forEach(eventName => {\n        swiper.on(eventName, swiper.params.on[eventName]);\n      });\n    }\n    if (swiper.params && swiper.params.onAny) {\n      swiper.onAny(swiper.params.onAny);\n    }\n\n    // Extend Swiper\n    Object.assign(swiper, {\n      enabled: swiper.params.enabled,\n      el,\n      // Classes\n      classNames: [],\n      // Slides\n      slides: [],\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      cssOverflowAdjustment() {\n        // Returns 0 unless `translate` is > 2**23\n        // Should be subtracted from css values to prevent overflow\n        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n      },\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        focusableElements: swiper.params.focusableElements,\n        // Last click time\n        lastClickTime: 0,\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        startMoving: undefined,\n        pointerId: null,\n        touchId: null\n      },\n      // Clicks\n      allowClick: true,\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0\n      },\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0\n    });\n    swiper.emit('_swiper');\n\n    // Init\n    if (swiper.params.init) {\n      swiper.init();\n    }\n\n    // Return app instance\n    // eslint-disable-next-line no-constructor-return\n    return swiper;\n  }\n  getDirectionLabel(property) {\n    if (this.isHorizontal()) {\n      return property;\n    }\n    // prettier-ignore\n    return {\n      'width': 'height',\n      'margin-top': 'margin-left',\n      'margin-bottom ': 'margin-right',\n      'margin-left': 'margin-top',\n      'margin-right': 'margin-bottom',\n      'padding-left': 'padding-top',\n      'padding-right': 'padding-bottom',\n      'marginRight': 'marginBottom'\n    }[property];\n  }\n  getSlideIndex(slideEl) {\n    const {\n      slidesEl,\n      params\n    } = this;\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    const firstSlideIndex = elementIndex(slides[0]);\n    return elementIndex(slideEl) - firstSlideIndex;\n  }\n  getSlideIndexByData(index) {\n    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n  }\n  getSlideIndexWhenGrid(index) {\n    if (this.grid && this.params.grid && this.params.grid.rows > 1) {\n      if (this.params.grid.fill === 'column') {\n        index = Math.floor(index / this.params.grid.rows);\n      } else if (this.params.grid.fill === 'row') {\n        index = index % Math.ceil(this.slides.length / this.params.grid.rows);\n      }\n    }\n    return index;\n  }\n  recalcSlides() {\n    const swiper = this;\n    const {\n      slidesEl,\n      params\n    } = swiper;\n    swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n  }\n  enable() {\n    const swiper = this;\n    if (swiper.enabled) return;\n    swiper.enabled = true;\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n    swiper.emit('enable');\n  }\n  disable() {\n    const swiper = this;\n    if (!swiper.enabled) return;\n    swiper.enabled = false;\n    if (swiper.params.grabCursor) {\n      swiper.unsetGrabCursor();\n    }\n    swiper.emit('disable');\n  }\n  setProgress(progress, speed) {\n    const swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    const min = swiper.minTranslate();\n    const max = swiper.maxTranslate();\n    const current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter(className => {\n      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\n  getSlideClasses(slideEl) {\n    const swiper = this;\n    if (swiper.destroyed) return '';\n    return slideEl.className.split(' ').filter(className => {\n      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n    }).join(' ');\n  }\n  emitSlidesClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const updates = [];\n    swiper.slides.forEach(slideEl => {\n      const classNames = swiper.getSlideClasses(slideEl);\n      updates.push({\n        slideEl,\n        classNames\n      });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  }\n  slidesPerViewDynamic(view = 'current', exact = false) {\n    const swiper = this;\n    const {\n      params,\n      slides,\n      slidesGrid,\n      slidesSizesGrid,\n      size: swiperSize,\n      activeIndex\n    } = swiper;\n    let spv = 1;\n    if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n      let breakLoop;\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += Math.ceil(slides[i].swiperSlideSize);\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n      for (let i = activeIndex - 1; i >= 0; i -= 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n    } else {\n      // eslint-disable-next-line\n      if (view === 'current') {\n        for (let i = activeIndex + 1; i < slides.length; i += 1) {\n          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      } else {\n        // previous\n        for (let i = activeIndex - 1; i >= 0; i -= 1) {\n          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      }\n    }\n    return spv;\n  }\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      }\n    });\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    let translated;\n    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n      setTranslate();\n      if (params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n    } else {\n      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n        translated = swiper.slideTo(slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n      if (!translated) {\n        setTranslate();\n      }\n    }\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n    swiper.emit('update');\n  }\n  changeDirection(newDirection, needUpdate = true) {\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n    swiper.params.direction = newDirection;\n    swiper.slides.forEach(slideEl => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n    return swiper;\n  }\n  changeLanguageDirection(direction) {\n    const swiper = this;\n    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n    swiper.rtl = direction === 'rtl';\n    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n    if (swiper.rtl) {\n      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'rtl';\n    } else {\n      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'ltr';\n    }\n    swiper.update();\n  }\n  mount(element) {\n    const swiper = this;\n    if (swiper.mounted) return true;\n\n    // Find el\n    let el = element || swiper.params.el;\n    if (typeof el === 'string') {\n      el = document.querySelector(el);\n    }\n    if (!el) {\n      return false;\n    }\n    el.swiper = swiper;\n    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n      swiper.isElement = true;\n    }\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n    };\n    const getWrapper = () => {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        const res = el.shadowRoot.querySelector(getWrapperSelector());\n        // Children needs to return slot items\n        return res;\n      }\n      return elementChildren(el, getWrapperSelector())[0];\n    };\n    // Find Wrapper\n    let wrapperEl = getWrapper();\n    if (!wrapperEl && swiper.params.createElements) {\n      wrapperEl = createElement('div', swiper.params.wrapperClass);\n      el.append(wrapperEl);\n      elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n        wrapperEl.append(slideEl);\n      });\n    }\n    Object.assign(swiper, {\n      el,\n      wrapperEl,\n      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n      hostEl: swiper.isElement ? el.parentNode.host : el,\n      mounted: true,\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n      wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n    });\n    return true;\n  }\n  init(el) {\n    const swiper = this;\n    if (swiper.initialized) return swiper;\n    const mounted = swiper.mount(el);\n    if (mounted === false) return swiper;\n    swiper.emit('beforeInit');\n\n    // Set breakpoint\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    // Add Classes\n    swiper.addClasses();\n\n    // Update size\n    swiper.updateSize();\n\n    // Update slides\n    swiper.updateSlides();\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    }\n\n    // Set Grab Cursor\n    if (swiper.params.grabCursor && swiper.enabled) {\n      swiper.setGrabCursor();\n    }\n\n    // Slide To Initial Slide\n    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n    }\n\n    // Create loop\n    if (swiper.params.loop) {\n      swiper.loopCreate(undefined, true);\n    }\n\n    // Attach events\n    swiper.attachEvents();\n    const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n    if (swiper.isElement) {\n      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n    }\n    lazyElements.forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      } else {\n        imageEl.addEventListener('load', e => {\n          processLazyPreloader(swiper, e.target);\n        });\n      }\n    });\n    preload(swiper);\n\n    // Init Flag\n    swiper.initialized = true;\n    preload(swiper);\n\n    // Emit\n    swiper.emit('init');\n    swiper.emit('afterInit');\n    return swiper;\n  }\n  destroy(deleteInstance = true, cleanStyles = true) {\n    const swiper = this;\n    const {\n      params,\n      el,\n      wrapperEl,\n      slides\n    } = swiper;\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n    swiper.emit('beforeDestroy');\n\n    // Init Flag\n    swiper.initialized = false;\n\n    // Detach events\n    swiper.detachEvents();\n\n    // Destroy loop\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    // Cleanup styles\n    if (cleanStyles) {\n      swiper.removeClasses();\n      if (el && typeof el !== 'string') {\n        el.removeAttribute('style');\n      }\n      if (wrapperEl) {\n        wrapperEl.removeAttribute('style');\n      }\n      if (slides && slides.length) {\n        slides.forEach(slideEl => {\n          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n          slideEl.removeAttribute('style');\n          slideEl.removeAttribute('data-swiper-slide-index');\n        });\n      }\n    }\n    swiper.emit('destroy');\n\n    // Detach emitter events\n    Object.keys(swiper.eventsListeners).forEach(eventName => {\n      swiper.off(eventName);\n    });\n    if (deleteInstance !== false) {\n      if (swiper.el && typeof swiper.el !== 'string') {\n        swiper.el.swiper = null;\n      }\n      deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n    return null;\n  }\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n  static get defaults() {\n    return defaults;\n  }\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\n    }\n  }\n  static use(module) {\n    if (Array.isArray(module)) {\n      module.forEach(m => Swiper.installModule(m));\n      return Swiper;\n    }\n    Swiper.installModule(module);\n    return Swiper;\n  }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n","/**\n * SSR Window 5.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: June 27, 2025\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target = {}, src = {}) {\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      extend(target[key], src[key]);\n    }\n  });\n}\nconst ssrDocument = {\n  body: {},\n  addEventListener() {},\n  removeEventListener() {},\n  activeElement: {\n    blur() {},\n    nodeName: ''\n  },\n  querySelector() {\n    return null;\n  },\n  querySelectorAll() {\n    return [];\n  },\n  getElementById() {\n    return null;\n  },\n  createEvent() {\n    return {\n      initEvent() {}\n    };\n  },\n  createElement() {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n      setAttribute() {},\n      getElementsByTagName() {\n        return [];\n      }\n    };\n  },\n  createElementNS() {\n    return {};\n  },\n  importNode() {\n    return null;\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  }\n};\nfunction getDocument() {\n  const doc = typeof document !== 'undefined' ? document : {};\n  extend(doc, ssrDocument);\n  return doc;\n}\nconst ssrWindow = {\n  document: ssrDocument,\n  navigator: {\n    userAgent: ''\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  },\n  history: {\n    replaceState() {},\n    pushState() {},\n    go() {},\n    back() {}\n  },\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener() {},\n  removeEventListener() {},\n  getComputedStyle() {\n    return {\n      getPropertyValue() {\n        return '';\n      }\n    };\n  },\n  Image() {},\n  Date() {},\n  screen: {},\n  setTimeout() {},\n  clearTimeout() {},\n  matchMedia() {\n    return {};\n  },\n  requestAnimationFrame(callback) {\n    if (typeof setTimeout === 'undefined') {\n      callback();\n      return null;\n    }\n    return setTimeout(callback, 0);\n  },\n  cancelAnimationFrame(id) {\n    if (typeof setTimeout === 'undefined') {\n      return;\n    }\n    clearTimeout(id);\n  }\n};\nfunction getWindow() {\n  const win = typeof window !== 'undefined' ? window : {};\n  extend(win, ssrWindow);\n  return win;\n}\n\nexport { getWindow as a, getDocument as g };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes = '') {\n  return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n  const object = obj;\n  Object.keys(object).forEach(key => {\n    try {\n      object[key] = null;\n    } catch (e) {\n      // no getter for object\n    }\n    try {\n      delete object[key];\n    } catch (e) {\n      // something got wrong\n    }\n  });\n}\nfunction nextTick(callback, delay = 0) {\n  return setTimeout(callback, delay);\n}\nfunction now() {\n  return Date.now();\n}\nfunction getComputedStyle(el) {\n  const window = getWindow();\n  let style;\n  if (window.getComputedStyle) {\n    style = window.getComputedStyle(el, null);\n  }\n  if (!style && el.currentStyle) {\n    style = el.currentStyle;\n  }\n  if (!style) {\n    style = el.style;\n  }\n  return style;\n}\nfunction getTranslate(el, axis = 'x') {\n  const window = getWindow();\n  let matrix;\n  let curTransform;\n  let transformMatrix;\n  const curStyle = getComputedStyle(el);\n  if (window.WebKitCSSMatrix) {\n    curTransform = curStyle.transform || curStyle.webkitTransform;\n    if (curTransform.split(',').length > 6) {\n      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n    }\n    // Some old versions of Webkit choke when 'none' is passed; pass\n    // empty string instead in this case\n    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n  } else {\n    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n    matrix = transformMatrix.toString().split(',');\n  }\n  if (axis === 'x') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[4]);\n  }\n  if (axis === 'y') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[5]);\n  }\n  return curTransform || 0;\n}\nfunction isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n  // eslint-disable-next-line\n  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n    return node instanceof HTMLElement;\n  }\n  return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n  const to = Object(args[0]);\n  for (let i = 1; i < args.length; i += 1) {\n    const nextSource = args[i];\n    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n      const keysArray = Object.keys(Object(nextSource)).filter(key => key !== '__proto__' && key !== 'constructor' && key !== 'prototype');\n      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n        const nextKey = keysArray[nextIndex];\n        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n        if (desc !== undefined && desc.enumerable) {\n          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            to[nextKey] = {};\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else {\n            to[nextKey] = nextSource[nextKey];\n          }\n        }\n      }\n    }\n  }\n  return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n  el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n  swiper,\n  targetPosition,\n  side\n}) {\n  const window = getWindow();\n  const startPosition = -swiper.translate;\n  let startTime = null;\n  let time;\n  const duration = swiper.params.speed;\n  swiper.wrapperEl.style.scrollSnapType = 'none';\n  window.cancelAnimationFrame(swiper.cssModeFrameID);\n  const dir = targetPosition > startPosition ? 'next' : 'prev';\n  const isOutOfBound = (current, target) => {\n    return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n  };\n  const animate = () => {\n    time = new Date().getTime();\n    if (startTime === null) {\n      startTime = time;\n    }\n    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      currentPosition = targetPosition;\n    }\n    swiper.wrapperEl.scrollTo({\n      [side]: currentPosition\n    });\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.scrollSnapType = '';\n      setTimeout(() => {\n        swiper.wrapperEl.style.overflow = '';\n        swiper.wrapperEl.scrollTo({\n          [side]: currentPosition\n        });\n      });\n      window.cancelAnimationFrame(swiper.cssModeFrameID);\n      return;\n    }\n    swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n  };\n  animate();\n}\nfunction getSlideTransformEl(slideEl) {\n  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector = '') {\n  const window = getWindow();\n  const children = [...element.children];\n  if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n    children.push(...element.assignedElements());\n  }\n  if (!selector) {\n    return children;\n  }\n  return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n  // Breadth-first search through all parent's children and assigned elements\n  const elementsQueue = [slot];\n  while (elementsQueue.length > 0) {\n    const elementToCheck = elementsQueue.shift();\n    if (el === elementToCheck) {\n      return true;\n    }\n    elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n  }\n}\nfunction elementIsChildOf(el, parent) {\n  const window = getWindow();\n  let isChild = parent.contains(el);\n  if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n    const children = [...parent.assignedElements()];\n    isChild = children.includes(el);\n    if (!isChild) {\n      isChild = elementIsChildOfSlot(el, parent);\n    }\n  }\n  return isChild;\n}\nfunction showWarning(text) {\n  try {\n    console.warn(text);\n    return;\n  } catch (err) {\n    // err\n  }\n}\nfunction createElement(tag, classes = []) {\n  const el = document.createElement(tag);\n  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n  return el;\n}\nfunction elementOffset(el) {\n  const window = getWindow();\n  const document = getDocument();\n  const box = el.getBoundingClientRect();\n  const body = document.body;\n  const clientTop = el.clientTop || body.clientTop || 0;\n  const clientLeft = el.clientLeft || body.clientLeft || 0;\n  const scrollTop = el === window ? window.scrollY : el.scrollTop;\n  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n  return {\n    top: box.top + scrollTop - clientTop,\n    left: box.left + scrollLeft - clientLeft\n  };\n}\nfunction elementPrevAll(el, selector) {\n  const prevEls = [];\n  while (el.previousElementSibling) {\n    const prev = el.previousElementSibling; // eslint-disable-line\n    if (selector) {\n      if (prev.matches(selector)) prevEls.push(prev);\n    } else prevEls.push(prev);\n    el = prev;\n  }\n  return prevEls;\n}\nfunction elementNextAll(el, selector) {\n  const nextEls = [];\n  while (el.nextElementSibling) {\n    const next = el.nextElementSibling; // eslint-disable-line\n    if (selector) {\n      if (next.matches(selector)) nextEls.push(next);\n    } else nextEls.push(next);\n    el = next;\n  }\n  return nextEls;\n}\nfunction elementStyle(el, prop) {\n  const window = getWindow();\n  return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n  let child = el;\n  let i;\n  if (child) {\n    i = 0;\n    // eslint-disable-next-line\n    while ((child = child.previousSibling) !== null) {\n      if (child.nodeType === 1) i += 1;\n    }\n    return i;\n  }\n  return undefined;\n}\nfunction elementParents(el, selector) {\n  const parents = []; // eslint-disable-line\n  let parent = el.parentElement; // eslint-disable-line\n  while (parent) {\n    if (selector) {\n      if (parent.matches(selector)) parents.push(parent);\n    } else {\n      parents.push(parent);\n    }\n    parent = parent.parentElement;\n  }\n  return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n  function fireCallBack(e) {\n    if (e.target !== el) return;\n    callback.call(el, e);\n    el.removeEventListener('transitionend', fireCallBack);\n  }\n  if (callback) {\n    el.addEventListener('transitionend', fireCallBack);\n  }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n  const window = getWindow();\n  if (includeMargins) {\n    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'));\n  }\n  return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n  return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n  return v => {\n    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n      return v + 0.001;\n    }\n    return v;\n  };\n}\nfunction setInnerHTML(el, html = '') {\n  if (typeof trustedTypes !== 'undefined') {\n    el.innerHTML = trustedTypes.createPolicy('html', {\n      createHTML: s => s\n    }).createHTML(html);\n  } else {\n    el.innerHTML = html;\n  }\n}\n\nexport { getRotateFix as a, setCSSProperty as b, createElement as c, elementParents as d, elementChildren as e, elementOffset as f, getSlideTransformEl as g, now as h, elementOuterSize as i, elementIndex as j, classesToTokens as k, getTranslate as l, makeElementsArray as m, nextTick as n, elementTransitionEnd as o, isObject as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };\n","import { s as setInnerHTML } from './utils.mjs';\n\n/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'swiperElementNodeName', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_snapToSlideEdge', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopAdditionalSlides', 'loopAddBlankSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideFullyVisibleClass', 'slideNextClass', 'slidePrevClass', 'slideBlankClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\n\nfunction isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n    } else {\n      target[key] = src[key];\n    }\n  });\n}\nfunction needsNavigation(params = {}) {\n  return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params = {}) {\n  return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params = {}) {\n  return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames = '') {\n  const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n  const unique = [];\n  classes.forEach(c => {\n    if (unique.indexOf(c) < 0) unique.push(c);\n  });\n  return unique.join(' ');\n}\nfunction attrToProp(attrName = '') {\n  return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className = '') {\n  if (!className) return 'swiper-wrapper';\n  if (!className.includes('swiper-wrapper')) return `swiper-wrapper ${className}`;\n  return className;\n}\n\nfunction updateSwiper({\n  swiper,\n  slides,\n  passedParams,\n  changedParams,\n  nextEl,\n  prevEl,\n  scrollbarEl,\n  paginationEl\n}) {\n  const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n  const {\n    params: currentParams,\n    pagination,\n    navigation,\n    scrollbar,\n    virtual,\n    thumbs\n  } = swiper;\n  let needThumbsInit;\n  let needControllerInit;\n  let needPaginationInit;\n  let needScrollbarInit;\n  let needNavigationInit;\n  let loopNeedDestroy;\n  let loopNeedEnable;\n  let loopNeedReloop;\n  if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && !passedParams.thumbs.swiper.destroyed && currentParams.thumbs && (!currentParams.thumbs.swiper || currentParams.thumbs.swiper.destroyed)) {\n    needThumbsInit = true;\n  }\n  if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n    needControllerInit = true;\n  }\n  if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n    needPaginationInit = true;\n  }\n  if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n    needScrollbarInit = true;\n  }\n  if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n    needNavigationInit = true;\n  }\n  const destroyModule = mod => {\n    if (!swiper[mod]) return;\n    swiper[mod].destroy();\n    if (mod === 'navigation') {\n      if (swiper.isElement) {\n        swiper[mod].prevEl.remove();\n        swiper[mod].nextEl.remove();\n      }\n      currentParams[mod].prevEl = undefined;\n      currentParams[mod].nextEl = undefined;\n      swiper[mod].prevEl = undefined;\n      swiper[mod].nextEl = undefined;\n    } else {\n      if (swiper.isElement) {\n        swiper[mod].el.remove();\n      }\n      currentParams[mod].el = undefined;\n      swiper[mod].el = undefined;\n    }\n  };\n  if (changedParams.includes('loop') && swiper.isElement) {\n    if (currentParams.loop && !passedParams.loop) {\n      loopNeedDestroy = true;\n    } else if (!currentParams.loop && passedParams.loop) {\n      loopNeedEnable = true;\n    } else {\n      loopNeedReloop = true;\n    }\n  }\n  updateParams.forEach(key => {\n    if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n      Object.assign(currentParams[key], passedParams[key]);\n      if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n        destroyModule(key);\n      }\n    } else {\n      const newValue = passedParams[key];\n      if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n        if (newValue === false) {\n          destroyModule(key);\n        }\n      } else {\n        currentParams[key] = passedParams[key];\n      }\n    }\n  });\n  if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n  if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n    virtual.slides = slides;\n    virtual.update(true);\n  } else if (changedParams.includes('virtual') && virtual && currentParams.virtual.enabled) {\n    if (slides) virtual.slides = slides;\n    virtual.update(true);\n  }\n  if (changedParams.includes('children') && slides && currentParams.loop) {\n    loopNeedReloop = true;\n  }\n  if (needThumbsInit) {\n    const initialized = thumbs.init();\n    if (initialized) thumbs.update(true);\n  }\n  if (needControllerInit) {\n    swiper.controller.control = currentParams.controller.control;\n  }\n  if (needPaginationInit) {\n    if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n      paginationEl = document.createElement('div');\n      paginationEl.classList.add('swiper-pagination');\n      paginationEl.part.add('pagination');\n      swiper.el.appendChild(paginationEl);\n    }\n    if (paginationEl) currentParams.pagination.el = paginationEl;\n    pagination.init();\n    pagination.render();\n    pagination.update();\n  }\n  if (needScrollbarInit) {\n    if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n      scrollbarEl = document.createElement('div');\n      scrollbarEl.classList.add('swiper-scrollbar');\n      scrollbarEl.part.add('scrollbar');\n      swiper.el.appendChild(scrollbarEl);\n    }\n    if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n    scrollbar.init();\n    scrollbar.updateSize();\n    scrollbar.setTranslate();\n  }\n  if (needNavigationInit) {\n    if (swiper.isElement) {\n      if (!nextEl || typeof nextEl === 'string') {\n        nextEl = document.createElement('div');\n        nextEl.classList.add('swiper-button-next');\n        setInnerHTML(nextEl, swiper.navigation.arrowSvg);\n        nextEl.part.add('button-next');\n        swiper.el.appendChild(nextEl);\n      }\n      if (!prevEl || typeof prevEl === 'string') {\n        prevEl = document.createElement('div');\n        prevEl.classList.add('swiper-button-prev');\n        setInnerHTML(prevEl, swiper.navigation.arrowSvg);\n        prevEl.part.add('button-prev');\n        swiper.el.appendChild(prevEl);\n      }\n    }\n    if (nextEl) currentParams.navigation.nextEl = nextEl;\n    if (prevEl) currentParams.navigation.prevEl = prevEl;\n    navigation.init();\n    navigation.update();\n  }\n  if (changedParams.includes('allowSlideNext')) {\n    swiper.allowSlideNext = passedParams.allowSlideNext;\n  }\n  if (changedParams.includes('allowSlidePrev')) {\n    swiper.allowSlidePrev = passedParams.allowSlidePrev;\n  }\n  if (changedParams.includes('direction')) {\n    swiper.changeDirection(passedParams.direction, false);\n  }\n  if (loopNeedDestroy || loopNeedReloop) {\n    swiper.loopDestroy();\n  }\n  if (loopNeedEnable || loopNeedReloop) {\n    swiper.loopCreate();\n  }\n  swiper.update();\n}\n\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };\n","/**\n * Swiper React 12.1.2\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2026 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: February 18, 2026\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\n\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nfunction isChildSwiperSlide(child) {\n  return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n  const slides = [];\n  React.Children.toArray(c).forEach(child => {\n    if (isChildSwiperSlide(child)) {\n      slides.push(child);\n    } else if (child.props && child.props.children) {\n      processChildren(child.props.children).forEach(slide => slides.push(slide));\n    }\n  });\n  return slides;\n}\nfunction getChildren(c) {\n  const slides = [];\n  const slots = {\n    'container-start': [],\n    'container-end': [],\n    'wrapper-start': [],\n    'wrapper-end': []\n  };\n  React.Children.toArray(c).forEach(child => {\n    if (isChildSwiperSlide(child)) {\n      slides.push(child);\n    } else if (child.props && child.props.slot && slots[child.props.slot]) {\n      slots[child.props.slot].push(child);\n    } else if (child.props && child.props.children) {\n      const foundSlides = processChildren(child.props.children);\n      if (foundSlides.length > 0) {\n        foundSlides.forEach(slide => slides.push(slide));\n      } else {\n        slots['container-end'].push(child);\n      }\n    } else {\n      slots['container-end'].push(child);\n    }\n  });\n  return {\n    slides,\n    slots\n  };\n}\n\nfunction renderVirtual(swiper, slides, virtualData) {\n  if (!virtualData) return null;\n  const getSlideIndex = index => {\n    let slideIndex = index;\n    if (index < 0) {\n      slideIndex = slides.length + index;\n    } else if (slideIndex >= slides.length) {\n      // eslint-disable-next-line\n      slideIndex = slideIndex - slides.length;\n    }\n    return slideIndex;\n  };\n  const style = swiper.isHorizontal() ? {\n    [swiper.rtlTranslate ? 'right' : 'left']: `${virtualData.offset}px`\n  } : {\n    top: `${virtualData.offset}px`\n  };\n  const {\n    from,\n    to\n  } = virtualData;\n  const loopFrom = swiper.params.loop ? -slides.length : 0;\n  const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n  const slidesToRender = [];\n  for (let i = loopFrom; i < loopTo; i += 1) {\n    if (i >= from && i <= to) {\n      slidesToRender.push(slides[getSlideIndex(i)]);\n    }\n  }\n  return slidesToRender.map((child, index) => {\n    return /*#__PURE__*/React.cloneElement(child, {\n      swiper,\n      style,\n      key: child.props.virtualIndex || child.key || `slide-${index}`\n    });\n  });\n}\n\nfunction useIsomorphicLayoutEffect(callback, deps) {\n  // eslint-disable-next-line\n  if (typeof window === 'undefined') return useEffect(callback, deps);\n  return useLayoutEffect(callback, deps);\n}\n\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n  return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n  return useContext(SwiperContext);\n};\n\nconst Swiper = /*#__PURE__*/forwardRef(({\n  className,\n  tag: Tag = 'div',\n  wrapperTag: WrapperTag = 'div',\n  children,\n  onSwiper,\n  ...rest\n} = {}, externalElRef) => {\n  let eventsAssigned = false;\n  const [containerClasses, setContainerClasses] = useState('swiper');\n  const [virtualData, setVirtualData] = useState(null);\n  const [breakpointChanged, setBreakpointChanged] = useState(false);\n  const initializedRef = useRef(false);\n  const swiperElRef = useRef(null);\n  const swiperRef = useRef(null);\n  const oldPassedParamsRef = useRef(null);\n  const oldSlides = useRef(null);\n  const nextElRef = useRef(null);\n  const prevElRef = useRef(null);\n  const paginationElRef = useRef(null);\n  const scrollbarElRef = useRef(null);\n  const {\n    params: swiperParams,\n    passedParams,\n    rest: restProps,\n    events\n  } = getParams(rest);\n  const {\n    slides,\n    slots\n  } = getChildren(children);\n  const onBeforeBreakpoint = () => {\n    setBreakpointChanged(!breakpointChanged);\n  };\n  Object.assign(swiperParams.on, {\n    _containerClasses(swiper, classes) {\n      setContainerClasses(classes);\n    }\n  });\n  const initSwiper = () => {\n    // init swiper\n    Object.assign(swiperParams.on, events);\n    eventsAssigned = true;\n    const passParams = {\n      ...swiperParams\n    };\n    delete passParams.wrapperClass;\n    swiperRef.current = new Swiper$1(passParams);\n    if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n      swiperRef.current.virtual.slides = slides;\n      const extendWith = {\n        cache: false,\n        slides,\n        renderExternal: setVirtualData,\n        renderExternalUpdate: false\n      };\n      extend(swiperRef.current.params.virtual, extendWith);\n      extend(swiperRef.current.originalParams.virtual, extendWith);\n    }\n  };\n  if (!swiperElRef.current) {\n    initSwiper();\n  }\n\n  // Listen for breakpoints change\n  if (swiperRef.current) {\n    swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n  }\n  const attachEvents = () => {\n    if (eventsAssigned || !events || !swiperRef.current) return;\n    Object.keys(events).forEach(eventName => {\n      swiperRef.current.on(eventName, events[eventName]);\n    });\n  };\n  const detachEvents = () => {\n    if (!events || !swiperRef.current) return;\n    Object.keys(events).forEach(eventName => {\n      swiperRef.current.off(eventName, events[eventName]);\n    });\n  };\n  useEffect(() => {\n    return () => {\n      if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n    };\n  });\n\n  // set initialized flag\n  useEffect(() => {\n    if (!initializedRef.current && swiperRef.current) {\n      swiperRef.current.emitSlidesClasses();\n      initializedRef.current = true;\n    }\n  });\n\n  // mount swiper\n  useIsomorphicLayoutEffect(() => {\n    if (externalElRef) {\n      externalElRef.current = swiperElRef.current;\n    }\n    if (!swiperElRef.current) return;\n    if (swiperRef.current.destroyed) {\n      initSwiper();\n    }\n    mountSwiper({\n      el: swiperElRef.current,\n      nextEl: nextElRef.current,\n      prevEl: prevElRef.current,\n      paginationEl: paginationElRef.current,\n      scrollbarEl: scrollbarElRef.current,\n      swiper: swiperRef.current\n    }, swiperParams);\n    if (onSwiper && !swiperRef.current.destroyed) onSwiper(swiperRef.current);\n    // eslint-disable-next-line\n    return () => {\n      if (swiperRef.current && !swiperRef.current.destroyed) {\n        swiperRef.current.destroy(true, false);\n      }\n    };\n  }, []);\n\n  // watch for params change\n  useIsomorphicLayoutEffect(() => {\n    attachEvents();\n    const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n    oldPassedParamsRef.current = passedParams;\n    oldSlides.current = slides;\n    if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n      updateSwiper({\n        swiper: swiperRef.current,\n        slides,\n        passedParams,\n        changedParams,\n        nextEl: nextElRef.current,\n        prevEl: prevElRef.current,\n        scrollbarEl: scrollbarElRef.current,\n        paginationEl: paginationElRef.current\n      });\n    }\n    return () => {\n      detachEvents();\n    };\n  });\n\n  // update on virtual update\n  useIsomorphicLayoutEffect(() => {\n    updateOnVirtualData(swiperRef.current);\n  }, [virtualData]);\n\n  // bypass swiper instance to slides\n  function renderSlides() {\n    if (swiperParams.virtual) {\n      return renderVirtual(swiperRef.current, slides, virtualData);\n    }\n    return slides.map((child, index) => {\n      return /*#__PURE__*/React.cloneElement(child, {\n        swiper: swiperRef.current,\n        swiperSlideIndex: index\n      });\n    });\n  }\n  return /*#__PURE__*/React.createElement(Tag, _extends({\n    ref: swiperElRef,\n    className: uniqueClasses(`${containerClasses}${className ? ` ${className}` : ''}`)\n  }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n    value: swiperRef.current\n  }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n    className: wrapperClass(swiperParams.wrapperClass)\n  }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    ref: prevElRef,\n    className: \"swiper-button-prev\"\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    ref: nextElRef,\n    className: \"swiper-button-next\"\n  })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n    ref: scrollbarElRef,\n    className: \"swiper-scrollbar\"\n  }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n    ref: paginationElRef,\n    className: \"swiper-pagination\"\n  }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\n\nconst SwiperSlide = /*#__PURE__*/forwardRef(({\n  tag: Tag = 'div',\n  children,\n  className = '',\n  swiper,\n  zoom,\n  lazy,\n  virtualIndex,\n  swiperSlideIndex,\n  ...rest\n} = {}, externalRef) => {\n  const slideElRef = useRef(null);\n  const [slideClasses, setSlideClasses] = useState('swiper-slide');\n  const [lazyLoaded, setLazyLoaded] = useState(false);\n  function updateClasses(_s, el, classNames) {\n    if (el === slideElRef.current) {\n      setSlideClasses(classNames);\n    }\n  }\n  useIsomorphicLayoutEffect(() => {\n    if (typeof swiperSlideIndex !== 'undefined') {\n      slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n    }\n    if (externalRef) {\n      externalRef.current = slideElRef.current;\n    }\n    if (!slideElRef.current || !swiper) {\n      return;\n    }\n    if (swiper.destroyed) {\n      if (slideClasses !== 'swiper-slide') {\n        setSlideClasses('swiper-slide');\n      }\n      return;\n    }\n    swiper.on('_slideClass', updateClasses);\n    // eslint-disable-next-line\n    return () => {\n      if (!swiper) return;\n      swiper.off('_slideClass', updateClasses);\n    };\n  });\n  useIsomorphicLayoutEffect(() => {\n    if (swiper && slideElRef.current && !swiper.destroyed) {\n      setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n    }\n  }, [swiper]);\n  const slideData = {\n    isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n    isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n    isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n    isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n  };\n  const renderChildren = () => {\n    return typeof children === 'function' ? children(slideData) : children;\n  };\n  const onLoad = () => {\n    setLazyLoaded(true);\n  };\n  return /*#__PURE__*/React.createElement(Tag, _extends({\n    ref: slideElRef,\n    className: uniqueClasses(`${slideClasses}${className ? ` ${className}` : ''}`),\n    \"data-swiper-slide-index\": virtualIndex,\n    onLoad: onLoad\n  }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n    value: slideData\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"swiper-zoom-container\",\n    \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n  }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"swiper-lazy-preloader\",\n    ref: node => {\n      if (node) node.lazyPreloaderManaged = true;\n    }\n  }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n    value: slideData\n  }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"swiper-lazy-preloader\",\n    ref: node => {\n      if (node) node.lazyPreloaderManaged = true;\n    }\n  })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\n\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };\n","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\n\nfunction getParams(obj = {}, splitEvents = true) {\n  const params = {\n    on: {}\n  };\n  const events = {};\n  const passedParams = {};\n  extend(params, defaults);\n  params._emitClasses = true;\n  params.init = false;\n  const rest = {};\n  const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n  const plainObj = Object.assign({}, obj);\n  Object.keys(plainObj).forEach(key => {\n    if (typeof obj[key] === 'undefined') return;\n    if (allowedParams.indexOf(key) >= 0) {\n      if (isObject(obj[key])) {\n        params[key] = {};\n        passedParams[key] = {};\n        extend(params[key], obj[key]);\n        extend(passedParams[key], obj[key]);\n      } else {\n        params[key] = obj[key];\n        passedParams[key] = obj[key];\n      }\n    } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n      if (splitEvents) {\n        events[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n      } else {\n        params.on[`${key[2].toLowerCase()}${key.substr(3)}`] = obj[key];\n      }\n    } else {\n      rest[key] = obj[key];\n    }\n  });\n  ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n    if (params[key] === true) params[key] = {};\n    if (params[key] === false) delete params[key];\n  });\n  return {\n    params,\n    passedParams,\n    rest,\n    events\n  };\n}\n\nfunction mountSwiper({\n  el,\n  nextEl,\n  prevEl,\n  paginationEl,\n  scrollbarEl,\n  swiper\n}, swiperParams) {\n  if (needsNavigation(swiperParams) && nextEl && prevEl) {\n    swiper.params.navigation.nextEl = nextEl;\n    swiper.originalParams.navigation.nextEl = nextEl;\n    swiper.params.navigation.prevEl = prevEl;\n    swiper.originalParams.navigation.prevEl = prevEl;\n  }\n  if (needsPagination(swiperParams) && paginationEl) {\n    swiper.params.pagination.el = paginationEl;\n    swiper.originalParams.pagination.el = paginationEl;\n  }\n  if (needsScrollbar(swiperParams) && scrollbarEl) {\n    swiper.params.scrollbar.el = scrollbarEl;\n    swiper.originalParams.scrollbar.el = scrollbarEl;\n  }\n  swiper.init(el);\n}\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n  const keys = [];\n  if (!oldParams) return keys;\n  const addKey = key => {\n    if (keys.indexOf(key) < 0) keys.push(key);\n  };\n  if (children && oldChildren) {\n    const oldChildrenKeys = oldChildren.map(getKey);\n    const childrenKeys = children.map(getKey);\n    if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n    if (oldChildren.length !== children.length) addKey('children');\n  }\n  const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n  watchParams.forEach(key => {\n    if (key in swiperParams && key in oldParams) {\n      if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n        const newKeys = Object.keys(swiperParams[key]);\n        const oldKeys = Object.keys(oldParams[key]);\n        if (newKeys.length !== oldKeys.length) {\n          addKey(key);\n        } else {\n          newKeys.forEach(newKey => {\n            if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n              addKey(key);\n            }\n          });\n          oldKeys.forEach(oldKey => {\n            if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n          });\n        }\n      } else if (swiperParams[key] !== oldParams[key]) {\n        addKey(key);\n      }\n    }\n  });\n  return keys;\n}\n\nconst updateOnVirtualData = swiper => {\n  if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n  swiper.updateSlides();\n  swiper.updateProgress();\n  swiper.updateSlidesClasses();\n  swiper.emit('_virtualUpdated');\n  if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n    swiper.parallax.setTranslate();\n  }\n};\n\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };\n"],"names":["Object","document","setTimeout","clearTimeout","window","Date","t","i","HTMLElement","e","Math","HTMLSlotElement","console","Array","parseFloat","trustedTypes","String","Number","requestAnimationFrame","s","parseInt","getComputedStyle","n","r","a","w","ResizeObserver","arguments","c"],"mappings":"uGAGI,EAAkB,gjIAElB,EAA6B,QAAQ,SAAU,CAAI,EACrD,OAAO,EAAgB,IAAI,CAAC,IAAS,AAAuB,MAAvB,EAAK,UAAU,CAAC,IAElD,AAAuB,MAAvB,EAAK,UAAU,CAAC,IAEhB,AAAqB,GAArB,EAAK,UAAU,CAAC,EACrB,G,+BCXA,SAAS,EAAQ,CAAE,EACjB,IAAI,EAAQA,OAAO,MAAM,CAAC,MAC1B,OAAO,SAAU,CAAG,EAElB,OADI,AAAe,SAAf,CAAK,CAAC,EAAI,EAAgB,EAAK,CAAC,EAAI,CAAG,EAAG,EAAG,EAC1C,CAAK,CAAC,EAAI,AACnB,CACF,C,iECHI,EAA0B,C,UAA4B,KAE1D,EAAwB,IAAI,CAAC,CAAC,EAAO,EAAE,CAAE,CAAC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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"}