@orangesk/orange-design-system 2.0.0-beta.4 → 2.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/index.css +1 -2
- package/build/components/index.css.map +1 -1
- package/build/components/index.js.map +1 -1
- package/build/components/tsconfig.tsbuildinfo +1 -1
- package/build/components/types/index.d.ts +1473 -0
- package/build/components/types/src/components/Card/Card.d.ts +1 -1
- package/build/components/types/src/components/Card/CardSection.d.ts +2 -2
- package/build/components/types/src/components/Icon/iconSearchTags.d.ts +252 -251
- package/build/components/types/src/components/Pagination/Pagination.d.ts +2 -3
- package/build/components/types/src/components/index.d.ts +0 -2
- package/build/lib/after-components.css +1 -1
- package/build/lib/after-components.css.map +1 -1
- package/build/lib/components.css +1 -1
- package/build/lib/components.css.map +1 -1
- package/build/lib/style.css +1 -1
- package/build/lib/style.css.map +1 -1
- package/build/lib/tsconfig.tsbuildinfo +1 -1
- package/build/sprite.svg +1 -1
- package/package.json +5 -3
- package/src/assets/icons/article.svg +7 -0
- package/src/assets/icons/pictogram-activation--dark.svg +10 -11
- package/src/assets/icons/pictogram-activation-free--dark.svg +4 -5
- package/src/assets/icons/pictogram-activation-free.svg +4 -5
- package/src/assets/icons/pictogram-activation.svg +10 -11
- package/src/assets/icons/pictogram-archive--dark.svg +3 -4
- package/src/assets/icons/pictogram-archive.svg +3 -4
- package/src/assets/icons/pictogram-calling-minutes--dark.svg +3 -4
- package/src/assets/icons/pictogram-calling-minutes.svg +3 -4
- package/src/assets/icons/pictogram-canal-plus--dark.svg +3 -4
- package/src/assets/icons/pictogram-canal-plus.svg +3 -4
- package/src/assets/icons/pictogram-competition-tickets--dark.svg +11 -12
- package/src/assets/icons/pictogram-competition-tickets.svg +11 -12
- package/src/assets/icons/pictogram-device-discount--dark.svg +7 -6
- package/src/assets/icons/pictogram-device-discount.svg +5 -6
- package/src/assets/icons/pictogram-discount-general--dark.svg +5 -6
- package/src/assets/icons/pictogram-discount-general.svg +5 -6
- package/src/assets/icons/pictogram-discount-price--dark.svg +5 -6
- package/src/assets/icons/pictogram-discount-price.svg +5 -6
- package/src/assets/icons/pictogram-extra-data--dark.svg +6 -7
- package/src/assets/icons/pictogram-extra-data.svg +6 -7
- package/src/assets/icons/pictogram-free-payment--dark.svg +5 -6
- package/src/assets/icons/pictogram-free-payment.svg +3 -6
- package/src/assets/icons/pictogram-gift--dark.svg +12 -13
- package/src/assets/icons/pictogram-gift-one-benefit--dark.svg +7 -8
- package/src/assets/icons/pictogram-gift-one-benefit.svg +7 -8
- package/src/assets/icons/pictogram-gift-two-benefits--dark.svg +8 -9
- package/src/assets/icons/pictogram-gift-two-benefits.svg +8 -9
- package/src/assets/icons/pictogram-gift.svg +3 -4
- package/src/assets/icons/pictogram-hbo-max--dark.svg +5 -6
- package/src/assets/icons/pictogram-hbo-max.svg +5 -6
- package/src/assets/icons/pictogram-infinite-sms--dark.svg +3 -4
- package/src/assets/icons/pictogram-infinite-sms.svg +3 -4
- package/src/assets/icons/pictogram-installation--dark.svg +4 -5
- package/src/assets/icons/pictogram-installation-free--dark.svg +4 -5
- package/src/assets/icons/pictogram-installation-free.svg +4 -5
- package/src/assets/icons/pictogram-installation.svg +4 -5
- package/src/assets/icons/pictogram-max--dark.svg +3 -4
- package/src/assets/icons/pictogram-max-canal-plus--dark.svg +5 -6
- package/src/assets/icons/pictogram-max-canal-plus.svg +5 -6
- package/src/assets/icons/pictogram-max.svg +3 -4
- package/src/assets/icons/pictogram-moj-orange-app--dark.svg +3 -4
- package/src/assets/icons/pictogram-moj-orange-app.svg +3 -4
- package/src/assets/icons/pictogram-movie-storage--dark.svg +4 -5
- package/src/assets/icons/pictogram-movie-storage.svg +4 -5
- package/src/assets/icons/pictogram-online-protection--dark.svg +3 -4
- package/src/assets/icons/pictogram-online-protection.svg +3 -4
- package/src/assets/icons/pictogram-random-damage--dark.svg +4 -8
- package/src/assets/icons/pictogram-random-damage.svg +4 -8
- package/src/assets/icons/pictogram-recycling--dark.svg +7 -8
- package/src/assets/icons/pictogram-recycling.svg +14 -15
- package/src/assets/icons/pictogram-repair--dark.svg +12 -13
- package/src/assets/icons/pictogram-repair.svg +12 -13
- package/src/assets/icons/pictogram-roaming--dark.svg +3 -4
- package/src/assets/icons/pictogram-roaming-discount--dark.svg +3 -16
- package/src/assets/icons/pictogram-roaming-discount.svg +15 -16
- package/src/assets/icons/pictogram-roaming.svg +3 -4
- package/src/assets/icons/pictogram-skylink--dark.svg +10 -11
- package/src/assets/icons/pictogram-skylink-live-tv--dark.svg +7 -8
- package/src/assets/icons/pictogram-skylink-live-tv.svg +7 -8
- package/src/assets/icons/pictogram-skylink.svg +10 -11
- package/src/assets/icons/pictogram-sms--dark.svg +5 -6
- package/src/assets/icons/pictogram-sms.svg +5 -6
- package/src/assets/icons/pictogram-theft--dark.svg +3 -7
- package/src/assets/icons/pictogram-theft.svg +3 -7
- package/src/assets/icons/pictogram-three-devices--dark.svg +4 -8
- package/src/assets/icons/pictogram-three-devices.svg +4 -8
- package/src/assets/icons/pictogram-trust--dark.svg +3 -4
- package/src/assets/icons/pictogram-trust.svg +3 -4
- package/src/assets/icons/pictogram-water-damage--dark.svg +5 -6
- package/src/assets/icons/pictogram-water-damage.svg +5 -6
- package/src/components/Card/Card.tsx +14 -1
- package/src/components/Card/CardSection.tsx +2 -10
- package/src/components/Icon/iconSearchTags.ts +433 -432
- package/src/components/Icon/styles/style.scss +4 -0
- package/src/components/Link/styles/style.scss +2 -1
- package/src/components/Pagination/Pagination.tsx +2 -2
- package/src/components/Section/styles/config.scss +18 -16
- package/src/components/index.ts +0 -2
- package/src/styles/utilities/color.scss +5 -0
- package/src/styles/utilities/layout.scss +9 -0
- package/build/components/Accordion/index.js +0 -16
- package/build/components/Accordion/index.js.map +0 -1
- package/build/components/Accordion/tsconfig.tsbuildinfo +0 -1
- package/build/components/Alert/index.js +0 -16
- package/build/components/Alert/index.js.map +0 -1
- package/build/components/Alert/tsconfig.tsbuildinfo +0 -1
- package/build/components/AnchorNavigation/index.js +0 -16
- package/build/components/AnchorNavigation/index.js.map +0 -1
- package/build/components/AnchorNavigation/style.css +0 -2
- package/build/components/AnchorNavigation/style.css.map +0 -1
- package/build/components/AnchorNavigation/tsconfig.tsbuildinfo +0 -1
- package/build/components/Bar/index.js +0 -16
- package/build/components/Bar/index.js.map +0 -1
- package/build/components/Bar/tsconfig.tsbuildinfo +0 -1
- package/build/components/BlockAction/index.js +0 -16
- package/build/components/BlockAction/index.js.map +0 -1
- package/build/components/BlockAction/tsconfig.tsbuildinfo +0 -1
- package/build/components/BodyBanner/index.js +0 -16
- package/build/components/BodyBanner/index.js.map +0 -1
- package/build/components/BodyBanner/style.css +0 -2
- package/build/components/BodyBanner/style.css.map +0 -1
- package/build/components/BodyBanner/tsconfig.tsbuildinfo +0 -1
- package/build/components/Breadcrumbs/index.js +0 -16
- package/build/components/Breadcrumbs/index.js.map +0 -1
- package/build/components/Breadcrumbs/tsconfig.tsbuildinfo +0 -1
- package/build/components/Button/index.js +0 -16
- package/build/components/Button/index.js.map +0 -1
- package/build/components/Button/tsconfig.tsbuildinfo +0 -1
- package/build/components/Buttons/index.js +0 -16
- package/build/components/Buttons/index.js.map +0 -1
- package/build/components/Buttons/tsconfig.tsbuildinfo +0 -1
- package/build/components/Card/index.js +0 -16
- package/build/components/Card/index.js.map +0 -1
- package/build/components/Card/tsconfig.tsbuildinfo +0 -1
- package/build/components/Carousel/index.js +0 -16
- package/build/components/Carousel/index.js.map +0 -1
- package/build/components/Carousel/style.css +0 -2
- package/build/components/Carousel/style.css.map +0 -1
- package/build/components/Carousel/tsconfig.tsbuildinfo +0 -1
- package/build/components/CarouselHero/index.js +0 -16
- package/build/components/CarouselHero/index.js.map +0 -1
- package/build/components/CarouselHero/tsconfig.tsbuildinfo +0 -1
- package/build/components/CarouselPromotions/index.js +0 -16
- package/build/components/CarouselPromotions/index.js.map +0 -1
- package/build/components/CarouselPromotions/tsconfig.tsbuildinfo +0 -1
- package/build/components/CartTable/index.js +0 -16
- package/build/components/CartTable/index.js.map +0 -1
- package/build/components/CartTable/style.css +0 -2
- package/build/components/CartTable/style.css.map +0 -1
- package/build/components/CartTable/tsconfig.tsbuildinfo +0 -1
- package/build/components/Code/index.js +0 -11
- package/build/components/Code/index.js.map +0 -1
- package/build/components/Code/style.css +0 -2
- package/build/components/Code/style.css.map +0 -1
- package/build/components/Code/tsconfig.tsbuildinfo +0 -1
- package/build/components/Container/index.js +0 -16
- package/build/components/Container/index.js.map +0 -1
- package/build/components/Container/tsconfig.tsbuildinfo +0 -1
- package/build/components/Controls/index.js +0 -16
- package/build/components/Controls/index.js.map +0 -1
- package/build/components/Controls/tsconfig.tsbuildinfo +0 -1
- package/build/components/Cover/index.js +0 -16
- package/build/components/Cover/index.js.map +0 -1
- package/build/components/Cover/tsconfig.tsbuildinfo +0 -1
- package/build/components/Divider/index.js +0 -16
- package/build/components/Divider/index.js.map +0 -1
- package/build/components/Divider/tsconfig.tsbuildinfo +0 -1
- package/build/components/DocumentationSidebar/index.js +0 -16
- package/build/components/DocumentationSidebar/index.js.map +0 -1
- package/build/components/DocumentationSidebar/style.css +0 -2
- package/build/components/DocumentationSidebar/style.css.map +0 -1
- package/build/components/DocumentationSidebar/tsconfig.tsbuildinfo +0 -1
- package/build/components/Dropdown/index.js +0 -16
- package/build/components/Dropdown/index.js.map +0 -1
- package/build/components/Dropdown/style.css +0 -2
- package/build/components/Dropdown/style.css.map +0 -1
- package/build/components/Dropdown/tsconfig.tsbuildinfo +0 -1
- package/build/components/Expander/index.js +0 -16
- package/build/components/Expander/index.js.map +0 -1
- package/build/components/Expander/tsconfig.tsbuildinfo +0 -1
- package/build/components/FeatureAccordion/index.js +0 -16
- package/build/components/FeatureAccordion/index.js.map +0 -1
- package/build/components/FeatureAccordion/style.css +0 -2
- package/build/components/FeatureAccordion/style.css.map +0 -1
- package/build/components/FeatureAccordion/tsconfig.tsbuildinfo +0 -1
- package/build/components/Footer/index.js +0 -16
- package/build/components/Footer/index.js.map +0 -1
- package/build/components/Footer/tsconfig.tsbuildinfo +0 -1
- package/build/components/Forms/index.js +0 -20
- package/build/components/Forms/index.js.map +0 -1
- package/build/components/Forms/style.css +0 -2
- package/build/components/Forms/style.css.map +0 -1
- package/build/components/Forms/tsconfig.tsbuildinfo +0 -1
- package/build/components/Gauge/index.js +0 -16
- package/build/components/Gauge/index.js.map +0 -1
- package/build/components/Gauge/tsconfig.tsbuildinfo +0 -1
- package/build/components/Grid/index.js +0 -16
- package/build/components/Grid/index.js.map +0 -1
- package/build/components/Grid/style.css +0 -2
- package/build/components/Grid/style.css.map +0 -1
- package/build/components/Grid/tsconfig.tsbuildinfo +0 -1
- package/build/components/Hero/index.js +0 -16
- package/build/components/Hero/index.js.map +0 -1
- package/build/components/Hero/style.css +0 -2
- package/build/components/Hero/style.css.map +0 -1
- package/build/components/Hero/tsconfig.tsbuildinfo +0 -1
- package/build/components/Icon/index.js +0 -11
- package/build/components/Icon/index.js.map +0 -1
- package/build/components/Icon/tsconfig.tsbuildinfo +0 -1
- package/build/components/IconList/index.js +0 -16
- package/build/components/IconList/index.js.map +0 -1
- package/build/components/IconList/style.css +0 -2
- package/build/components/IconList/style.css.map +0 -1
- package/build/components/IconList/tsconfig.tsbuildinfo +0 -1
- package/build/components/Image/index.js +0 -16
- package/build/components/Image/index.js.map +0 -1
- package/build/components/Image/tsconfig.tsbuildinfo +0 -1
- package/build/components/Link/index.js +0 -7
- package/build/components/Link/index.js.map +0 -1
- package/build/components/Link/tsconfig.tsbuildinfo +0 -1
- package/build/components/List/index.js +0 -16
- package/build/components/List/index.js.map +0 -1
- package/build/components/List/tsconfig.tsbuildinfo +0 -1
- package/build/components/Loader/index.js +0 -16
- package/build/components/Loader/index.js.map +0 -1
- package/build/components/Loader/tsconfig.tsbuildinfo +0 -1
- package/build/components/Megamenu/index.js +0 -16
- package/build/components/Megamenu/index.js.map +0 -1
- package/build/components/Megamenu/tsconfig.tsbuildinfo +0 -1
- package/build/components/Modal/index.js +0 -20
- package/build/components/Modal/index.js.map +0 -1
- package/build/components/Modal/tsconfig.tsbuildinfo +0 -1
- package/build/components/Pagination/index.js +0 -16
- package/build/components/Pagination/index.js.map +0 -1
- package/build/components/Pagination/tsconfig.tsbuildinfo +0 -1
- package/build/components/Pill/index.js +0 -16
- package/build/components/Pill/index.js.map +0 -1
- package/build/components/Pill/tsconfig.tsbuildinfo +0 -1
- package/build/components/Preview/index.js +0 -77
- package/build/components/Preview/index.js.map +0 -1
- package/build/components/Preview/style.css +0 -2
- package/build/components/Preview/style.css.map +0 -1
- package/build/components/Preview/tsconfig.tsbuildinfo +0 -1
- package/build/components/Progress/index.js +0 -16
- package/build/components/Progress/index.js.map +0 -1
- package/build/components/Progress/tsconfig.tsbuildinfo +0 -1
- package/build/components/PromoBanner/index.js +0 -16
- package/build/components/PromoBanner/index.js.map +0 -1
- package/build/components/PromoBanner/style.css +0 -2
- package/build/components/PromoBanner/style.css.map +0 -1
- package/build/components/PromoBanner/tsconfig.tsbuildinfo +0 -1
- package/build/components/PromotionCard/index.js +0 -16
- package/build/components/PromotionCard/index.js.map +0 -1
- package/build/components/PromotionCard/tsconfig.tsbuildinfo +0 -1
- package/build/components/Section/index.js +0 -16
- package/build/components/Section/index.js.map +0 -1
- package/build/components/Section/tsconfig.tsbuildinfo +0 -1
- package/build/components/Skeleton/index.js +0 -16
- package/build/components/Skeleton/index.js.map +0 -1
- package/build/components/Skeleton/tsconfig.tsbuildinfo +0 -1
- package/build/components/SkipLink/index.js +0 -16
- package/build/components/SkipLink/index.js.map +0 -1
- package/build/components/SkipLink/tsconfig.tsbuildinfo +0 -1
- package/build/components/Stepbar/index.js +0 -16
- package/build/components/Stepbar/index.js.map +0 -1
- package/build/components/Stepbar/tsconfig.tsbuildinfo +0 -1
- package/build/components/Sticker/index.js +0 -16
- package/build/components/Sticker/index.js.map +0 -1
- package/build/components/Sticker/tsconfig.tsbuildinfo +0 -1
- package/build/components/Table/index.js +0 -16
- package/build/components/Table/index.js.map +0 -1
- package/build/components/Table/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tabs/index.js +0 -16
- package/build/components/Tabs/index.js.map +0 -1
- package/build/components/Tabs/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tag/index.js +0 -16
- package/build/components/Tag/index.js.map +0 -1
- package/build/components/Tag/tsconfig.tsbuildinfo +0 -1
- package/build/components/Testimonial/index.js +0 -16
- package/build/components/Testimonial/index.js.map +0 -1
- package/build/components/Testimonial/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tile/index.js +0 -16
- package/build/components/Tile/index.js.map +0 -1
- package/build/components/Tile/tsconfig.tsbuildinfo +0 -1
- package/build/components/Tooltip/index.js +0 -16
- package/build/components/Tooltip/index.js.map +0 -1
- package/build/components/Tooltip/style.css +0 -2
- package/build/components/Tooltip/style.css.map +0 -1
- package/build/components/Tooltip/tsconfig.tsbuildinfo +0 -1
- package/build/components/static.css +0 -2
- package/build/components/static.css.map +0 -1
- package/build/components/static.js +0 -10
- package/build/components/static.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../../../node_modules/react/cjs/react-jsx-runtime.development.js","../../../node_modules/react/jsx-runtime.js","../../../node_modules/react/cjs/react-jsx-runtime.production.js","../../../src/components/Icon/SpritePathContext.tsx","../../../src/components/Icon/Icon.tsx","../../../src/components/Controls/Controls.tsx","../../../src/styles/export/breakpoint.js","../../../src/components/Image/Image.tsx","../../../src/components/CarouselHero/constants.ts","../../../src/components/CarouselHero/CarouselHeroItem.tsx","../../../node_modules/swiper/shared/ssr-window.esm.mjs","../../../node_modules/swiper/shared/utils.mjs","../../../node_modules/swiper/modules/keyboard.mjs","../../../node_modules/swiper/shared/create-element-if-not-defined.mjs","../../../node_modules/swiper/modules/navigation.mjs","../../../node_modules/swiper/shared/classes-to-selector.mjs","../../../node_modules/swiper/modules/pagination.mjs","../../../node_modules/swiper/modules/a11y.mjs","../../../node_modules/swiper/modules/autoplay.mjs","../../../node_modules/swiper/shared/swiper-core.mjs","../../../src/components/CarouselHero/CarouselHero.static.ts","../../../src/components/CarouselHero/CarouselHero.tsx","../../../src/utils/hooks.ts"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","\"use client\";\n\nimport React, { ReactNode } from \"react\";\n\nexport const SpritePathContext = React.createContext(\"/sprite.svg\");\n\ninterface SpritePathProviderProps {\n children: ReactNode;\n value?: string;\n}\n\nexport const SpritePathProvider: React.FC<SpritePathProviderProps> = ({\n children,\n value = \"/sprite.svg\",\n ...other\n}) => {\n return (\n <SpritePathContext.Provider value={value} {...other}>\n {React.Children.only(children)}\n </SpritePathContext.Provider>\n );\n};\n","\"use client\";\n\nimport React, { useContext } from \"react\";\nimport cx from \"classnames\";\nimport { SpritePathContext } from \"./SpritePathContext\";\n\nexport type IconColor = \"info\" | \"success\" | \"warning\" | \"danger\" | \"orange\";\nexport type IconSize =\n | \"small\"\n | \"medium\"\n | \"large\"\n | \"xlarge\"\n | \"xxlarge\"\n | \"huge\";\nexport type IconType = \"icon\" | \"pictogram\";\n\nexport interface IconProps extends React.SVGAttributes<SVGSVGElement> {\n /** Accessible label for the icon. */\n alt?: string;\n /** Icon color. */\n color?: IconColor;\n /** Icon name (required). */\n name: string;\n /** Icon size. */\n size?: IconSize;\n /** Path to the SVG sprite. */\n spritePath?: string;\n /**\n * Icon type. When set to \"pictogram\", the component will automatically\n * switch between light and dark versions based on theme classes (.is-light/.is-dark).\n */\n type?: IconType;\n /**\n * @deprecated Use type=\"pictogram\" instead.\n * Whether this icon should adapt to theme (light/dark).\n * When true, the component will automatically switch between\n * light and dark versions based on theme classes (.is-light/.is-dark).\n */\n className?: string;\n}\n\nconst CLASS_ROOT = \"icon\";\n\nconst Icon: React.FC<IconProps> = ({\n className,\n alt,\n color,\n name,\n size,\n spritePath = \"/sprite.svg\",\n type = \"icon\",\n ...other\n}) => {\n const contextPath = useContext(SpritePathContext);\n\n const isPictogram = type === \"pictogram\";\n\n const classes = cx(\n CLASS_ROOT,\n {\n [`${CLASS_ROOT}--${size}`]: size,\n [`${CLASS_ROOT}--${color}`]: color,\n [`${CLASS_ROOT}--pictogram`]: isPictogram,\n },\n className,\n );\n\n // For theme-aware icons, we need to render both light and dark versions\n if (isPictogram) {\n const finalSpritePath =\n spritePath !== \"/sprite.svg\" || typeof contextPath === \"undefined\"\n ? spritePath\n : contextPath;\n\n return (\n <svg\n className={classes}\n aria-hidden={alt !== undefined ? undefined : \"true\"}\n role={alt !== undefined ? \"img\" : undefined}\n {...other}\n >\n {alt !== undefined && alt.length > 0 && <title>{alt}</title>}\n {/* Light theme version (default) */}\n <use\n className={`${CLASS_ROOT}__use ${CLASS_ROOT}__use--light`}\n xlinkHref={`${finalSpritePath}#${name}`}\n />\n {/* Dark theme version */}\n <use\n className={`${CLASS_ROOT}__use ${CLASS_ROOT}__use--dark`}\n xlinkHref={`${finalSpritePath}#${name}--dark`}\n />\n </svg>\n );\n }\n\n // Regular icon rendering (existing behavior)\n return (\n <svg\n className={classes}\n aria-hidden={alt !== undefined ? undefined : \"true\"}\n role={alt !== undefined ? \"img\" : undefined}\n {...other}\n >\n {alt !== undefined && alt.length > 0 && <title>{alt}</title>}\n <use\n xlinkHref={\n spritePath !== \"/sprite.svg\" || typeof contextPath === \"undefined\"\n ? `${spritePath}#${name}`\n : `${contextPath}#${name}`\n }\n />\n </svg>\n );\n};\n\nIcon.displayName = \"Icon\";\n\nexport { Icon };\n","import React from \"react\";\nimport cx from \"classnames\";\nimport { Icon } from \"../Icon\";\n\ninterface IControlsProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n elemRef?: React.Ref<any>;\n icon: string;\n className?: string;\n colorScheme?: \"dark\" | \"light\";\n isDisabled?: boolean;\n}\n\nconst CLASS_ROOT = \"controls\";\n\ntype NativeButtonProps = IControlsProps &\n Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n keyof IControlsProps | \"href\" | \"ref\"\n > & {\n href?: undefined;\n };\n\nexport type ControlsProps = NativeButtonProps;\n\nconst Controls = React.forwardRef<any, ControlsProps>((props, ref) => {\n const { elemRef, className, icon, colorScheme, isDisabled, ...rest } = props;\n const classes = cx(\n CLASS_ROOT,\n { \"is-dark\": colorScheme === \"dark\", \"is-light\": colorScheme === \"light\" },\n className,\n );\n\n const buttonProps = rest as React.ButtonHTMLAttributes<HTMLButtonElement>;\n return (\n <button\n type=\"button\"\n className={classes}\n disabled={isDisabled ? true : undefined}\n aria-disabled={isDisabled ? \"true\" : undefined}\n ref={elemRef || ref}\n {...buttonProps}\n >\n <Icon name={icon} />\n </button>\n );\n});\n\nControls.displayName = \"Controls\";\n\nexport { Controls };\n","// Auto-generated from src/styles/export/breakpoint.scss\n// Do not edit this file directly - edit the SCSS source instead\n\nexport const exports = {\n \"xs\": \"0\",\n \"sm\": \"480px\",\n \"md\": \"768px\",\n \"lg\": \"992px\",\n \"xl\": \"1240px\",\n \"xxl\": \"1380px\"\n};\n\nexport default exports;\n","import React from \"react\";\nimport cx from \"classnames\";\n\nimport breakpoints from \"../../styles/export/breakpoint\";\n\nconst overlayBreakpoints: { [key: string]: string } = {\n ...breakpoints,\n xxxl: \"1920px\",\n};\n\ninterface ImageSrcObject {\n default: string;\n xxxl?: string;\n xxl?: string;\n xl?: string;\n lg?: string;\n md?: string;\n sm?: string;\n xs?: string;\n [key: string]: string | undefined;\n}\n\ninterface ImageProps {\n alt: string;\n src: string | ImageSrcObject;\n className?: string;\n [key: string]: any;\n}\n\nconst CLASS_ROOT = \"img\";\n\nconst Image: React.FC<ImageProps> = ({ className, src, alt, ...other }) => {\n const classes = cx(CLASS_ROOT, className);\n\n if (typeof src === \"object\") {\n // autocorrect to descending keys\n const descendingSrcKeys = Object.keys(src).sort(\n (a, b) =>\n parseInt(overlayBreakpoints[b]) - parseInt(overlayBreakpoints[a]),\n );\n // this could be done via conditional rendering, but that breaks <ComponentDocs /> ¯\\_(ツ)_/¯\n return (\n <picture className={classes}>\n {descendingSrcKeys.map(\n (breakpoint) =>\n breakpoint !== \"default\" && (\n <source\n key={breakpoint}\n srcSet={src[breakpoint]}\n media={`(min-width: ${overlayBreakpoints[breakpoint]})`}\n />\n ),\n )}\n <img src={src.default} alt={alt} {...other} />\n </picture>\n );\n }\n\n return <img className={classes} src={src} alt={alt} {...other} />;\n};\n\nImage.displayName = \"Image\";\n\nexport { Image };\n","export const CLASS_ROOT = \"carousel-hero\";\n\nexport const CLASS_VIEWPORT_WRAPPER = `${CLASS_ROOT}__viewport-wrapper`;\nexport const CLASS_VIEWPORT = `${CLASS_ROOT}__viewport`;\nexport const CLASS_TRACK = `${CLASS_ROOT}__track`;\nexport const CLASS_SLIDE = `${CLASS_ROOT}__slide`;\nexport const CLASS_SLIDE_CONTENT = `${CLASS_ROOT}__slide-content`;\nexport const CLASS_SLIDE_TITLE = `${CLASS_ROOT}__slide-title`;\nexport const CLASS_SLIDE_SUBTITLE = `${CLASS_ROOT}__slide-subtitle`;\nexport const CLASS_SLIDE_IMAGE_WRAPPER = `${CLASS_ROOT}__slide-image-wrapper`;\nexport const CLASS_SLIDE_IMAGE = `${CLASS_ROOT}__slide-image`;\nexport const CLASS_SLIDE_BUTTON = `${CLASS_ROOT}__slide-button`;\nexport const CLASS_PREV = `${CLASS_ROOT}__prev`;\nexport const CLASS_NEXT = `${CLASS_ROOT}__next`;\nexport const CLASS_PLAY_PAUSE = `${CLASS_ROOT}__play-pause`;\nexport const CLASS_TABS = `${CLASS_ROOT}__tabs`;\nexport const CLASS_TAB = `${CLASS_ROOT}__tab`;\nexport const CLASS_PAGINATION = `${CLASS_ROOT}__pagination`;\nexport const CLASS_PAGINATION_ITEM = `${CLASS_ROOT}__pagination-item`;\nexport const CLASS_PAGINATION_SVG = `${CLASS_ROOT}__pagination-svg`;\nexport const CLASS_PAGINATION_CIRCLE = `${CLASS_ROOT}__pagination-circle`;\nexport const CLASS_CONTROLS = `${CLASS_ROOT}__controls`;\nexport const CLASS_NAVIGATION = `${CLASS_ROOT}__navigation`;\n\nexport const CLASS_ACTIVE = \"is-active\";\nexport const CLASS_PLAYING = \"is-playing\";\nexport const CLASS_PAUSED = \"is-paused\";\n\nexport const SELECTOR_VIEWPORT = `.${CLASS_VIEWPORT}`;\nexport const SELECTOR_TRACK = `.${CLASS_TRACK}`;\nexport const SELECTOR_PREV = `.${CLASS_PREV}`;\nexport const SELECTOR_NEXT = `.${CLASS_NEXT}`;\nexport const SELECTOR_PLAY_PAUSE = `.${CLASS_PLAY_PAUSE}`;\nexport const SELECTOR_TABS = `.${CLASS_TABS}`;\nexport const SELECTOR_TAB = `.${CLASS_TAB}`;\nexport const SELECTOR_PAGINATION = `.${CLASS_PAGINATION}`;\nexport const SELECTOR_ACTIVE = `.${CLASS_ACTIVE}`;\n","import React, { ReactNode, HTMLAttributes } from \"react\";\nimport cx from \"classnames\";\nimport { Image } from \"@/components/Image\";\nimport { CLASS_SLIDE } from \"./constants\";\n\nconst CLASS_ROOT = CLASS_SLIDE;\n\ninterface CarouselHeroItemProps extends HTMLAttributes<HTMLDivElement> {\n className?: string;\n children?: ReactNode;\n image: string;\n title: string;\n}\n\nconst CarouselHeroItem: React.FC<CarouselHeroItemProps> = ({\n className,\n children,\n image,\n title,\n ...other\n}) => {\n const classes = cx(CLASS_ROOT, \"bg-black\", className);\n\n return (\n <div className={classes} {...other}>\n <div className=\"carousel-hero__slide-content\">\n <h1 className=\"h1 thin carousel-hero__slide-title\">{title}</h1>\n {children}\n </div>\n <Image\n className={`${CLASS_ROOT}-image`}\n src={image}\n alt={`Obrázok ${title}`}\n />\n </div>\n );\n};\n\nCarouselHeroItem.displayName = \"CarouselHeroItem\";\n\nexport { CarouselHeroItem };\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 if (target === void 0) {\n target = {};\n }\n if (src === void 0) {\n src = {};\n }\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 if (classes === void 0) {\n classes = '';\n }\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) {\n if (delay === void 0) {\n delay = 0;\n }\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) {\n if (axis === void 0) {\n axis = 'x';\n }\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() {\n const to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n for (let i = 1; i < arguments.length; i += 1) {\n const nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\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(_ref) {\n let {\n swiper,\n targetPosition,\n side\n } = _ref;\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 if (selector === void 0) {\n selector = '';\n }\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 if (classes === void 0) {\n classes = [];\n }\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 (html === void 0) {\n html = '';\n }\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 { setCSSProperty as a, elementParents as b, createElement as c, elementOffset as d, elementChildren as e, now as f, getSlideTransformEl as g, elementOuterSize as h, elementIndex as i, classesToTokens as j, getTranslate as k, elementTransitionEnd as l, makeElementsArray as m, nextTick as n, isObject as o, getRotateFix 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 { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { b as elementParents, d as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const document = getDocument();\n const window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n function handle(event) {\n if (!swiper.enabled) return;\n const {\n rtlTranslate: rtl\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n const kc = e.keyCode || e.charCode;\n const pageUpDown = swiper.params.keyboard.pageUpDown;\n const isPageUp = pageUpDown && kc === 33;\n const isPageDown = pageUpDown && kc === 34;\n const isArrowLeft = kc === 37;\n const isArrowRight = kc === 39;\n const isArrowUp = kc === 38;\n const isArrowDown = kc === 40;\n // Directions locks\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n if (document.activeElement && (document.activeElement.isContentEditable || document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea'))) {\n return undefined;\n }\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n let inView = false;\n // Check that swiper should be inside of visible area of window\n if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n return undefined;\n }\n const el = swiper.el;\n const swiperWidth = el.clientWidth;\n const swiperHeight = el.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const swiperOffset = elementOffset(el);\n if (rtl) swiperOffset.left -= el.scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n inView = true;\n }\n }\n if (!inView) return undefined;\n }\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n emit('keyPress', kc);\n return undefined;\n }\n function enable() {\n if (swiper.keyboard.enabled) return;\n document.addEventListener('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n function disable() {\n if (!swiper.keyboard.enabled) return;\n document.removeEventListener('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n on('init', () => {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', () => {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable,\n disable\n });\n}\n\nexport { Keyboard as default };\n","import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n if (!element) {\n element = createElement('div', checkProps[key]);\n element.className = checkProps[key];\n swiper.el.append(element);\n }\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n return params;\n}\n\nexport { createElementIfNotDefined as c };\n","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray } from '../shared/utils.mjs';\n\nfunction Navigation(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n prevEl: null\n };\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n if (res) return res;\n }\n if (el) {\n if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\n } else if (res && res.length === 1) {\n res = res[0];\n }\n }\n if (el && !res) return el;\n // if (Array.isArray(res) && res.length === 1) res = res[0];\n return res;\n }\n function toggleEl(el, disabled) {\n const params = swiper.params.navigation;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (subEl) {\n subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n }\n });\n }\n function update() {\n // Update Navigation Buttons\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (swiper.params.loop) {\n toggleEl(prevEl, false);\n toggleEl(nextEl, false);\n return;\n }\n toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n let nextEl = getEl(params.nextEl);\n let prevEl = getEl(params.prevEl);\n Object.assign(swiper.navigation, {\n nextEl,\n prevEl\n });\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const initButton = (el, dir) => {\n if (el) {\n el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n }\n if (!swiper.enabled && el) {\n el.classList.add(...params.lockClass.split(' '));\n }\n };\n nextEl.forEach(el => initButton(el, 'next'));\n prevEl.forEach(el => initButton(el, 'prev'));\n }\n function destroy() {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const destroyButton = (el, dir) => {\n el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n };\n nextEl.forEach(el => destroyButton(el, 'next'));\n prevEl.forEach(el => destroyButton(el, 'prev'));\n }\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (swiper.enabled) {\n update();\n return;\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n });\n on('click', (_s, e) => {\n let {\n nextEl,\n prevEl\n } = swiper.navigation;\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n const targetEl = e.target;\n let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n if (swiper.isElement && !targetIsButton) {\n const path = e.path || e.composedPath && e.composedPath();\n if (path) {\n targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n }\n }\n if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n if (nextEl.length) {\n isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n } else if (prevEl.length) {\n isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n init();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n destroy();\n };\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}\n\nexport { Navigation as default };\n","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return `.${classes.trim().replace(/([\\.:!+\\/()[\\]])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n","import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, h as elementOuterSize, i as elementIndex, s as setInnerHTML, b as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const pfx = 'swiper-pagination';\n extendParams({\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n }\n function setSideBullets(bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n if (!bulletEl) return;\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n if (bulletEl) {\n bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n }\n }\n }\n function getMoveDirection(prevIndex, nextIndex, length) {\n prevIndex = prevIndex % length;\n nextIndex = nextIndex % length;\n if (nextIndex === prevIndex + 1) {\n return 'next';\n } else if (nextIndex === prevIndex - 1) {\n return 'previous';\n }\n return;\n }\n function onBulletClick(e) {\n const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n if (!bulletEl) {\n return;\n }\n e.preventDefault();\n const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n if (swiper.params.loop) {\n if (swiper.realIndex === index) return;\n const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n if (moveDirection === 'next') {\n swiper.slideNext();\n } else if (moveDirection === 'previous') {\n swiper.slidePrev();\n } else {\n swiper.slideToLoop(index);\n }\n } else {\n swiper.slideTo(index);\n }\n }\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n // Current/Total\n let current;\n let previousIndex;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n previousIndex = swiper.previousRealIndex || 0;\n current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n previousIndex = swiper.previousSnapIndex;\n } else {\n previousIndex = swiper.previousIndex || 0;\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n el.forEach(subEl => {\n subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n });\n if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n dynamicBulletIndex += current - (previousIndex || 0);\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.forEach(bulletEl => {\n const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n bulletEl.classList.remove(...classesToRemove);\n });\n if (el.length > 1) {\n bullets.forEach(bullet => {\n const bulletIndex = elementIndex(bullet);\n if (bulletIndex === current) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n } else if (swiper.isElement) {\n bullet.setAttribute('part', 'bullet');\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n if (bulletIndex === firstIndex) {\n setSideBullets(bullet, 'prev');\n }\n if (bulletIndex === lastIndex) {\n setSideBullets(bullet, 'next');\n }\n }\n });\n } else {\n const bullet = bullets[current];\n if (bullet) {\n bullet.classList.add(...params.bulletActiveClass.split(' '));\n }\n if (swiper.isElement) {\n bullets.forEach((bulletEl, bulletIndex) => {\n bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n });\n }\n if (params.dynamicBullets) {\n const firstDisplayedBullet = bullets[firstIndex];\n const lastDisplayedBullet = bullets[lastIndex];\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n if (bullets[i]) {\n bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n }\n }\n setSideBullets(firstDisplayedBullet, 'prev');\n setSideBullets(lastDisplayedBullet, 'next');\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.forEach(bullet => {\n bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n });\n }\n }\n el.forEach((subEl, subElIndex) => {\n if (params.type === 'fraction') {\n subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n fractionEl.textContent = params.formatFractionCurrent(current + 1);\n });\n subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n totalEl.textContent = params.formatFractionTotal(total);\n });\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n setInnerHTML(subEl, params.renderCustom(swiper, current + 1, total));\n if (subElIndex === 0) emit('paginationRender', subEl);\n } else {\n if (subElIndex === 0) emit('paginationRender', subEl);\n emit('paginationUpdate', subEl);\n }\n if (swiper.params.watchOverflow && swiper.enabled) {\n subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n }\n });\n }\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n let el = swiper.pagination.el;\n el = makeElementsArray(el);\n let paginationHTML = '';\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n // prettier-ignore\n paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n }\n }\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n setInnerHTML(subEl, paginationHTML || '');\n }\n if (params.type === 'bullets') {\n swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n }\n });\n if (params.type !== 'custom') {\n emit('paginationRender', el[0]);\n }\n }\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let el;\n if (typeof params.el === 'string' && swiper.isElement) {\n el = swiper.el.querySelector(params.el);\n }\n if (!el && typeof params.el === 'string') {\n el = [...document.querySelectorAll(params.el)];\n }\n if (!el) {\n el = params.el;\n }\n if (!el || el.length === 0) return;\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n el = [...swiper.el.querySelectorAll(params.el)];\n // check if it belongs to another nested Swiper\n if (el.length > 1) {\n el = el.find(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n if (Array.isArray(el) && el.length === 1) el = el[0];\n Object.assign(swiper.pagination, {\n el\n });\n el = makeElementsArray(el);\n el.forEach(subEl => {\n if (params.type === 'bullets' && params.clickable) {\n subEl.classList.add(...(params.clickableClass || '').split(' '));\n }\n subEl.classList.add(params.modifierClass + params.type);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.type === 'bullets' && params.dynamicBullets) {\n subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n subEl.classList.add(params.progressbarOppositeClass);\n }\n if (params.clickable) {\n subEl.addEventListener('click', onBulletClick);\n }\n if (!swiper.enabled) {\n subEl.classList.add(params.lockClass);\n }\n });\n }\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n let el = swiper.pagination.el;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.hiddenClass);\n subEl.classList.remove(params.modifierClass + params.type);\n subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (params.clickable) {\n subEl.classList.remove(...(params.clickableClass || '').split(' '));\n subEl.removeEventListener('click', onBulletClick);\n }\n });\n }\n if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n }\n on('changeDirection', () => {\n if (!swiper.pagination || !swiper.pagination.el) return;\n const params = swiper.params.pagination;\n let {\n el\n } = swiper.pagination;\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.classList.remove(params.horizontalClass, params.verticalClass);\n subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n });\n });\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n update();\n });\n on('snapGridLengthChange', () => {\n render();\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const el = makeElementsArray(swiper.pagination.el);\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n }\n });\n const enable = () => {\n swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n }\n init();\n render();\n update();\n };\n const disable = () => {\n swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n let {\n el\n } = swiper.pagination;\n if (el) {\n el = makeElementsArray(el);\n el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n }\n destroy();\n };\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}\n\nexport { Pagination as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, i as elementIndex, m as makeElementsArray, s as setInnerHTML } from '../shared/utils.mjs';\n\nfunction A11y(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n containerRole: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group',\n id: null,\n scrollOnFocus: true\n }\n });\n swiper.a11y = {\n clicked: false\n };\n let liveRegion = null;\n let preventFocusHandler;\n let focusTargetSlideEl;\n let visibilityChangedTimestamp = new Date().getTime();\n function notify(message) {\n const notification = liveRegion;\n if (notification.length === 0) return;\n setInnerHTML(notification, message);\n }\n function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n function makeElFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '0');\n });\n }\n function makeElNotFocusable(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('tabIndex', '-1');\n });\n }\n function addElRole(el, role) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('role', role);\n });\n }\n function addElRoleDescription(el, description) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-roledescription', description);\n });\n }\n function addElControls(el, controls) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-controls', controls);\n });\n }\n function addElLabel(el, label) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-label', label);\n });\n }\n function addElId(el, id) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('id', id);\n });\n }\n function addElLive(el, live) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-live', live);\n });\n }\n function disableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', true);\n });\n }\n function enableEl(el) {\n el = makeElementsArray(el);\n el.forEach(subEl => {\n subEl.setAttribute('aria-disabled', false);\n });\n }\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n const params = swiper.params.a11y;\n const targetEl = e.target;\n if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n }\n if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n const prevEls = makeElementsArray(swiper.navigation.prevEl);\n const nextEls = makeElementsArray(swiper.navigation.nextEl);\n if (nextEls.includes(targetEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n if (prevEls.includes(targetEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n }\n if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n targetEl.click();\n }\n }\n function updateNavigation() {\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n const {\n nextEl,\n prevEl\n } = swiper.navigation;\n if (prevEl) {\n if (swiper.isBeginning) {\n disableEl(prevEl);\n makeElNotFocusable(prevEl);\n } else {\n enableEl(prevEl);\n makeElFocusable(prevEl);\n }\n }\n if (nextEl) {\n if (swiper.isEnd) {\n disableEl(nextEl);\n makeElNotFocusable(nextEl);\n } else {\n enableEl(nextEl);\n makeElFocusable(nextEl);\n }\n }\n }\n function hasPagination() {\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n function hasClickablePagination() {\n return hasPagination() && swiper.params.pagination.clickable;\n }\n function updatePagination() {\n const params = swiper.params.a11y;\n if (!hasPagination()) return;\n swiper.pagination.bullets.forEach(bulletEl => {\n if (swiper.params.pagination.clickable) {\n makeElFocusable(bulletEl);\n if (!swiper.params.pagination.renderBullet) {\n addElRole(bulletEl, 'button');\n addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n }\n }\n if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n bulletEl.setAttribute('aria-current', 'true');\n } else {\n bulletEl.removeAttribute('aria-current');\n }\n });\n }\n const initNavEl = (el, wrapperId, message) => {\n makeElFocusable(el);\n if (el.tagName !== 'BUTTON') {\n addElRole(el, 'button');\n el.addEventListener('keydown', onEnterOrSpaceKey);\n }\n addElLabel(el, message);\n addElControls(el, wrapperId);\n };\n const handlePointerDown = e => {\n if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n preventFocusHandler = true;\n }\n swiper.a11y.clicked = true;\n };\n const handlePointerUp = () => {\n preventFocusHandler = false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!swiper.destroyed) {\n swiper.a11y.clicked = false;\n }\n });\n });\n };\n const onVisibilityChange = e => {\n visibilityChangedTimestamp = new Date().getTime();\n };\n const handleFocus = e => {\n if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\n focusTargetSlideEl = slideEl;\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\n const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n if (isActive || isVisible) return;\n if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n if (swiper.isHorizontal()) {\n swiper.el.scrollLeft = 0;\n } else {\n swiper.el.scrollTop = 0;\n }\n requestAnimationFrame(() => {\n if (preventFocusHandler) return;\n if (swiper.params.loop) {\n swiper.slideToLoop(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'))), 0);\n } else {\n swiper.slideTo(swiper.getSlideIndexWhenGrid(swiper.slides.indexOf(slideEl)), 0);\n }\n preventFocusHandler = false;\n });\n };\n const initSlides = () => {\n const params = swiper.params.a11y;\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n }\n if (params.slideRole) {\n addElRole(swiper.slides, params.slideRole);\n }\n const slidesLength = swiper.slides.length;\n if (params.slideLabelMessage) {\n swiper.slides.forEach((slideEl, index) => {\n const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel(slideEl, ariaLabelMessage);\n });\n }\n };\n const init = () => {\n const params = swiper.params.a11y;\n swiper.el.append(liveRegion);\n\n // Container\n const containerEl = swiper.el;\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n }\n if (params.containerMessage) {\n addElLabel(containerEl, params.containerMessage);\n }\n if (params.containerRole) {\n addElRole(containerEl, params.containerRole);\n }\n\n // Wrapper\n const wrapperEl = swiper.wrapperEl;\n const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId(wrapperEl, wrapperId);\n addElLive(wrapperEl, live);\n\n // Slide\n initSlides();\n\n // Navigation\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n }\n if (prevEl) {\n prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.addEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n\n // Tab focus\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('focus', handleFocus, true);\n swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n swiper.el.addEventListener('pointerup', handlePointerUp, true);\n };\n function destroy() {\n if (liveRegion) liveRegion.remove();\n let {\n nextEl,\n prevEl\n } = swiper.navigation ? swiper.navigation : {};\n nextEl = makeElementsArray(nextEl);\n prevEl = makeElementsArray(prevEl);\n if (nextEl) {\n nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n if (prevEl) {\n prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n }\n\n // Pagination\n if (hasClickablePagination()) {\n const paginationEl = makeElementsArray(swiper.pagination.el);\n paginationEl.forEach(el => {\n el.removeEventListener('keydown', onEnterOrSpaceKey);\n });\n }\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n // Tab focus\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('focus', handleFocus, true);\n swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n }\n }\n on('beforeInit', () => {\n liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n liveRegion.setAttribute('aria-live', 'assertive');\n liveRegion.setAttribute('aria-atomic', 'true');\n });\n on('afterInit', () => {\n if (!swiper.params.a11y.enabled) return;\n init();\n });\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n if (!swiper.params.a11y.enabled) return;\n initSlides();\n });\n on('fromEdge toEdge afterInit lock unlock', () => {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', () => {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', () => {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n}\n\nexport { A11y as default };\n","import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit,\n params\n } = _ref;\n swiper.autoplay = {\n running: false,\n paused: false,\n timeLeft: 0\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: false,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n let timeout;\n let raf;\n let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n let autoplayTimeLeft;\n let autoplayStartTime = new Date().getTime();\n let wasPaused;\n let isTouched;\n let pausedByTouch;\n let touchStartTimeout;\n let slideChanged;\n let pausedByInteraction;\n let pausedByPointerEnter;\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n if (e.target !== swiper.wrapperEl) return;\n swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n return;\n }\n resume();\n }\n const calcTimeLeft = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.autoplay.paused) {\n wasPaused = true;\n } else if (wasPaused) {\n autoplayDelayCurrent = autoplayTimeLeft;\n wasPaused = false;\n }\n const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n swiper.autoplay.timeLeft = timeLeft;\n emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n raf = requestAnimationFrame(() => {\n calcTimeLeft();\n });\n };\n const getSlideDelay = () => {\n let activeSlideEl;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));\n } else {\n activeSlideEl = swiper.slides[swiper.activeIndex];\n }\n if (!activeSlideEl) return undefined;\n const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n return currentSlideDelay;\n };\n const run = delayForce => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n cancelAnimationFrame(raf);\n calcTimeLeft();\n let delay = typeof delayForce === 'undefined' ? swiper.params.autoplay.delay : delayForce;\n autoplayDelayTotal = swiper.params.autoplay.delay;\n autoplayDelayCurrent = swiper.params.autoplay.delay;\n const currentSlideDelay = getSlideDelay();\n if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0 && typeof delayForce === 'undefined') {\n delay = currentSlideDelay;\n autoplayDelayTotal = currentSlideDelay;\n autoplayDelayCurrent = currentSlideDelay;\n }\n autoplayTimeLeft = delay;\n const speed = swiper.params.speed;\n const proceed = () => {\n if (!swiper || swiper.destroyed) return;\n if (swiper.params.autoplay.reverseDirection) {\n if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n swiper.slidePrev(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n emit('autoplay');\n }\n } else {\n if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n swiper.slideNext(speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n swiper.slideTo(0, speed, true, true);\n emit('autoplay');\n }\n }\n if (swiper.params.cssMode) {\n autoplayStartTime = new Date().getTime();\n requestAnimationFrame(() => {\n run();\n });\n }\n };\n if (delay > 0) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n proceed();\n }, delay);\n } else {\n requestAnimationFrame(() => {\n proceed();\n });\n }\n\n // eslint-disable-next-line\n return delay;\n };\n const start = () => {\n autoplayStartTime = new Date().getTime();\n swiper.autoplay.running = true;\n run();\n emit('autoplayStart');\n };\n const stop = () => {\n swiper.autoplay.running = false;\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n emit('autoplayStop');\n };\n const pause = (internal, reset) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n clearTimeout(timeout);\n if (!internal) {\n pausedByInteraction = true;\n }\n const proceed = () => {\n emit('autoplayPause');\n if (swiper.params.autoplay.waitForTransition) {\n swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n } else {\n resume();\n }\n };\n swiper.autoplay.paused = true;\n if (reset) {\n if (slideChanged) {\n autoplayTimeLeft = swiper.params.autoplay.delay;\n }\n slideChanged = false;\n proceed();\n return;\n }\n const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n proceed();\n };\n const resume = () => {\n if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n autoplayStartTime = new Date().getTime();\n if (pausedByInteraction) {\n pausedByInteraction = false;\n run(autoplayTimeLeft);\n } else {\n run();\n }\n swiper.autoplay.paused = false;\n emit('autoplayResume');\n };\n const onVisibilityChange = () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n const document = getDocument();\n if (document.visibilityState === 'hidden') {\n pausedByInteraction = true;\n pause(true);\n }\n if (document.visibilityState === 'visible') {\n resume();\n }\n };\n const onPointerEnter = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByInteraction = true;\n pausedByPointerEnter = true;\n if (swiper.animating || swiper.autoplay.paused) return;\n pause(true);\n };\n const onPointerLeave = e => {\n if (e.pointerType !== 'mouse') return;\n pausedByPointerEnter = false;\n if (swiper.autoplay.paused) {\n resume();\n }\n };\n const attachMouseEvents = () => {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.el.addEventListener('pointerenter', onPointerEnter);\n swiper.el.addEventListener('pointerleave', onPointerLeave);\n }\n };\n const detachMouseEvents = () => {\n if (swiper.el && typeof swiper.el !== 'string') {\n swiper.el.removeEventListener('pointerenter', onPointerEnter);\n swiper.el.removeEventListener('pointerleave', onPointerLeave);\n }\n };\n const attachDocumentEvents = () => {\n const document = getDocument();\n document.addEventListener('visibilitychange', onVisibilityChange);\n };\n const detachDocumentEvents = () => {\n const document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n };\n on('init', () => {\n if (swiper.params.autoplay.enabled) {\n attachMouseEvents();\n attachDocumentEvents();\n start();\n }\n });\n on('destroy', () => {\n detachMouseEvents();\n detachDocumentEvents();\n if (swiper.autoplay.running) {\n stop();\n }\n });\n on('_freeModeStaticRelease', () => {\n if (pausedByTouch || pausedByInteraction) {\n resume();\n }\n });\n on('_freeModeNoMomentumRelease', () => {\n if (!swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('beforeTransitionStart', (_s, speed, internal) => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n pause(true, true);\n } else {\n stop();\n }\n });\n on('sliderFirstMove', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n return;\n }\n isTouched = true;\n pausedByTouch = false;\n pausedByInteraction = false;\n touchStartTimeout = setTimeout(() => {\n pausedByInteraction = true;\n pausedByTouch = true;\n pause(true);\n }, 200);\n });\n on('touchEnd', () => {\n if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n clearTimeout(touchStartTimeout);\n clearTimeout(timeout);\n if (swiper.params.autoplay.disableOnInteraction) {\n pausedByTouch = false;\n isTouched = false;\n return;\n }\n if (pausedByTouch && swiper.params.cssMode) resume();\n pausedByTouch = false;\n isTouched = false;\n });\n on('slideChange', () => {\n if (swiper.destroyed || !swiper.autoplay.running) return;\n slideChanged = true;\n });\n Object.assign(swiper.autoplay, {\n start,\n stop,\n pause,\n resume\n });\n}\n\nexport { Autoplay as default };\n","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { b as elementParents, q as elementStyle, e as elementChildren, a as setCSSProperty, h as elementOuterSize, r as elementNextAll, t as elementPrevAll, k as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, f as now, x as extend, i 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(_temp) {\n let {\n userAgent\n } = _temp === void 0 ? {} : _temp;\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).*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 (overrides === void 0) {\n overrides = {};\n }\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(_ref) {\n let {\n swiper,\n on,\n emit\n } = _ref;\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(_ref2 => {\n let {\n contentBoxSize,\n contentRect,\n target\n } = _ref2;\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(_ref) {\n let {\n swiper,\n extendParams,\n on,\n emit\n } = _ref;\n const observers = [];\n const window = getWindow();\n const attach = function (target, options) {\n if (options === void 0) {\n options = {};\n }\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() {\n self.off(events, onceHandler);\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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() {\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 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\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 size: swiperSize,\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 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;\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 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 let slide;\n if (slides[i]) slide = slides[i];\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slides);\n }\n if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].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 (slides[i]) {\n slides[i].style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n if (slides[i]) {\n slides[i].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 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 (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\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 const offsetSize = (params.slidesOffsetBefore || 0) + (params.slidesOffsetAfter || 0);\n if (allSlidesSize + offsetSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize - offsetSize) / 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) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\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.remove();\n }\n });\n }\n }\n if (lazyEl) 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 && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\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) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\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, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (translateBounds === void 0) {\n translateBounds = true;\n }\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(_ref) {\n let {\n swiper,\n runCallbacks,\n direction,\n step\n } = _ref;\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, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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 } = swiper.params;\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 (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n let needLoopFix = cols - targetSlideIndex < slidesPerView;\n if (centeredSlides) {\n needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n }\n if (internal && centeredSlides && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n needLoopFix = false;\n }\n if (needLoopFix) {\n const direction = centeredSlides ? 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, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, internal) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\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, internal, threshold) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\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 swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next',\n initial\n });\n}\n\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\n initial,\n byController,\n byMousewheel\n } = _temp === void 0 ? {} : _temp;\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 initialSlide\n } = params;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n if (swiper.virtual && params.virtual.enabled) {\n if (slideTo) {\n if (!params.centeredSlides && swiper.snapIndex === 0) {\n swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n } else if (params.centeredSlides && 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 (centeredSlides && slidesPerView % 2 === 0) {\n slidesPerView = slidesPerView + 1;\n }\n }\n const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n let loopedSlides = centeredSlides ? 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 && !centeredSlides;\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 + (centeredSlides && 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) {\n if (base === void 0) {\n base = this;\n }\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, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\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 // 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 if (obj === void 0) {\n obj = {};\n }\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() {\n let el;\n let params;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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 swiper.modules.push(...params.modules);\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, exact) {\n if (view === void 0) {\n view = 'current';\n }\n if (exact === void 0) {\n exact = false;\n }\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) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\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, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\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","import type { SwiperOptions } from \"swiper/types\";\nimport {\n Navigation,\n Pagination,\n A11y,\n Keyboard,\n Autoplay,\n} from \"swiper/modules\";\nimport { Swiper } from \"swiper\";\n\nimport {\n CLASS_SLIDE,\n CLASS_TRACK,\n CLASS_ACTIVE,\n CLASS_PLAYING,\n CLASS_PAUSED,\n SELECTOR_VIEWPORT,\n SELECTOR_PREV,\n SELECTOR_NEXT,\n SELECTOR_PLAY_PAUSE,\n SELECTOR_TABS,\n SELECTOR_TAB,\n SELECTOR_PAGINATION,\n CLASS_PAGINATION_ITEM,\n CLASS_PAGINATION_SVG,\n CLASS_PAGINATION_CIRCLE,\n} from \"./constants\";\n\nexport const defaultConfig: SwiperOptions = {\n pagination: {\n clickable: true,\n bulletClass: CLASS_PAGINATION_ITEM,\n bulletActiveClass: \"is-active\",\n renderBullet: function (index: number, className: string) {\n return `<button type=\"button\" class=\"${className}\" aria-label=\"Prejsť na snímok ${index + 1}\"></button>`;\n },\n },\n slidesPerView: 1,\n loop: false,\n a11y: {\n enabled: true,\n prevSlideMessage: \"Predchádzajúci snímok\",\n nextSlideMessage: \"Nasledujúci snímok\",\n containerMessage: \"Hero carousel so snímkami\",\n containerRoleDescriptionMessage: \"carousel\",\n itemRoleDescriptionMessage: \"snímok\",\n firstSlideMessage: \"Prvý snímok\",\n lastSlideMessage: \"Posledný snímok\",\n slideLabelMessage: \"Snímok\",\n },\n wrapperClass: CLASS_TRACK,\n slideClass: CLASS_SLIDE,\n slideActiveClass: CLASS_ACTIVE,\n};\n\nexport default class CarouselHero {\n element: HTMLElement;\n config: SwiperOptions;\n viewport!: HTMLElement;\n instance!: Swiper;\n tabs: HTMLElement[] = [];\n _dotAnimationJustStarted: boolean = false;\n _isDragging: boolean = false;\n\n private _boundTabClick!: (e: Event) => void;\n private _boundPrevClick!: () => void;\n private _boundNextClick!: () => void;\n private _boundPlayPauseClick!: () => void;\n\n constructor(element: HTMLElement, config?: Partial<SwiperOptions>) {\n this.element = element;\n this.config = { ...defaultConfig, ...config };\n (this.element as any).ODS_CarouselHero = this;\n this._boundTabClick = this._onTabClick.bind(this);\n this._boundPrevClick = this._onUserNavigation.bind(this);\n this._boundNextClick = this._onUserNavigation.bind(this);\n this._boundPlayPauseClick = this._onPlayPauseClick.bind(this);\n this.init();\n return this;\n }\n\n init() {\n this.getElements();\n this.setupConfig();\n this.createSwiper();\n this.setupEventListeners();\n this.renderPaginationDots();\n this.updateStates();\n this.updatePlayPauseIcon();\n\n if (this.hasAutoplay() && this.isAutoplayRunning()) {\n this.startDotAnimation();\n }\n }\n getElements() {\n this.viewport = this.element.querySelector(SELECTOR_VIEWPORT)!;\n const tabsContainer = this.element.querySelector(SELECTOR_TABS);\n if (tabsContainer) {\n this.tabs = Array.from(tabsContainer.querySelectorAll(SELECTOR_TAB));\n }\n }\n\n setupConfig() {\n const interval = this.element.hasAttribute(\"data-interval\")\n ? parseInt(this.element.getAttribute(\"data-interval\")!) || 0\n : 0;\n\n if (this.element.hasAttribute(\"data-swiper-options\")) {\n try {\n const customOptions = JSON.parse(\n this.element.getAttribute(\"data-swiper-options\")!,\n );\n this.config = { ...this.config, ...customOptions };\n } catch (error) {\n console.warn(\"Invalid swiper options:\", error);\n }\n }\n\n // Enable loop for smoother autoplay behavior\n this.config.loop = true;\n\n // Setup autoplay if interval is specified\n if (interval >= 1000) {\n this.config.autoplay = {\n delay: interval,\n disableOnInteraction: false,\n pauseOnMouseEnter: false,\n waitForTransition: true,\n stopOnLastSlide: false,\n } as NonNullable<SwiperOptions[\"autoplay\"]>;\n this.element.classList.add(CLASS_PLAYING);\n }\n }\n\n createSwiper() {\n const slides = this.viewport.querySelectorAll(`.${CLASS_SLIDE}`);\n const hasPagination = slides.length > 1;\n\n this.instance = new Swiper(this.viewport, {\n ...this.config,\n modules: [Navigation, Pagination, A11y, Keyboard, Autoplay],\n navigation: {\n nextEl: this.element.querySelector(SELECTOR_NEXT) as HTMLElement,\n prevEl: this.element.querySelector(SELECTOR_PREV) as HTMLElement,\n },\n pagination: hasPagination\n ? {\n ...(this.config.pagination as object),\n el: this.element.querySelector(SELECTOR_PAGINATION) as HTMLElement,\n }\n : false,\n on: {\n slideChange: () => {\n this.updateStates();\n if (this.isAutoplayRunning()) {\n this.restartDotAnimation();\n } else {\n this.stopDotAnimation();\n }\n },\n autoplayStart: () => {\n this._onAutoplayStart();\n },\n autoplayStop: () => {\n this._onAutoplayStop();\n },\n touchStart: () => {\n this._isDragging = true;\n this._stopAutoplayIfRunning();\n },\n touchEnd: () => {\n this._isDragging = false;\n },\n },\n });\n\n this.updatePlayPauseIcon();\n }\n\n setupEventListeners() {\n this.tabs.forEach((tab) => {\n tab.removeEventListener(\"click\", this._boundTabClick);\n tab.addEventListener(\"click\", this._boundTabClick);\n });\n\n const playPauseButton = this.element.querySelector(SELECTOR_PLAY_PAUSE);\n if (playPauseButton) {\n playPauseButton.removeEventListener(\"click\", this._boundPlayPauseClick);\n playPauseButton.addEventListener(\"click\", this._boundPlayPauseClick);\n }\n\n const prevButton = this.element.querySelector(SELECTOR_PREV);\n const nextButton = this.element.querySelector(SELECTOR_NEXT);\n if (prevButton) {\n prevButton.removeEventListener(\"click\", this._boundPrevClick);\n prevButton.addEventListener(\"click\", this._boundPrevClick);\n }\n if (nextButton) {\n nextButton.removeEventListener(\"click\", this._boundNextClick);\n nextButton.addEventListener(\"click\", this._boundNextClick);\n }\n }\n\n private _onUserNavigation() {\n this._stopAutoplayIfRunning();\n this.stopDotAnimation();\n }\n\n _onTabClick(e: Event) {\n e.preventDefault();\n const tab = e.currentTarget as HTMLElement;\n const index = this.tabs.indexOf(tab);\n if (index !== -1 && index !== this.instance?.activeIndex) {\n this._onUserNavigation();\n this.goToSlide(index);\n }\n }\n\n private _onPlayPauseClick() {\n this.toggleAutoplay();\n }\n\n // ====== Autoplay helpers ======\n private isAutoplayRunning(): boolean {\n return !!(this.instance?.autoplay && this.instance.autoplay.running);\n }\n\n private _stopAutoplayIfRunning() {\n if (this.isAutoplayRunning()) {\n this.instance.autoplay.stop();\n }\n }\n\n private _onAutoplayStart() {\n this.element.classList.add(CLASS_PLAYING);\n this.element.classList.remove(CLASS_PAUSED);\n this.updatePlayPauseIcon();\n this.startDotAnimation();\n }\n\n private _onAutoplayStop() {\n this.element.classList.remove(CLASS_PLAYING);\n this.element.classList.add(CLASS_PAUSED);\n this.updatePlayPauseIcon();\n this.stopDotAnimation();\n }\n\n toggleAutoplay() {\n if (!this.instance || !this.instance.autoplay) return;\n\n if (this.isAutoplayRunning()) {\n this.instance.autoplay.stop();\n } else {\n // Force Swiper to be on the correct slide before starting autoplay\n const currentRealIndex = this.instance.realIndex;\n\n // Ensure we're on the right slide (accounting for loop mode)\n if (\n this.instance.activeIndex !==\n this.instance.slides.length + currentRealIndex\n ) {\n this.instance.slideTo(\n this.instance.slides.length + currentRealIndex,\n 0,\n );\n }\n\n // Small delay to ensure slide position is stable before starting autoplay\n setTimeout(() => {\n if (this.instance && this.instance.autoplay) {\n this.instance.autoplay.start();\n }\n }, 10);\n }\n }\n\n goToSlide(index: number) {\n if (!this.instance || this.instance.activeIndex === index) return;\n this.instance.slideTo(index);\n }\n\n updateStates() {\n if (!this.instance) return;\n\n // Use realIndex for loop mode, fallback to activeIndex\n const realIndex = this.instance.realIndex ?? this.instance.activeIndex;\n\n // Update tab states\n this.tabs.forEach((tab, index) => {\n const isActive = index === realIndex;\n tab.classList.toggle(CLASS_ACTIVE, isActive);\n tab.setAttribute(\"aria-selected\", String(isActive));\n tab.setAttribute(\"tabindex\", isActive ? \"0\" : \"-1\");\n });\n\n this.scrollActiveTabIntoView(realIndex);\n\n // Manually update pagination bullets\n this.updatePaginationBullets(realIndex);\n }\n\n private updatePaginationBullets(activeIndex: number) {\n const paginationEl = this.element.querySelector(SELECTOR_PAGINATION);\n if (!paginationEl) return;\n\n const bullets = paginationEl.querySelectorAll(`.${CLASS_PAGINATION_ITEM}`);\n\n // With loop enabled, we need to get the real slide index\n const realIndex = this.instance?.realIndex ?? activeIndex;\n\n bullets.forEach((bullet, index) => {\n const isActive = index === realIndex;\n bullet.classList.toggle(\"is-active\", isActive);\n\n // For carousels without autoplay, manually show/hide the SVG\n if (!this.hasAutoplay()) {\n const svg = bullet.querySelector(\n `.${CLASS_PAGINATION_SVG}`,\n ) as HTMLElement;\n if (svg) {\n svg.style.display = isActive ? \"block\" : \"none\";\n }\n }\n });\n }\n scrollActiveTabIntoView(activeIndex: number) {\n if (!this.tabs.length || activeIndex < 0 || activeIndex >= this.tabs.length)\n return;\n\n const activeTab = this.tabs[activeIndex];\n const tabsContainer = this.element.querySelector(\n SELECTOR_TABS,\n ) as HTMLElement;\n if (!tabsContainer || !activeTab) return;\n\n const containerRect = tabsContainer.getBoundingClientRect();\n const tabRect = activeTab.getBoundingClientRect();\n const fadeWidth = 56;\n const containerVisibleWidth = containerRect.width - fadeWidth;\n\n if (\n tabRect.right > containerRect.left + containerVisibleWidth ||\n tabRect.left < containerRect.left\n ) {\n const scrollLeft =\n tabRect.left -\n containerRect.left -\n containerVisibleWidth / 2 +\n tabRect.width / 2;\n tabsContainer.scrollBy({ left: scrollLeft, behavior: \"smooth\" });\n }\n }\n\n updatePlayPauseIcon() {\n const playPauseButton = this.element.querySelector(SELECTOR_PLAY_PAUSE);\n if (!playPauseButton) return;\n\n const useElement = playPauseButton.querySelector(\"use\");\n if (useElement) {\n const isPlaying = this.isAutoplayRunning();\n const newIcon = isPlaying ? \"pause\" : \"play\";\n const currentHref = useElement.getAttribute(\"xlink:href\") || \"\";\n if (!currentHref.endsWith(`#${newIcon}`)) {\n const newHref = currentHref.replace(/#[\\w-]+$/, `#${newIcon}`);\n useElement.setAttribute(\"xlink:href\", newHref);\n }\n }\n }\n\n renderPaginationDots() {\n const paginationButtons = this._getPaginationButtons();\n\n paginationButtons.forEach((button) => {\n const svg = this.createSvgDot();\n button.innerHTML = \"\";\n button.appendChild(svg);\n });\n }\n\n startDotAnimation(force: boolean = false) {\n if (!this.hasAutoplay()) return;\n if (!force && !this.isAutoplayRunning()) return;\n if (this._dotAnimationJustStarted) return;\n\n this._dotAnimationJustStarted = true;\n\n const activeButton = this._getActiveBulletButton();\n if (!activeButton) {\n this._dotAnimationJustStarted = false;\n return;\n }\n\n const svg = activeButton.querySelector(\n `.${CLASS_PAGINATION_SVG}`,\n ) as SVGSVGElement | null;\n if (!svg) {\n this._dotAnimationJustStarted = false;\n return;\n }\n\n const circle = svg.querySelector(\"circle\") as SVGCircleElement | null;\n if (!circle) {\n this._dotAnimationJustStarted = false;\n return;\n }\n\n const duration = this.getAnimationDuration();\n circle.style.animation = \"none\";\n // Force reflow\n void activeButton.offsetHeight;\n circle.style.animation = `countdown linear ${duration}ms 1 forwards`;\n this._dotAnimationJustStarted = false;\n }\n restartDotAnimation() {\n this.stopDotAnimation();\n setTimeout(() => {\n this.startDotAnimation();\n }, 50);\n }\n\n stopDotAnimation() {\n const paginationButtons = this._getPaginationButtons();\n paginationButtons.forEach((button) => {\n const svg = button.querySelector(\n `.${CLASS_PAGINATION_SVG}`,\n ) as SVGSVGElement | null;\n if (!svg) return;\n const circle = svg.querySelector(\"circle\") as SVGCircleElement | null;\n if (!circle) return;\n circle.style.animation = \"none\";\n });\n this._dotAnimationJustStarted = false;\n }\n\n private _getPaginationButtons(): HTMLElement[] {\n return Array.from(\n this.element.querySelectorAll(`${SELECTOR_PAGINATION} > *`),\n ) as HTMLElement[];\n }\n\n private _getActiveBulletClass(): string {\n const pagination = (this.instance?.params as any)?.pagination;\n if (\n pagination &&\n typeof pagination === \"object\" &&\n pagination.bulletActiveClass\n ) {\n return String(pagination.bulletActiveClass);\n }\n const cfgPagination = this.config.pagination as any;\n if (\n cfgPagination &&\n typeof cfgPagination === \"object\" &&\n cfgPagination.bulletActiveClass\n ) {\n return String(cfgPagination.bulletActiveClass);\n }\n return CLASS_ACTIVE;\n }\n\n private _getActiveBulletButton(): HTMLElement | null {\n const activeClass = this._getActiveBulletClass();\n return this.element.querySelector(\n `${SELECTOR_PAGINATION} .${activeClass}`,\n ) as HTMLElement | null;\n }\n\n createSvgDot(): SVGSVGElement {\n const svgNS = \"http://www.w3.org/2000/svg\";\n const svg = document.createElementNS(svgNS, \"svg\");\n svg.setAttribute(\"class\", CLASS_PAGINATION_SVG);\n svg.setAttribute(\"width\", \"12\");\n svg.setAttribute(\"height\", \"12\");\n svg.setAttribute(\"viewBox\", \"0 0 12 12\");\n\n const circle = document.createElementNS(svgNS, \"circle\");\n circle.setAttribute(\"class\", CLASS_PAGINATION_CIRCLE);\n circle.setAttribute(\"r\", \"5\");\n circle.setAttribute(\"cx\", \"6\");\n circle.setAttribute(\"cy\", \"6\");\n\n svg.appendChild(circle);\n return svg;\n }\n\n // ====== Autoplay config helpers ======\n hasAutoplay(): boolean {\n return !!(\n this.config.autoplay &&\n typeof this.config.autoplay === \"object\" &&\n (this.config.autoplay as any).delay >= 1000\n );\n }\n\n getAnimationDuration(): number {\n return (this.config.autoplay as any)?.delay || 0;\n }\n\n destroy() {\n this.tabs.forEach((tab) => {\n tab.removeEventListener(\"click\", this._boundTabClick);\n });\n\n const playPauseButton = this.element.querySelector(SELECTOR_PLAY_PAUSE);\n if (playPauseButton) {\n playPauseButton.removeEventListener(\"click\", this._boundPlayPauseClick);\n }\n\n const prevButton = this.element.querySelector(SELECTOR_PREV);\n const nextButton = this.element.querySelector(SELECTOR_NEXT);\n if (prevButton) {\n prevButton.removeEventListener(\"click\", this._boundPrevClick);\n }\n if (nextButton) {\n nextButton.removeEventListener(\"click\", this._boundNextClick);\n }\n\n if (this.instance) {\n this.instance.destroy(true, true);\n }\n\n delete (this.element as any).ODS_CarouselHero;\n }\n\n static getInstance(el: HTMLElement): CarouselHero | null {\n return (el as any).ODS_CarouselHero || null;\n }\n}\n","\"use client\";\n\nimport React, { ReactNode } from \"react\";\nimport cx from \"classnames\";\n\nimport { Controls } from \"../Controls\";\nimport { CarouselHeroItem } from \"./CarouselHeroItem\";\nimport CarouselHeroStatic from \"./CarouselHero.static\";\nimport {\n CLASS_ROOT,\n CLASS_VIEWPORT_WRAPPER,\n CLASS_VIEWPORT,\n CLASS_PREV,\n CLASS_NEXT,\n CLASS_PLAY_PAUSE,\n CLASS_TABS,\n CLASS_TAB,\n CLASS_PAGINATION,\n CLASS_CONTROLS,\n CLASS_TRACK,\n CLASS_NAVIGATION,\n} from \"./constants\";\nimport { useStatic } from \"@/utils/hooks\";\n\ninterface TabItem {\n label: string;\n [key: string]: any;\n}\n\ninterface CarouselHeroProps {\n className?: string;\n swiperOptions?: Record<string, any>;\n colorScheme?: \"light\" | \"dark\";\n children?: ReactNode;\n tabs?: TabItem[];\n interval?: number;\n [key: string]: any;\n}\n\nconst CarouselHero: React.FC<CarouselHeroProps> = ({\n className,\n swiperOptions,\n colorScheme,\n children,\n tabs = [],\n interval,\n ...other\n}) => {\n const [carouselRef] = useStatic(CarouselHeroStatic);\n\n const classes = cx(CLASS_ROOT, className, {\n \"is-light\": colorScheme === \"light\",\n \"is-dark\": colorScheme === \"dark\",\n });\n\n const elementClasses = {\n prev: cx(CLASS_PREV),\n next: cx(CLASS_NEXT),\n playPause: cx(CLASS_PLAY_PAUSE),\n tabs: cx(CLASS_TABS),\n tab: cx(CLASS_TAB),\n pagination: cx(CLASS_PAGINATION),\n controls: cx(CLASS_CONTROLS),\n };\n\n const hasAutoplay =\n (swiperOptions?.autoplay &&\n typeof swiperOptions.autoplay === \"object\" &&\n (swiperOptions.autoplay as any).delay >= 1000) ||\n (interval && interval >= 1000);\n\n const playPauseIcon = \"pause\";\n\n return (\n <div\n className={classes}\n ref={carouselRef}\n data-carousel-hero\n {...(interval && interval >= 1000 ? { \"data-interval\": interval } : {})}\n {...(swiperOptions\n ? { \"data-swiper-options\": JSON.stringify(swiperOptions) }\n : {})}\n {...other}\n >\n <div className={CLASS_VIEWPORT_WRAPPER}>\n <div className={CLASS_VIEWPORT}>\n <div className={CLASS_TRACK}>{children}</div>\n </div>\n </div>\n\n {/* Controls container */}\n <div className={elementClasses.controls}>\n {/* Tab navigation */}\n {tabs.length > 0 && (\n <div className={elementClasses.tabs} role=\"tablist\">\n {tabs.map((tab, index) => (\n <button\n key={index}\n type=\"button\"\n className={elementClasses.tab}\n role=\"tab\"\n aria-selected={index === 0 ? \"true\" : \"false\"}\n tabIndex={index === 0 ? 0 : -1}\n >\n {tab.label}\n </button>\n ))}\n </div>\n )}\n\n {/* Pagination dots for mobile */}\n <div role=\"tablist\" className={elementClasses.pagination} />\n\n {/* Navigation controls */}\n <div className={CLASS_NAVIGATION}>\n <Controls\n className={elementClasses.prev}\n icon=\"chevron-left\"\n colorScheme={colorScheme}\n aria-label=\"Predchádzajúci snímok\"\n />\n\n <Controls\n className={elementClasses.next}\n icon=\"chevron-right\"\n colorScheme={colorScheme}\n aria-label=\"Nasledujúci snímok\"\n />\n\n {/* Only show play/pause button if autoplay is configured */}\n {hasAutoplay && (\n <Controls\n className={elementClasses.playPause}\n icon={playPauseIcon}\n colorScheme={colorScheme}\n aria-label=\"Pozastaviť/Spustiť automatické prehrávanie\"\n />\n )}\n </div>\n </div>\n </div>\n );\n};\n\nCarouselHero.displayName = \"CarouselHero\";\n\nexport { CarouselHero, CarouselHeroItem };\nexport type { CarouselHeroProps, TabItem };\n","\"use client\";\n\nimport {\n useEffect,\n useCallback,\n useRef,\n useMemo,\n RefCallback,\n type RefObject,\n useState,\n} from \"react\";\n\nimport generateId from \"./generateId\";\n\n// Generic type for any class constructor\ntype StaticClassType<T = any> = new (element: HTMLElement, config?: any) => T;\n\n// Define a generic interface for static class instances\ninterface StaticInstance {\n update?: (config: any) => void;\n destroy?: () => void;\n}\n\n/**\n * A hook to create and manage an instance of a \"static\" class\n * @param StaticClass The class to instantiate\n * @param config Configuration options for the class\n * @returns [ref callback, instance reference]\n */\nconst useStatic = <T extends StaticInstance>(\n StaticClass: StaticClassType<T>,\n config: Record<string, any> = {},\n): [RefCallback<HTMLElement>, RefObject<T | null>] => {\n const instance = useRef<T | null>(null);\n const configRef = useRef(config);\n const elementRef = useRef<HTMLElement | null>(null);\n\n // Update config ref when config changes\n useEffect(() => {\n configRef.current = config ?? {};\n }, [config]);\n\n const ref = useCallback(\n (node: HTMLElement | null) => {\n // Clean up previous instance if element changes\n if (\n elementRef.current &&\n elementRef.current !== node &&\n instance.current\n ) {\n instance.current.destroy?.();\n instance.current = null;\n }\n\n elementRef.current = node;\n\n if (node) {\n // Only create new instance if we don't have one yet\n if (instance.current === null) {\n instance.current = new StaticClass(node, configRef.current);\n } else {\n // Update existing instance with new config\n instance.current.update?.(configRef.current);\n }\n }\n },\n [StaticClass],\n );\n\n // Cleanup on unmount or when StaticClass changes\n useEffect(() => {\n return () => {\n if (instance.current) {\n instance.current.destroy?.();\n instance.current = null;\n }\n elementRef.current = null;\n };\n }, [StaticClass]);\n\n return [ref, instance];\n};\n\n/**\n * A hook for creating React portals\n * From https://www.jayfreestone.com/writing/react-portals-with-hooks/\n * @param id The id of the target DOM element\n * @returns A DOM element that can be used as a portal container\n */\nfunction usePortal(id: string): HTMLDivElement {\n const rootElemRef = useRef<HTMLDivElement | null>(null);\n\n useEffect(\n function setupElement() {\n if (typeof document === \"undefined\") return;\n\n // Create element if it doesn't exist\n if (!rootElemRef.current) {\n rootElemRef.current = document.createElement(\"div\");\n }\n\n // Look for existing target dom element to append to\n const parentElem = document.querySelector(`#${id}`);\n\n // Add the detached element to the parent\n if (parentElem && rootElemRef.current) {\n parentElem.appendChild(rootElemRef.current);\n }\n\n // This function is run on unmount\n return function removeElement() {\n rootElemRef.current?.remove();\n };\n },\n [id],\n );\n\n function getRootElem(): HTMLDivElement {\n if (typeof document === \"undefined\") {\n throw new Error(\"usePortal must be used in a browser environment\");\n }\n\n if (!rootElemRef.current) {\n rootElemRef.current = document.createElement(\"div\");\n }\n return rootElemRef.current;\n }\n\n return getRootElem();\n}\n\n/**\n * Returns unique string for the `id` attribute.\n *\n * @param id Provided id\n * @param name Optional prefix\n * @returns A unique ID string\n */\nconst useUniqueId = (id?: string, name?: string): string =>\n useMemo(() => id ?? generateId(name), [id, name]);\n\n/**\n * Hydration-safe hook for generating a unique, numeric ID for tooltips and similar components.\n * Ensures IDs are consistent between SSR and client, and match test expectations.\n * @param providedId Optional externally provided ID\n * @returns Hydration-safe unique ID string (e.g., \"id-1\")\n */\nconst idCounter = { current: 0 };\n\nfunction useHydrationSafeId(providedId?: string): string {\n const [hydratedId, setHydratedId] = useState<string | undefined>(providedId);\n const idRef = useRef<string | undefined>(providedId);\n\n useEffect(() => {\n if (!providedId) {\n idCounter.current += 1;\n const newId = `id-${idCounter.current}`;\n idRef.current = newId;\n setHydratedId(newId);\n }\n }, [providedId]);\n\n return hydratedId || idRef.current || providedId || \"id-0\";\n}\n\nexport { useStatic, usePortal, useUniqueId, useHydrationSafeId };\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","window","process","env","NODE_ENV","getComponentNameFromType","type","$$typeof","REACT_CLIENT_REFERENCE","displayName","name","REACT_FRAGMENT_TYPE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","tag","console","error","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","_context","REACT_FORWARD_REF_TYPE","innerType","render","REACT_MEMO_TYPE","REACT_LAZY_TYPE","_payload","_init","x","testStringCoercion","checkKeyStringCoercion","JSCompiler_inline_result","e","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","Symbol","toStringTag","constructor","getTaskName","UnknownOwner","Error","elementRefGetterWithDeprecationWarning","componentName","this","didWarnAboutElementRef","props","ref","jsxDEVImpl","config","maybeKey","isStaticChildren","source","self","debugStack","debugTask","dispatcher","children","isArrayImpl","validateChildKeys","freeze","keys","filter","k","join","didWarnAboutKeySpread","getter","getOwnPropertyDescriptor","get","isReactWarning","hasValidKey","propName","warnAboutAccessingKey","specialPropKeyWarningShown","defineProperty","configurable","defineKeyPropWarningGetter","owner","REACT_ELEMENT_TYPE","_owner","enumerable","_store","writable","ReactElement","ReactSharedInternals","A","getOwner","node","validated","React","require$$0","for","__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE","createTask","unknownOwnerDebugStack","react_stack_bottom_frame","callStackForError","bind","unknownOwnerDebugTask","reactJsxRuntime_development","Fragment","jsx","trackActualOwner","recentlyCreatedOwnerStacks","jsxs","jsxRuntimeModule","jsxProd","reactJsxRuntime_production","require$$1","SpritePathContext","createContext","_excluded","CLASS_ROOT","Icon","_ref","className","alt","color","size","_ref$spritePath","spritePath","_ref$type","other","_objectWithoutProperties","contextPath","useContext","isPictogram","cx","_defineProperty","concat","finalSpritePath","_jsxs","_objectSpread","undefined","role","_jsx","xlinkHref","Controls","forwardRef","elemRef","icon","colorScheme","isDisabled","rest","buttonProps","disabled","overlayBreakpoints","xs","sm","md","lg","xl","xxl","xxxl","Image","src","_typeof","descendingSrcKeys","sort","a","b","parseInt","map","breakpoint","srcSet","media","CLASS_VIEWPORT_WRAPPER","CLASS_VIEWPORT","CLASS_TRACK","CLASS_SLIDE","CLASS_PREV","CLASS_NEXT","CLASS_PLAY_PAUSE","CLASS_TABS","CLASS_TAB","CLASS_PAGINATION","CLASS_PAGINATION_ITEM","CLASS_PAGINATION_SVG","CLASS_PAGINATION_CIRCLE","CLASS_CONTROLS","CLASS_NAVIGATION","CLASS_ACTIVE","CLASS_PLAYING","CLASS_PAUSED","SELECTOR_VIEWPORT","SELECTOR_PREV","SELECTOR_NEXT","SELECTOR_PLAY_PAUSE","SELECTOR_TABS","SELECTOR_TAB","SELECTOR_PAGINATION","CarouselHeroItem","image","title","isObject","obj","extend","target","noExtend","indexOf","forEach","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","nextTick","delay","now","getTranslate","el","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","transform","webkitTransform","split","replace","MozTransform","OTransform","MsTransform","msTransform","m41","parseFloat","m42","o","slice","isNode","HTMLElement","nodeType","to","nextSource","keysArray","nextIndex","len","nextKey","desc","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","elementChildren","element","selector","HTMLSlotElement","push","assignedElements","matches","showWarning","text","warn","err","classList","add","trim","c","classesToTokens","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parent","parentElement","elementOuterSize","includeMargins","makeElementsArray","setInnerHTML","html","trustedTypes","innerHTML","createPolicy","createHTML","s","Keyboard","extendParams","on","emit","handle","event","enabled","rtlTranslate","rtl","originalEvent","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","allowSlideNext","isHorizontal","isVertical","allowSlidePrev","shiftKey","altKey","ctrlKey","metaKey","isContentEditable","toLowerCase","onlyInViewport","inView","slideClass","slideActiveClass","swiperWidth","clientWidth","swiperHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","swiperOffset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementOffset","swiperCoord","point","preventDefault","returnValue","slideNext","slidePrev","enable","disable","assign","createElementIfNotDefined","originalParams","checkProps","createElements","auto","append","Navigation","getEl","res","isElement","hostEl","uniqueNavElements","toggleEl","navigation","subEl","disabledClass","tagName","watchOverflow","isLocked","lockClass","update","nextEl","prevEl","loop","isBeginning","rewind","isEnd","onPrevClick","onNextClick","init","initButton","destroy","destroyButton","remove","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","targetIsButton","path","composedPath","find","pathEl","pagination","clickable","contains","isHidden","toggle","classesToSelector","Pagination","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","bulletEl","position","onBulletClick","closest","index","slidesPerGroup","realIndex","moveDirection","prevIndex","slides","slideToLoop","slideTo","previousIndex","slidesLength","virtual","total","ceil","snapGrid","previousRealIndex","floor","snapIndex","previousSnapIndex","activeIndex","firstIndex","lastIndex","midIndex","classesToRemove","suffix","flat","bullet","bulletIndex","firstDisplayedBullet","lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","subElIndex","fractionEl","textContent","totalEl","progressbarDirection","scale","scaleX","scaleY","progressEl","transitionDuration","grid","rows","paginationHTML","numberOfBullets","freeMode","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","containerRole","itemRoleDescriptionMessage","slideRole","scrollOnFocus","clicked","preventFocusHandler","focusTargetSlideEl","liveRegion","visibilityChangedTimestamp","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","addElRoleDescription","description","addElLabel","label","disableEl","enableEl","onEnterOrSpaceKey","prevEls","click","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handlePointerDown","handlePointerUp","destroyed","onVisibilityChange","handleFocus","slideEl","isActive","isVisible","watchSlidesProgress","visibleSlides","sourceCapabilities","firesTouchEvents","getSlideIndexWhenGrid","getAttribute","initSlides","slideIndex","containerEl","repeat","round","random","live","autoplay","addElLive","updateNavigation","removeAttribute","updatePagination","Autoplay","timeout","raf","running","paused","timeLeft","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","autoplayTimeLeft","wasPaused","isTouched","pausedByTouch","touchStartTimeout","slideChanged","pausedByInteraction","pausedByPointerEnter","autoplayDelayTotal","autoplayDelayCurrent","autoplayStartTime","onTransitionEnd","detail","bySwiperTouchMove","resume","calcTimeLeft","run","delayForce","currentSlideDelay","activeSlideEl","getSlideDelay","Number","isNaN","proceed","cssMode","start","stop","pause","internal","reset","visibilityState","onPointerEnter","pointerType","animating","onPointerLeave","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","needPerspectiveFix","isSafari","String","major","minor","num","isWebView","test","isSafariBrowser","need3dFix","calcBrowser","eventsEmitter","events","handler","priority","eventsListeners","method","once","onceHandler","off","__emitterProxy","_len","args","_key","onAny","eventsAnyListeners","offAny","splice","eventHandler","data","context","_len2","_key2","unshift","toggleSlideClasses$1","condition","toggleSlideClasses","processLazyPreloader","imageEl","lazyEl","lazyPreloaderClass","shadowRoot","unlazy","preload","amount","lazyPreloadPrevNext","slidesPerView","slidesPerViewDynamic","activeColumn","preloadColumns","from","_","column","slideIndexLastInView","updateSize","updateSlides","getDirectionPropertyValue","getDirectionLabel","slidesEl","swiperSize","wrongRTL","isVirtual","previousSlidesLength","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginRight","marginBottom","marginTop","centeredSlides","gridEnabled","slideSize","unsetSlides","shouldResetSlideSize","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","offsetWidth","swiperSlideSize","abs","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","groups","slidesBefore","slidesAfter","groupSize","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","offsetSize","allSlidesOffset","addToSnapGrid","addToSlidesGrid","v","checkOverflow","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","getSlideIndexByData","offsetHeight","minusOffset","offsetLeft","offsetTop","swiperSlideOffset","cssOverflowAdjustment","updateSlidesProgress","offsetCenter","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isFullyVisible","slideVisibleClass","slideFullyVisibleClass","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","progressLoop","wasBeginning","wasEnd","isBeginningRounded","isEndRounded","firstSlideIndex","lastSlideIndex","firstSlideTranslate","lastSlideTranslate","translateMax","translateAbs","autoHeight","updateSlidesClasses","getFilteredSlide","activeSlide","prevSlide","nextSlide","nextEls","nextElementSibling","next","elementNextAll","previousElementSibling","prev","elementPrevAll","slideNextClass","slidePrevClass","emitSlidesClasses","updateActiveIndex","newActiveIndex","getVirtualRealIndex","aIndex","normalizeSlideIndex","getActiveIndexByTranslate","skip","firstSlideInColumn","activeSlideIndex","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","y","previousTranslate","translateTo","runCallbacks","translateBounds","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","initial","normalizedTranslate","normalizedGrid","normalizedGridNext","transitionStart","transitionEnd","t","_immediateVirtual","_cssModeVirtualInitialSet","initialSlide","onSlideToWrapperTransitionEnd","newIndex","targetSlideIndex","cols","needLoopFix","loopFix","slideRealIndex","perGroup","slidesPerGroupAuto","increment","loopPreventsSliding","_clientLeft","normalize","val","normalizedSnapGrid","isFreeMode","prevSnap","prevSnapIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","slideSelector","isGrid","getSlideIndex","loopCreate","loopAddBlankSlides","slideBlankClass","recalcSlides","clearBlankSlides","shouldFillGroup","shouldFillGrid","addBlankSlides","amountOfSlides","byMousewheel","loopedSlides","loopAdditionalSlides","fill","prependSlidesIndexes","appendSlidesIndexes","isInitialOverflow","isNext","isPrev","slidesPrepended","slidesAppended","activeColIndexWithShift","colIndexToPrepend","__preventObserver__","swiperLoopMoveDOM","prepend","currentSlideTranslate","diff","touchEventsData","startTranslate","shift","controller","control","loopParams","loopDestroy","newSlidesOrder","swiperSlideIndex","preventEdgeSwipe","startX","edgeSwipeDetection","edgeSwipeThreshold","onTouchStart","pointerId","targetTouches","touchId","identifier","pageX","touches","simulateTouch","touchEventsTarget","isChild","slot","elementsQueue","elementToCheck","elementIsChildOfSlot","elementIsChildOf","which","button","isMoved","swipingClassHasValue","noSwipingClass","eventPath","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","found","getRootNode","closestElement","allowClick","swipeHandler","currentX","currentY","pageY","startY","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","previousX","previousY","diffX","diffY","sqrt","touchAngle","atan2","preventTouchMoveFromPointerMove","cancelable","touchMoveStopPropagation","nested","stopPropagation","touchesDiff","oneWayMovement","touchRatio","prevTouchesDirection","touchesDirection","isLoop","allowLoopFix","evt","bubbles","dispatchEvent","allowMomentumBounce","grabCursor","setGrabCursor","_loopSwapReset","loopSwapReset","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","swipeToLast","stopIndex","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","onResize","setBreakpoint","isVirtualLoop","resizeTimeout","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","onLoad","onDocumentTouchStart","documentTouchHandlerProceeded","touchAction","capture","domMethod","swiperMethod","passive","updateOnWindowResize","isGridEnabled","defaults","swiperElementNodeName","resizeObserver","eventsPrefix","url","breakpointsBase","passiveListeners","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","prototypes","transition","transitionDelay","moving","cursor","unsetGrabCursor","attachEvents","detachEvents","breakpointContainer","getBreakpoint","currentBreakpoint","breakpointParams","wasMultiRow","isMultiRow","wasGrabCursor","isGrabCursor","wasEnabled","emitContainerClasses","wasModuleEnabled","isModuleEnabled","directionChanged","needsReLoop","wasLoop","changeDirection","isEnabled","hasLoop","currentHeight","points","minRatio","substr","wasLocked","lastSlideRightEdge","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","centered","removeClasses","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","trunc","clickTimeout","velocities","imagesToLoad","imagesLoaded","property","setProgress","cls","getSlideClasses","updates","view","exact","spv","breakLoop","translateValue","translated","complete","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","parentNode","toUpperCase","getWrapperSelector","getWrapper","slideSlots","lazyElements","deleteInstance","cleanStyles","object","deleteProps","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","options","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","defaultConfig","CarouselHero","_classCallCheck","ODS_CarouselHero","_boundTabClick","_onTabClick","_boundPrevClick","_onUserNavigation","_boundNextClick","_boundPlayPauseClick","_onPlayPauseClick","getElements","setupConfig","createSwiper","setupEventListeners","renderPaginationDots","updateStates","updatePlayPauseIcon","hasAutoplay","isAutoplayRunning","startDotAnimation","viewport","tabsContainer","tabs","interval","hasAttribute","customOptions","JSON","parse","_this","instance","slideChange","restartDotAnimation","stopDotAnimation","autoplayStart","_onAutoplayStart","autoplayStop","_onAutoplayStop","touchStart","_isDragging","_stopAutoplayIfRunning","touchEnd","_this2","tab","playPauseButton","prevButton","nextButton","_this$instance","currentTarget","goToSlide","toggleAutoplay","_this$instance2","_this3","currentRealIndex","_this$instance$realIn","scrollActiveTabIntoView","updatePaginationBullets","_this$instance$realIn2","_this$instance3","_this4","paginationEl","svg","display","activeTab","containerRect","tabRect","containerVisibleWidth","right","scrollBy","useElement","newIcon","currentHref","endsWith","newHref","_this5","_getPaginationButtons","createSvgDot","appendChild","force","_dotAnimationJustStarted","activeButton","_getActiveBulletButton","circle","getAnimationDuration","animation","_this6","_this$instance4","cfgPagination","activeClass","_getActiveBulletClass","svgNS","_this$config$autoplay","_this7","swiperOptions","_ref$tabs","_useStatic","StaticClass","useRef","configRef","elementRef","useEffect","useCallback","_instance$current$des","_instance$current","_instance$current$upd","_instance$current2","_instance$current$des2","_instance$current3","useStatic","CarouselHeroStatic","carouselRef","_slicedToArray","elementClasses","playPause","stringify","tabIndex"],"mappings":"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","x_google_ignoreList":[0,1,2,3,11,12,13,14,15,16,17,18,19,20]}
|