{"version":3,"file":"2a1671ce3779767d6495318c9e0c0d3a92090827.js","mappings":"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","sources":["webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner/dist/esm/ lazy ^\\.\\/.*\\.entry\\.js$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ namespace object","webpack://if-website/./node_modules/@contentful/rich-text-react-renderer/dist/rich-text-react-renderer.es5.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/blocks.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/emptyDocument.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/helpers.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/index.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/inlines.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/marks.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/nodeTypes.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/schemaConstraints.js","webpack://if-website/./node_modules/@contentful/rich-text-types/dist/types.js","webpack://if-website/./node_modules/@cuisine/video-helper/dist/index.mjs","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner/dist/esm/index-a4b755f8.js","webpack://if-website/./node_modules/camelcase/index.js","webpack://if-website/./node_modules/contentful-resolve-response/dist/esm/index.js","webpack://if-website/./node_modules/fast-copy/dist/fast-copy.js","webpack://if-website/./node_modules/react-cookiebot/lib/CookieBot.js","webpack://if-website/./node_modules/react-cookiebot/lib/index.js","webpack://if-website/./node_modules/react-fast-compare/index.js","webpack://if-website/./node_modules/react-helmet/es/Helmet.js","webpack://if-website/./node_modules/react-side-effect/lib/index.js","webpack://if-website/./node_modules/core-js/modules/es.array.unscopables.flat.js","webpack://if-website/../src/image-utils.ts","webpack://if-website/../src/components/hooks.ts","webpack://if-website/../src/components/layout-wrapper.tsx","webpack://if-website/../src/components/picture.tsx","webpack://if-website/../src/components/placeholder.tsx","webpack://if-website/../src/components/main-image.tsx","webpack://if-website/../src/components/gatsby-image.server.tsx","webpack://if-website/../src/components/gatsby-image.browser.tsx","webpack://if-website/../src/components/static-image.server.tsx","webpack://if-website/../src/components/static-image.tsx","webpack://if-website/./node_modules/gatsby-source-contentful/rich-text.js","webpack://if-website/./src/components/cms-modules/form/index.jsx","webpack://if-website/./src/components/cms-modules/form/form.module.scss","webpack://if-website/./src/components/cms-modules/hero/components/heroTeaser/heroTeaser.module.scss","webpack://if-website/./src/components/cms-modules/hero/components/heroTeaser/index.jsx","webpack://if-website/./src/components/cms-modules/hero/hero.module.scss","webpack://if-website/./node_modules/swiper/shared/ssr-window.esm.mjs","webpack://if-website/./node_modules/swiper/shared/utils.mjs","webpack://if-website/./node_modules/swiper/shared/swiper-core.mjs","webpack://if-website/./node_modules/swiper/shared/update-swiper.mjs","webpack://if-website/./node_modules/swiper/swiper-react.mjs","webpack://if-website/./node_modules/swiper/shared/update-on-virtual-data.mjs","webpack://if-website/./node_modules/swiper/shared/create-element-if-not-defined.mjs","webpack://if-website/./node_modules/swiper/modules/navigation.mjs","webpack://if-website/./node_modules/swiper/shared/classes-to-selector.mjs","webpack://if-website/./node_modules/swiper/modules/pagination.mjs","webpack://if-website/./src/components/ui/carousel/styles.module.scss","webpack://if-website/./src/components/ui/carousel/index.jsx","webpack://if-website/./src/components/cms-modules/hero/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/designAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/goldAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/socialImpact/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/talentAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/components/taipeiCycleAward/index.jsx","webpack://if-website/./src/components/ui/awardBadge/index.jsx","webpack://if-website/./src/components/ui/awardBadge/styles.module.scss","webpack://if-website/./src/components/ui/button/styles.module.scss","webpack://if-website/./src/components/ui/spinner/index.jsx","webpack://if-website/./src/components/ui/spinner/styles.module.scss","webpack://if-website/./src/components/ui/button/index.jsx","webpack://if-website/./src/components/ui/dropdown/index.jsx","webpack://if-website/./src/components/ui/dropdown/dropdown.module.scss","webpack://if-website/./src/components/ui/filterSearch/components/searchField/styles.module.scss","webpack://if-website/./src/components/ui/filterSearch/components/searchField/index.jsx","webpack://if-website/./src/hooks/useDebounce.js","webpack://if-website/./src/components/ui/image/styles.module.scss","webpack://if-website/./src/components/ui/image/index.jsx","webpack://if-website/./src/components/ui/richText/styles.module.scss","webpack://if-website/./src/components/ui/richText/index.jsx","webpack://if-website/./src/components/ui/iframe/index.jsx","webpack://if-website/./src/components/ui/video/styles.module.scss","webpack://if-website/./src/components/ui/video/index.jsx","webpack://if-website/./src/helpers/fetch.js","webpack://if-website/./src/hooks/useScrollPosition.js","webpack://if-website/./src/modules/anchorLinkNavigation/index.jsx","webpack://if-website/./src/modules/anchorLinkNavigation/anchorLinkNavigation.module.scss","webpack://if-website/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://if-website/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://if-website/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://if-website/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/stencilproxy/react-component-lib/utils/case.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/stencilproxy/react-component-lib/utils/attachProps.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/stencilproxy/react-component-lib/utils/index.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/stencilproxy/react-component-lib/createComponent.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner/dist/esm/loader.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner/loader/index.js","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/stencilproxy/components.js","webpack://if-website/./src/modules/porscheCookieBanner/index.jsx","webpack://if-website/./node_modules/@porscheofficial/cookie-consent-banner-react/lib/module/index.js","webpack://if-website/./src/modules/porscheCookieBanner/porscheCookieBanner.module.scss","webpack://if-website/./src/modules/cookieBanner/cookieBanner.module.scss","webpack://if-website/./src/modules/cookieBanner/index.jsx","webpack://if-website/./src/modules/cookieBanner/cookieBannerWrapper.jsx","webpack://if-website/./src/modules/socialIcons/styles.module.scss","webpack://if-website/./src/modules/socialIcons/index.jsx","webpack://if-website/./src/modules/footer/footer.module.scss","webpack://if-website/./src/modules/footer/index.jsx","webpack://if-website/./src/modules/header/components/searchOverlay/index.jsx","webpack://if-website/./src/modules/header/components/searchOverlay/styles.module.scss","webpack://if-website/./src/modules/header/header.module.scss","webpack://if-website/./src/modules/cubeNavigation/cubeNavigation.module.scss","webpack://if-website/./src/modules/cubeNavigation/index.jsx","webpack://if-website/./src/modules/header/index.jsx","webpack://if-website/./src/modules/scrollToTop/index.jsx","webpack://if-website/./src/modules/layout/index.jsx","webpack://if-website/./src/modules/layout/layout.module.scss","webpack://if-website/./src/modules/seo/index.jsx","webpack://if-website/./src/pages/maintenance.js","webpack://if-website/./src/images/placeholder-image.png"],"sourcesContent":["var map = {\n\t\"./cookie-consent-banner.entry.js\": [\n\t\t1993,\n\t\t1993\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function() { return Object.keys(map); };\nwebpackAsyncContext.id = 572;\nmodule.exports = webpackAsyncContext;","'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n value: true\n});\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\nvar __assign = function () {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nfunction unwrapExports(x) {\n return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nfunction createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n}\nvar blocks = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.BLOCKS = void 0;\n /**\n * Map of all Contentful block types. Blocks contain inline or block nodes.\n */\n var BLOCKS;\n (function (BLOCKS) {\n BLOCKS[\"DOCUMENT\"] = \"document\";\n BLOCKS[\"PARAGRAPH\"] = \"paragraph\";\n BLOCKS[\"HEADING_1\"] = \"heading-1\";\n BLOCKS[\"HEADING_2\"] = \"heading-2\";\n BLOCKS[\"HEADING_3\"] = \"heading-3\";\n BLOCKS[\"HEADING_4\"] = \"heading-4\";\n BLOCKS[\"HEADING_5\"] = \"heading-5\";\n BLOCKS[\"HEADING_6\"] = \"heading-6\";\n BLOCKS[\"OL_LIST\"] = \"ordered-list\";\n BLOCKS[\"UL_LIST\"] = \"unordered-list\";\n BLOCKS[\"LIST_ITEM\"] = \"list-item\";\n BLOCKS[\"HR\"] = \"hr\";\n BLOCKS[\"QUOTE\"] = \"blockquote\";\n BLOCKS[\"EMBEDDED_ENTRY\"] = \"embedded-entry-block\";\n BLOCKS[\"EMBEDDED_ASSET\"] = \"embedded-asset-block\";\n BLOCKS[\"TABLE\"] = \"table\";\n BLOCKS[\"TABLE_ROW\"] = \"table-row\";\n BLOCKS[\"TABLE_CELL\"] = \"table-cell\";\n BLOCKS[\"TABLE_HEADER_CELL\"] = \"table-header-cell\";\n })(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {}));\n});\nunwrapExports(blocks);\nvar blocks_1 = blocks.BLOCKS;\nvar inlines = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.INLINES = void 0;\n /**\n * Map of all Contentful inline types. Inline contain inline or text nodes.\n */\n var INLINES;\n (function (INLINES) {\n INLINES[\"HYPERLINK\"] = \"hyperlink\";\n INLINES[\"ENTRY_HYPERLINK\"] = \"entry-hyperlink\";\n INLINES[\"ASSET_HYPERLINK\"] = \"asset-hyperlink\";\n INLINES[\"EMBEDDED_ENTRY\"] = \"embedded-entry-inline\";\n })(INLINES = exports.INLINES || (exports.INLINES = {}));\n});\nunwrapExports(inlines);\nvar inlines_1 = inlines.INLINES;\nvar marks = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n /**\n * Map of all Contentful marks.\n */\n var MARKS;\n (function (MARKS) {\n MARKS[\"BOLD\"] = \"bold\";\n MARKS[\"ITALIC\"] = \"italic\";\n MARKS[\"UNDERLINE\"] = \"underline\";\n MARKS[\"CODE\"] = \"code\";\n MARKS[\"SUPERSCRIPT\"] = \"superscript\";\n MARKS[\"SUBSCRIPT\"] = \"subscript\";\n })(MARKS || (MARKS = {}));\n exports.default = MARKS;\n});\nunwrapExports(marks);\nvar schemaConstraints = createCommonjsModule(function (module, exports) {\n var __spreadArray = commonjsGlobal && commonjsGlobal.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n };\n var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n var _a;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0;\n var marks_1 = __importDefault(marks);\n /**\n * Array of all top level block types.\n * Only these block types can be the direct children of the document.\n */\n exports.TOP_LEVEL_BLOCKS = [blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET, blocks.BLOCKS.TABLE];\n /**\n * Array of all allowed block types inside list items\n */\n exports.LIST_ITEM_BLOCKS = [blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET];\n exports.TABLE_BLOCKS = [blocks.BLOCKS.TABLE, blocks.BLOCKS.TABLE_ROW, blocks.BLOCKS.TABLE_CELL, blocks.BLOCKS.TABLE_HEADER_CELL];\n /**\n * Array of all void block types\n */\n exports.VOID_BLOCKS = [blocks.BLOCKS.HR, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET];\n /**\n * Dictionary of all container block types, and the set block types they accept as children.\n *\n * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`\n */\n exports.CONTAINERS = (_a = {}, _a[blocks.BLOCKS.OL_LIST] = [blocks.BLOCKS.LIST_ITEM], _a[blocks.BLOCKS.UL_LIST] = [blocks.BLOCKS.LIST_ITEM], _a[blocks.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS, _a[blocks.BLOCKS.QUOTE] = [blocks.BLOCKS.PARAGRAPH], _a[blocks.BLOCKS.TABLE] = [blocks.BLOCKS.TABLE_ROW], _a[blocks.BLOCKS.TABLE_ROW] = [blocks.BLOCKS.TABLE_CELL, blocks.BLOCKS.TABLE_HEADER_CELL], _a[blocks.BLOCKS.TABLE_CELL] = [blocks.BLOCKS.PARAGRAPH], _a[blocks.BLOCKS.TABLE_HEADER_CELL] = [blocks.BLOCKS.PARAGRAPH], _a);\n /**\n * Array of all heading levels\n */\n exports.HEADINGS = [blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6];\n /**\n * Array of all block types that may contain text and inline nodes.\n */\n exports.TEXT_CONTAINERS = __spreadArray([blocks.BLOCKS.PARAGRAPH], exports.HEADINGS, true);\n /**\n * Node types before `tables` release.\n */\n exports.V1_NODE_TYPES = [blocks.BLOCKS.DOCUMENT, blocks.BLOCKS.PARAGRAPH, blocks.BLOCKS.HEADING_1, blocks.BLOCKS.HEADING_2, blocks.BLOCKS.HEADING_3, blocks.BLOCKS.HEADING_4, blocks.BLOCKS.HEADING_5, blocks.BLOCKS.HEADING_6, blocks.BLOCKS.OL_LIST, blocks.BLOCKS.UL_LIST, blocks.BLOCKS.LIST_ITEM, blocks.BLOCKS.HR, blocks.BLOCKS.QUOTE, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET, inlines.INLINES.HYPERLINK, inlines.INLINES.ENTRY_HYPERLINK, inlines.INLINES.ASSET_HYPERLINK, inlines.INLINES.EMBEDDED_ENTRY, 'text'];\n /**\n * Marks before `superscript` & `subscript` release.\n */\n exports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE];\n});\nunwrapExports(schemaConstraints);\nvar schemaConstraints_1 = schemaConstraints.V1_MARKS;\nvar schemaConstraints_2 = schemaConstraints.V1_NODE_TYPES;\nvar schemaConstraints_3 = schemaConstraints.TEXT_CONTAINERS;\nvar schemaConstraints_4 = schemaConstraints.HEADINGS;\nvar schemaConstraints_5 = schemaConstraints.CONTAINERS;\nvar schemaConstraints_6 = schemaConstraints.VOID_BLOCKS;\nvar schemaConstraints_7 = schemaConstraints.TABLE_BLOCKS;\nvar schemaConstraints_8 = schemaConstraints.LIST_ITEM_BLOCKS;\nvar schemaConstraints_9 = schemaConstraints.TOP_LEVEL_BLOCKS;\nvar types = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\nunwrapExports(types);\nvar nodeTypes = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});\nunwrapExports(nodeTypes);\nvar emptyDocument = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n /**\n * A rich text document considered to be empty.\n * Any other document structure than this is not considered empty.\n */\n var EMPTY_DOCUMENT = {\n nodeType: blocks.BLOCKS.DOCUMENT,\n data: {},\n content: [{\n nodeType: blocks.BLOCKS.PARAGRAPH,\n data: {},\n content: [{\n nodeType: 'text',\n value: '',\n marks: [],\n data: {}\n }]\n }]\n };\n exports.default = EMPTY_DOCUMENT;\n});\nunwrapExports(emptyDocument);\nvar helpers = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.isText = exports.isBlock = exports.isInline = void 0;\n\n /**\n * Tiny replacement for Object.values(object).includes(key) to\n * avoid including CoreJS polyfills\n */\n function hasValue(obj, value) {\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (value === obj[key]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Checks if the node is an instance of Inline.\n */\n function isInline(node) {\n return hasValue(inlines.INLINES, node.nodeType);\n }\n exports.isInline = isInline;\n /**\n * Checks if the node is an instance of Block.\n */\n function isBlock(node) {\n return hasValue(blocks.BLOCKS, node.nodeType);\n }\n exports.isBlock = isBlock;\n /**\n * Checks if the node is an instance of Text.\n */\n function isText(node) {\n return node.nodeType === 'text';\n }\n exports.isText = isText;\n});\nunwrapExports(helpers);\nvar helpers_1 = helpers.isText;\nvar helpers_2 = helpers.isBlock;\nvar helpers_3 = helpers.isInline;\nvar dist = createCommonjsModule(function (module, exports) {\n var __createBinding = commonjsGlobal && commonjsGlobal.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n } : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n });\n var __setModuleDefault = commonjsGlobal && commonjsGlobal.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n } : function (o, v) {\n o[\"default\"] = v;\n });\n var __exportStar = commonjsGlobal && commonjsGlobal.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n };\n var __importStar = commonjsGlobal && commonjsGlobal.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n };\n var __importDefault = commonjsGlobal && commonjsGlobal.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n };\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0;\n Object.defineProperty(exports, \"BLOCKS\", {\n enumerable: true,\n get: function () {\n return blocks.BLOCKS;\n }\n });\n Object.defineProperty(exports, \"INLINES\", {\n enumerable: true,\n get: function () {\n return inlines.INLINES;\n }\n });\n Object.defineProperty(exports, \"MARKS\", {\n enumerable: true,\n get: function () {\n return __importDefault(marks).default;\n }\n });\n __exportStar(schemaConstraints, exports);\n __exportStar(types, exports);\n __exportStar(nodeTypes, exports);\n Object.defineProperty(exports, \"EMPTY_DOCUMENT\", {\n enumerable: true,\n get: function () {\n return __importDefault(emptyDocument).default;\n }\n });\n var helpers$1 = __importStar(helpers);\n exports.helpers = helpers$1;\n});\nunwrapExports(dist);\nvar dist_1 = dist.helpers;\nvar dist_2 = dist.EMPTY_DOCUMENT;\nvar dist_3 = dist.MARKS;\nvar dist_4 = dist.INLINES;\nvar dist_5 = dist.BLOCKS;\nfunction appendKeyToValidElement(element, key) {\n if (React.isValidElement(element) && element.key === null) {\n return React.cloneElement(element, {\n key: key\n });\n }\n return element;\n}\nfunction nodeListToReactComponents(nodes, options) {\n return nodes.map(function (node, index) {\n return appendKeyToValidElement(nodeToReactComponent(node, options), index);\n });\n}\nfunction nodeToReactComponent(node, options) {\n var renderNode = options.renderNode,\n renderMark = options.renderMark,\n renderText = options.renderText;\n if (dist_1.isText(node)) {\n return node.marks.reduce(function (value, mark) {\n if (!renderMark[mark.type]) {\n return value;\n }\n return renderMark[mark.type](value);\n }, renderText ? renderText(node.value) : node.value);\n } else {\n var children = nodeListToReactComponents(node.content, options);\n if (!node.nodeType || !renderNode[node.nodeType]) {\n return React__default.createElement(React__default.Fragment, null, children);\n }\n return renderNode[node.nodeType](node, children);\n }\n}\nvar _a, _b;\nvar defaultNodeRenderers = (_a = {}, _a[dist_5.DOCUMENT] = function (node, children) {\n return children;\n}, _a[dist_5.PARAGRAPH] = function (node, children) {\n return React__default.createElement(\"p\", null, children);\n}, _a[dist_5.HEADING_1] = function (node, children) {\n return React__default.createElement(\"h1\", null, children);\n}, _a[dist_5.HEADING_2] = function (node, children) {\n return React__default.createElement(\"h2\", null, children);\n}, _a[dist_5.HEADING_3] = function (node, children) {\n return React__default.createElement(\"h3\", null, children);\n}, _a[dist_5.HEADING_4] = function (node, children) {\n return React__default.createElement(\"h4\", null, children);\n}, _a[dist_5.HEADING_5] = function (node, children) {\n return React__default.createElement(\"h5\", null, children);\n}, _a[dist_5.HEADING_6] = function (node, children) {\n return React__default.createElement(\"h6\", null, children);\n}, _a[dist_5.EMBEDDED_ENTRY] = function (node, children) {\n return React__default.createElement(\"div\", null, children);\n}, _a[dist_5.UL_LIST] = function (node, children) {\n return React__default.createElement(\"ul\", null, children);\n}, _a[dist_5.OL_LIST] = function (node, children) {\n return React__default.createElement(\"ol\", null, children);\n}, _a[dist_5.LIST_ITEM] = function (node, children) {\n return React__default.createElement(\"li\", null, children);\n}, _a[dist_5.QUOTE] = function (node, children) {\n return React__default.createElement(\"blockquote\", null, children);\n}, _a[dist_5.HR] = function () {\n return React__default.createElement(\"hr\", null);\n}, _a[dist_5.TABLE] = function (node, children) {\n return React__default.createElement(\"table\", null, React__default.createElement(\"tbody\", null, children));\n}, _a[dist_5.TABLE_ROW] = function (node, children) {\n return React__default.createElement(\"tr\", null, children);\n}, _a[dist_5.TABLE_HEADER_CELL] = function (node, children) {\n return React__default.createElement(\"th\", null, children);\n}, _a[dist_5.TABLE_CELL] = function (node, children) {\n return React__default.createElement(\"td\", null, children);\n}, _a[dist_4.ASSET_HYPERLINK] = function (node) {\n return defaultInline(dist_4.ASSET_HYPERLINK, node);\n}, _a[dist_4.ENTRY_HYPERLINK] = function (node) {\n return defaultInline(dist_4.ENTRY_HYPERLINK, node);\n}, _a[dist_4.EMBEDDED_ENTRY] = function (node) {\n return defaultInline(dist_4.EMBEDDED_ENTRY, node);\n}, _a[dist_4.HYPERLINK] = function (node, children) {\n return React__default.createElement(\"a\", {\n href: node.data.uri\n }, children);\n}, _a);\nvar defaultMarkRenderers = (_b = {}, _b[dist_3.BOLD] = function (text) {\n return React__default.createElement(\"b\", null, text);\n}, _b[dist_3.ITALIC] = function (text) {\n return React__default.createElement(\"i\", null, text);\n}, _b[dist_3.UNDERLINE] = function (text) {\n return React__default.createElement(\"u\", null, text);\n}, _b[dist_3.CODE] = function (text) {\n return React__default.createElement(\"code\", null, text);\n}, _b[dist_3.SUPERSCRIPT] = function (text) {\n return React__default.createElement(\"sup\", null, text);\n}, _b[dist_3.SUBSCRIPT] = function (text) {\n return React__default.createElement(\"sub\", null, text);\n}, _b);\nfunction defaultInline(type, node) {\n return React__default.createElement(\"span\", {\n key: node.data.target.sys.id\n }, \"type: \", node.nodeType, \" id: \", node.data.target.sys.id);\n}\n/**\r\n * Serialize a Contentful Rich Text `document` to React tree\r\n */\nfunction documentToReactComponents(richTextDocument, options) {\n if (options === void 0) {\n options = {};\n }\n if (!richTextDocument) {\n return null;\n }\n return nodeToReactComponent(richTextDocument, {\n renderNode: __assign(__assign({}, defaultNodeRenderers), options.renderNode),\n renderMark: __assign(__assign({}, defaultMarkRenderers), options.renderMark),\n renderText: options.renderText\n });\n}\nexports.documentToReactComponents = documentToReactComponents;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.BLOCKS = void 0;\n/**\n * Map of all Contentful block types. Blocks contain inline or block nodes.\n */\nvar BLOCKS;\n(function (BLOCKS) {\n BLOCKS[\"DOCUMENT\"] = \"document\";\n BLOCKS[\"PARAGRAPH\"] = \"paragraph\";\n BLOCKS[\"HEADING_1\"] = \"heading-1\";\n BLOCKS[\"HEADING_2\"] = \"heading-2\";\n BLOCKS[\"HEADING_3\"] = \"heading-3\";\n BLOCKS[\"HEADING_4\"] = \"heading-4\";\n BLOCKS[\"HEADING_5\"] = \"heading-5\";\n BLOCKS[\"HEADING_6\"] = \"heading-6\";\n BLOCKS[\"OL_LIST\"] = \"ordered-list\";\n BLOCKS[\"UL_LIST\"] = \"unordered-list\";\n BLOCKS[\"LIST_ITEM\"] = \"list-item\";\n BLOCKS[\"HR\"] = \"hr\";\n BLOCKS[\"QUOTE\"] = \"blockquote\";\n BLOCKS[\"EMBEDDED_ENTRY\"] = \"embedded-entry-block\";\n BLOCKS[\"EMBEDDED_ASSET\"] = \"embedded-asset-block\";\n BLOCKS[\"TABLE\"] = \"table\";\n BLOCKS[\"TABLE_ROW\"] = \"table-row\";\n BLOCKS[\"TABLE_CELL\"] = \"table-cell\";\n BLOCKS[\"TABLE_HEADER_CELL\"] = \"table-header-cell\";\n})(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar blocks_1 = require(\"./blocks\");\n/**\n * A rich text document considered to be empty.\n * Any other document structure than this is not considered empty.\n */\nvar EMPTY_DOCUMENT = {\n nodeType: blocks_1.BLOCKS.DOCUMENT,\n data: {},\n content: [{\n nodeType: blocks_1.BLOCKS.PARAGRAPH,\n data: {},\n content: [{\n nodeType: 'text',\n value: '',\n marks: [],\n data: {}\n }]\n }]\n};\nexports.default = EMPTY_DOCUMENT;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.isText = exports.isBlock = exports.isInline = void 0;\nvar blocks_1 = require(\"./blocks\");\nvar inlines_1 = require(\"./inlines\");\n/**\n * Tiny replacement for Object.values(object).includes(key) to\n * avoid including CoreJS polyfills\n */\nfunction hasValue(obj, value) {\n for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {\n var key = _a[_i];\n if (value === obj[key]) {\n return true;\n }\n }\n return false;\n}\n/**\n * Checks if the node is an instance of Inline.\n */\nfunction isInline(node) {\n return hasValue(inlines_1.INLINES, node.nodeType);\n}\nexports.isInline = isInline;\n/**\n * Checks if the node is an instance of Block.\n */\nfunction isBlock(node) {\n return hasValue(blocks_1.BLOCKS, node.nodeType);\n}\nexports.isBlock = isBlock;\n/**\n * Checks if the node is an instance of Text.\n */\nfunction isText(node) {\n return node.nodeType === 'text';\n}\nexports.isText = isText;","\"use strict\";\n\nvar __createBinding = this && this.__createBinding || (Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = {\n enumerable: true,\n get: function () {\n return m[k];\n }\n };\n }\n Object.defineProperty(o, k2, desc);\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\nvar __setModuleDefault = this && this.__setModuleDefault || (Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = this && this.__exportStar || function (m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = this && this.__importStar || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0;\nvar blocks_1 = require(\"./blocks\");\nObject.defineProperty(exports, \"BLOCKS\", {\n enumerable: true,\n get: function () {\n return blocks_1.BLOCKS;\n }\n});\nvar inlines_1 = require(\"./inlines\");\nObject.defineProperty(exports, \"INLINES\", {\n enumerable: true,\n get: function () {\n return inlines_1.INLINES;\n }\n});\nvar marks_1 = require(\"./marks\");\nObject.defineProperty(exports, \"MARKS\", {\n enumerable: true,\n get: function () {\n return __importDefault(marks_1).default;\n }\n});\n__exportStar(require(\"./schemaConstraints\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./nodeTypes\"), exports);\nvar emptyDocument_1 = require(\"./emptyDocument\");\nObject.defineProperty(exports, \"EMPTY_DOCUMENT\", {\n enumerable: true,\n get: function () {\n return __importDefault(emptyDocument_1).default;\n }\n});\nvar helpers = __importStar(require(\"./helpers\"));\nexports.helpers = helpers;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.INLINES = void 0;\n/**\n * Map of all Contentful inline types. Inline contain inline or text nodes.\n */\nvar INLINES;\n(function (INLINES) {\n INLINES[\"HYPERLINK\"] = \"hyperlink\";\n INLINES[\"ENTRY_HYPERLINK\"] = \"entry-hyperlink\";\n INLINES[\"ASSET_HYPERLINK\"] = \"asset-hyperlink\";\n INLINES[\"EMBEDDED_ENTRY\"] = \"embedded-entry-inline\";\n})(INLINES = exports.INLINES || (exports.INLINES = {}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n/**\n * Map of all Contentful marks.\n */\nvar MARKS;\n(function (MARKS) {\n MARKS[\"BOLD\"] = \"bold\";\n MARKS[\"ITALIC\"] = \"italic\";\n MARKS[\"UNDERLINE\"] = \"underline\";\n MARKS[\"CODE\"] = \"code\";\n MARKS[\"SUPERSCRIPT\"] = \"superscript\";\n MARKS[\"SUBSCRIPT\"] = \"subscript\";\n})(MARKS || (MARKS = {}));\nexports.default = MARKS;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","\"use strict\";\n\nvar __spreadArray = this && this.__spreadArray || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = this && this.__importDefault || function (mod) {\n return mod && mod.__esModule ? mod : {\n \"default\": mod\n };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0;\nvar blocks_1 = require(\"./blocks\");\nvar inlines_1 = require(\"./inlines\");\nvar marks_1 = __importDefault(require(\"./marks\"));\n/**\n * Array of all top level block types.\n * Only these block types can be the direct children of the document.\n */\nexports.TOP_LEVEL_BLOCKS = [blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET, blocks_1.BLOCKS.TABLE];\n/**\n * Array of all allowed block types inside list items\n */\nexports.LIST_ITEM_BLOCKS = [blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET];\nexports.TABLE_BLOCKS = [blocks_1.BLOCKS.TABLE, blocks_1.BLOCKS.TABLE_ROW, blocks_1.BLOCKS.TABLE_CELL, blocks_1.BLOCKS.TABLE_HEADER_CELL];\n/**\n * Array of all void block types\n */\nexports.VOID_BLOCKS = [blocks_1.BLOCKS.HR, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET];\n/**\n * Dictionary of all container block types, and the set block types they accept as children.\n *\n * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`\n */\nexports.CONTAINERS = (_a = {}, _a[blocks_1.BLOCKS.OL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], _a[blocks_1.BLOCKS.UL_LIST] = [blocks_1.BLOCKS.LIST_ITEM], _a[blocks_1.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS, _a[blocks_1.BLOCKS.QUOTE] = [blocks_1.BLOCKS.PARAGRAPH], _a[blocks_1.BLOCKS.TABLE] = [blocks_1.BLOCKS.TABLE_ROW], _a[blocks_1.BLOCKS.TABLE_ROW] = [blocks_1.BLOCKS.TABLE_CELL, blocks_1.BLOCKS.TABLE_HEADER_CELL], _a[blocks_1.BLOCKS.TABLE_CELL] = [blocks_1.BLOCKS.PARAGRAPH], _a[blocks_1.BLOCKS.TABLE_HEADER_CELL] = [blocks_1.BLOCKS.PARAGRAPH], _a);\n/**\n * Array of all heading levels\n */\nexports.HEADINGS = [blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6];\n/**\n * Array of all block types that may contain text and inline nodes.\n */\nexports.TEXT_CONTAINERS = __spreadArray([blocks_1.BLOCKS.PARAGRAPH], exports.HEADINGS, true);\n/**\n * Node types before `tables` release.\n */\nexports.V1_NODE_TYPES = [blocks_1.BLOCKS.DOCUMENT, blocks_1.BLOCKS.PARAGRAPH, blocks_1.BLOCKS.HEADING_1, blocks_1.BLOCKS.HEADING_2, blocks_1.BLOCKS.HEADING_3, blocks_1.BLOCKS.HEADING_4, blocks_1.BLOCKS.HEADING_5, blocks_1.BLOCKS.HEADING_6, blocks_1.BLOCKS.OL_LIST, blocks_1.BLOCKS.UL_LIST, blocks_1.BLOCKS.LIST_ITEM, blocks_1.BLOCKS.HR, blocks_1.BLOCKS.QUOTE, blocks_1.BLOCKS.EMBEDDED_ENTRY, blocks_1.BLOCKS.EMBEDDED_ASSET, inlines_1.INLINES.HYPERLINK, inlines_1.INLINES.ENTRY_HYPERLINK, inlines_1.INLINES.ASSET_HYPERLINK, inlines_1.INLINES.EMBEDDED_ENTRY, 'text'];\n/**\n * Marks before `superscript` & `subscript` release.\n */\nexports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});","// src/helpers/videoProvider.ts\nvar VideoProvider = /* @__PURE__ */(VideoProvider2 => {\n VideoProvider2[\"YOUTUBE\"] = \"youtube\";\n VideoProvider2[\"VIMEO\"] = \"vimeo\";\n return VideoProvider2;\n})(VideoProvider || {});\nvar getVideoProviderFromURL = url => {\n if (url.includes(\"youtube\") || url.includes(\"youtu.be\")) {\n return \"youtube\" /* YOUTUBE */;\n }\n\n if (url.includes(\"vimeo\")) {\n return \"vimeo\" /* VIMEO */;\n }\n\n return null;\n};\n\n// src/helpers/vimeo.ts\nvar getVideoIdFromVimeoUrl = url => {\n const regex = /(?:vimeo.com\\/|video\\/)(\\d+)/;\n const match = url.match(regex);\n return match ? match[1] : \"\";\n};\nvar generateVimeoEmbedUrl = id => \"https://player.vimeo.com/video/\".concat(id);\n\n// src/helpers/youtube.ts\nvar getVideoIdFromYoutubeUrl = url => {\n const regex = /(?:youtube\\.com\\/(?:watch\\?v=|embed\\/|shorts\\/)|youtu\\.be\\/)([\\w-]+)/;\n const match = url.match(regex);\n return match ? match[1] : \"\";\n};\nvar generateYoutubeEmbedUrl = id => \"https://www.youtube.com/embed/\".concat(id);\nvar isYoutubeShortsUrl = url => {\n return /youtube.com\\/shorts\\//.test(url);\n};\n\n// src/index.ts\nvar generateEmbedUrl = url => {\n const provider = getVideoProviderFromURL(url);\n if (provider === \"youtube\" /* YOUTUBE */) {\n const videoId = getVideoIdFromYoutubeUrl(url);\n if (!videoId) {\n throw new Error(\"Url format not supported\");\n }\n return generateYoutubeEmbedUrl(videoId);\n } else if (provider === \"vimeo\" /* VIMEO */) {\n const videoId = getVideoIdFromVimeoUrl(url);\n if (!videoId) {\n throw new Error(\"Url format not supported\");\n }\n return generateVimeoEmbedUrl(videoId);\n }\n throw new Error(\"Video provider not supported\");\n};\nvar generateEmbedUrlFromProvider = (id, provider) => {\n if (!id) {\n throw new Error(\"Video id is required\");\n }\n if (provider === \"youtube\" /* YOUTUBE */) {\n return generateYoutubeEmbedUrl(id);\n } else if (provider === \"vimeo\" /* VIMEO */) {\n return generateVimeoEmbedUrl(id);\n }\n throw new Error(\"Provider not supported\");\n};\nvar isSupported = url => {\n return getVideoProviderFromURL(url) !== null;\n};\nexport { VideoProvider, generateEmbedUrl, generateEmbedUrlFromProvider, getVideoProviderFromURL, isSupported, isYoutubeShortsUrl };","const NAMESPACE = 'cookie-consent-banner';\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/snabbdom/snabbdom/blob/master/LICENSE\n *\n * Modified for Stencil's renderer and slot projection\n */\nlet scopeId;\nlet hostTagName;\nlet isSvgMode = false;\nlet queuePending = false;\nconst createTime = function (fnName) {\n let tagName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n {\n return () => {\n return;\n };\n }\n};\nconst uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nconst HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';\n/**\n * Default style mode id\n */\n/**\n * Reusable empty obj/array\n * Don't add values to these!!\n */\nconst EMPTY_OBJ = {};\nconst isDef = v => v != null;\nconst isComplexType = o => {\n // https://jsperf.com/typeof-fn-object/5\n o = typeof o;\n return o === 'object' || o === 'function';\n};\n/**\n * Helper method for querying a `meta` tag that contains a nonce value\n * out of a DOM's head.\n *\n * @param doc The DOM containing the `head` to query against\n * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag\n * exists or the tag has no content.\n */\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;\n}\n/**\n * Production h() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;\n// export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;\nconst h = function (nodeName, vnodeData) {\n let child = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = c => {\n for (let i = 0; i < c.length; i++) {\n child = c[i];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== 'boolean') {\n if (simple = typeof nodeName !== 'function' && !isComplexType(child)) {\n child = String(child);\n }\n if (simple && lastSimple) {\n // If the previous child was simple (string), we merge both\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n // Append a new vNode, if it's text, we create a text vNode\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n walk(children);\n if (vnodeData) {\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== 'object' ? classData : Object.keys(classData).filter(k => classData[k]).join(' ');\n }\n }\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n return vnode;\n};\nconst newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n {\n vnode.$attrs$ = null;\n }\n return vnode;\n};\nconst Host = {};\nconst isHost = node => node && node.$tag$ === Host;\n/**\n * Parse a new property value for a given property type.\n *\n * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,\n * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:\n * 1. `any`, the type given to `propValue` in the function signature\n * 2. the type stored from `propType`.\n *\n * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.\n *\n * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to\n * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is\n * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.\n * ```tsx\n * \n * ```\n *\n * HTML prop values on the other hand, will always a string\n *\n * @param propValue the new value to coerce to some type\n * @param propType the type of the prop, expressed as a binary number\n * @returns the parsed/coerced value\n */\nconst parsePropertyValue = (propValue, propType) => {\n // ensure this value is of the correct prop type\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* MEMBER_FLAGS.Boolean */) {\n // per the HTML spec, any string value means it is a boolean true value\n // but we'll cheat here and say that the string \"false\" is the boolean false\n return propValue === 'false' ? false : propValue === '' || !!propValue;\n }\n if (propType & 1 /* MEMBER_FLAGS.String */) {\n // could have been passed as a number or boolean\n // but we still want it as a string\n return String(propValue);\n }\n // redundant return here for better minification\n return propValue;\n }\n // not sure exactly what type we want\n // so no need to change to a different type\n return propValue;\n};\nconst getElement = ref => getHostRef(ref).$hostElement$;\nconst createEvent = (ref, name, flags) => {\n const elm = getElement(ref);\n return {\n emit: detail => {\n return emitEvent(elm, name, {\n bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),\n composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),\n cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),\n detail\n });\n }\n };\n};\n/**\n * Helper function to create & dispatch a custom Event on a provided target\n * @param elm the target of the Event\n * @param name the name to give the custom Event\n * @param opts options for configuring a custom Event\n * @returns the custom Event\n */\nconst emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nconst rootAppliedStyles = /*@__PURE__*/new WeakMap();\nconst registerStyle = (scopeId, cssText, allowCS) => {\n let style = styles.get(scopeId);\n if (supportsConstructableStylesheets && allowCS) {\n style = style || new CSSStyleSheet();\n if (typeof style === 'string') {\n style = cssText;\n } else {\n style.replaceSync(cssText);\n }\n } else {\n style = cssText;\n }\n styles.set(scopeId, style);\n};\nconst addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {\n var _a;\n let scopeId = getScopeId(cmpMeta);\n const style = styles.get(scopeId);\n // if an element is NOT connected then getRootNode() will return the wrong root node\n // so the fallback is to always use the document for the root node in those cases\n styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;\n if (style) {\n if (typeof style === 'string') {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = new Set());\n }\n if (!appliedStyles.has(scopeId)) {\n {\n {\n styleElm = doc.createElement('style');\n styleElm.innerHTML = style;\n }\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n styleElm.setAttribute('nonce', nonce);\n }\n styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId);\n }\n }\n } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];\n }\n }\n return scopeId;\n};\nconst attachStyles = hostRef => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);\n const scopeId = addStyle(elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(), cmpMeta);\n if (flags & 10 /* CMP_FLAGS.needsScopedEncapsulation */) {\n // only required when we're NOT using native shadow dom (slot)\n // or this browser doesn't support native shadow dom\n // and this host element was NOT created with SSR\n // let's pick out the inner content for slot projection\n // create a node to represent where the original\n // content was first placed, which is useful later on\n // DOM WRITE!!\n elm['s-sc'] = scopeId;\n elm.classList.add(scopeId + '-h');\n }\n endAttachStyles();\n};\nconst getScopeId = (cmp, mode) => 'sc-' + cmp.$tagName$;\n/**\n * Production setAccessor() function based on Preact by\n * Jason Miller (@developit)\n * Licensed under the MIT License\n * https://github.com/developit/preact/blob/master/LICENSE\n *\n * Modified for Stencil's compiler and vdom\n */\nconst setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {\n if (oldValue !== newValue) {\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === 'class') {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n const newClasses = parseClassList(newValue);\n classList.remove(...oldClasses.filter(c => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter(c => c && !oldClasses.includes(c)));\n } else if (!isProp && memberName[0] === 'o' && memberName[1] === 'n') {\n // Event Handlers\n // so if the member name starts with \"on\" and the 3rd characters is\n // a capital letter, and it's not already a member on the element,\n // then we're assuming it's an event listener\n if (memberName[2] === '-') {\n // on- prefixed events\n // allows to be explicit about the dom event to listen without any magic\n // under the hood:\n // // listens for \"click\"\n // // listens for \"Click\"\n // // listens for \"ionChange\"\n // // listens for \"EVENTS\"\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n // standard event\n // the JSX attribute could have been \"onMouseOver\" and the\n // member name \"onmouseover\" is on the window's prototype\n // so let's add the listener \"mouseover\", which is all lowercased\n memberName = ln.slice(2);\n } else {\n // custom event\n // the JSX attribute could have been \"onMyCustomEvent\"\n // so let's trim off the \"on\" prefix and lowercase the first character\n // and add the listener \"myCustomEvent\"\n // except for the first character, we keep the event name case\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, false);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, false);\n }\n } else {\n // Set property if it exists and it's not a SVG\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes('-')) {\n const n = newValue == null ? '' : newValue;\n // Workaround for Safari, moving the caret when re-assigning the same valued\n if (memberName === 'list') {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n elm[memberName] = n;\n }\n } else {\n elm[memberName] = newValue;\n }\n } catch (e) {}\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === '') {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {\n newValue = newValue === true ? '' : newValue;\n {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n }\n};\nconst parseClassListRegex = /\\s/;\nconst parseClassList = value => !value ? [] : value.split(parseClassListRegex);\nconst updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {\n // if the element passed in is a shadow root, which is a document fragment\n // then we want to be adding attrs/props to the shadow root's \"host\" element\n // if it's not a shadow root, then we add attrs/props to the same element\n const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || EMPTY_OBJ;\n const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;\n {\n // remove attributes no longer present on the vnode by setting them to undefined\n for (memberName in oldVnodeAttrs) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], undefined, isSvgMode, newVnode.$flags$);\n }\n }\n }\n // add new & update changed attributes\n for (memberName in newVnodeAttrs) {\n setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);\n }\n};\n/**\n * Create a DOM Node corresponding to one of the children of a given VNode.\n *\n * @param oldParentVNode the parent VNode from the previous render\n * @param newParentVNode the parent VNode from the current render\n * @param childIndex the index of the VNode, in the _new_ parent node's\n * children, for which we will create a new DOM node\n * @param parentElm the parent DOM node which our new node will be a child of\n * @returns the newly created node\n */\nconst createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {\n // tslint:disable-next-line: prefer-const\n const newVNode = newParentVNode.$children$[childIndex];\n let i = 0;\n let elm;\n let childNode;\n if (newVNode.$text$ !== null) {\n // create text node\n elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);\n } else {\n // create element\n elm = newVNode.$elm$ = doc.createElement(newVNode.$tag$);\n // add css classes, attrs, props, listeners, etc.\n {\n updateElement(null, newVNode, isSvgMode);\n }\n if (isDef(scopeId) && elm['s-si'] !== scopeId) {\n // if there is a scopeId and this is the initial render\n // then let's add the scopeId as a css class\n elm.classList.add(elm['s-si'] = scopeId);\n }\n if (newVNode.$children$) {\n for (i = 0; i < newVNode.$children$.length; ++i) {\n // create the node\n childNode = createElm(oldParentVNode, newVNode, i);\n // return node could have been null\n if (childNode) {\n // append our new node\n elm.appendChild(childNode);\n }\n }\n }\n }\n return elm;\n};\nconst addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm;\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n containerElm.insertBefore(childNode, before);\n }\n }\n }\n};\nconst removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnode = vnodes[startIdx]) {\n elm = vnode.$elm$;\n // remove the vnode's element from the dom\n elm.remove();\n }\n }\n};\n/**\n * Reconcile the children of a new VNode with the children of an old VNode by\n * traversing the two collections of children, identifying nodes that are\n * conserved or changed, calling out to `patch` to make any necessary\n * updates to the DOM, and rearranging DOM nodes as needed.\n *\n * The algorithm for reconciling children works by analyzing two 'windows' onto\n * the two arrays of children (`oldCh` and `newCh`). We keep track of the\n * 'windows' by storing start and end indices and references to the\n * corresponding array entries. Initially the two 'windows' are basically equal\n * to the entire array, but we progressively narrow the windows until there are\n * no children left to update by doing the following:\n *\n * 1. Skip any `null` entries at the beginning or end of the two arrays, so\n * that if we have an initial array like the following we'll end up dealing\n * only with a window bounded by the highlighted elements:\n *\n * [null, null, VNode1 , ... , VNode2, null, null]\n * ^^^^^^ ^^^^^^\n *\n * 2. Check to see if the elements at the head and tail positions are equal\n * across the windows. This will basically detect elements which haven't\n * been added, removed, or changed position, i.e. if you had the following\n * VNode elements (represented as HTML):\n *\n * oldVNode: `

HEY

`\n * newVNode: `

THERE

`\n *\n * Then when comparing the children of the `
` tag we check the equality\n * of the VNodes corresponding to the `

` tags and, since they are the\n * same tag in the same position, we'd be able to avoid completely\n * re-rendering the subtree under them with a new DOM element and would just\n * call out to `patch` to handle reconciling their children and so on.\n *\n * 3. Check, for both windows, to see if the element at the beginning of the\n * window corresponds to the element at the end of the other window. This is\n * a heuristic which will let us identify _some_ situations in which\n * elements have changed position, for instance it _should_ detect that the\n * children nodes themselves have not changed but merely moved in the\n * following example:\n *\n * oldVNode: `

`\n * newVNode: `
`\n *\n * If we find cases like this then we also need to move the concrete DOM\n * elements corresponding to the moved children to write the re-order to the\n * DOM.\n *\n * 4. Finally, if VNodes have the `key` attribute set on them we check for any\n * nodes in the old children which have the same key as the first element in\n * our window on the new children. If we find such a node we handle calling\n * out to `patch`, moving relevant DOM nodes, and so on, in accordance with\n * what we find.\n *\n * Finally, once we've narrowed our 'windows' to the point that either of them\n * collapse (i.e. they have length 0) we then handle any remaining VNode\n * insertion or deletion that needs to happen to get a DOM state that correctly\n * reflects the new child VNodes. If, for instance, after our window on the old\n * children has collapsed we still have more nodes on the new children that\n * we haven't dealt with yet then we need to add them, or if the new children\n * collapse but we still have unhandled _old_ children then we need to make\n * sure the corresponding DOM nodes are removed.\n *\n * @param parentElm the node into which the parent VNode is rendered\n * @param oldCh the old children of the parent node\n * @param newVNode the new VNode which will replace the parent\n * @param newCh the new children of the parent node\n */\nconst updateChildren = (parentElm, oldCh, newVNode, newCh) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n // VNode might have been moved left\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode)) {\n // if the start nodes are the same then we should patch the new VNode\n // onto the old one, and increment our `newStartIdx` and `oldStartIdx`\n // indices to reflect that. We don't need to move any DOM Nodes around\n // since things are matched up in order.\n patch(oldStartVnode, newStartVnode);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode)) {\n // likewise, if the end nodes are the same we patch new onto old and\n // decrement our end indices, and also likewise in this case we don't\n // need to move any DOM Nodes.\n patch(oldEndVnode, newEndVnode);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode)) {\n patch(oldStartVnode, newEndVnode);\n // We need to move the element for `oldStartVnode` into a position which\n // will be appropriate for `newEndVnode`. For this we can use\n // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a\n // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for\n // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:\n //\n // \n // \n // \n // \n // \n // \n // ```\n // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback\n // will be called with `newValue = \"some-value\"` and will set the shadowed property (this.someAttribute = \"another-value\")\n // to the value that was set inline i.e. \"some-value\" from above example. When\n // the connectedCallback attempts to unshadow it will use \"some-value\" as the initial value rather than \"another-value\"\n //\n // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed\n // by connectedCallback as this attributeChangedCallback will not fire.\n //\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n //\n // TODO(STENCIL-16) we should think about whether or not we actually want to be reflecting the attributes to\n // properties here given that this goes against best practices outlined here\n // https://developers.google.com/web/fundamentals/web-components/best-practices#avoid-reentrancy\n if (this.hasOwnProperty(propName)) {\n newValue = this[propName];\n delete this[propName];\n } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === 'number' && this[propName] == newValue) {\n // if the propName exists on the prototype of `Cstr`, this update may be a result of Stencil using native\n // APIs to reflect props as attributes. Calls to `setAttribute(someElement, propName)` will result in\n // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.\n return;\n }\n this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;\n });\n };\n // create an array of attributes to observe\n // and also create a map of html attribute name to js property name\n Cstr.observedAttributes = members.filter(_ref3 => {\n let [_, m] = _ref3;\n return m[0] & 15;\n } /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes\n .map(_ref4 => {\n let [propName, m] = _ref4;\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n });\n }\n }\n return Cstr;\n};\nconst initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {\n // initializeComponent\n if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {\n {\n // we haven't initialized this element yet\n hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;\n // lazy loaded components\n // request the component's implementation to be\n // wired up with the host element\n Cstr = loadModule(cmpMeta);\n if (Cstr.then) {\n // Await creates a micro-task avoid if possible\n const endLoad = uniqueTime();\n Cstr = await Cstr;\n endLoad();\n }\n if (!Cstr.isProxied) {\n proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);\n // ok, time to construct the instance\n // but let's keep track of when we start and stop\n // so that the getters/setters don't incorrectly step on data\n {\n hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;\n }\n // construct the lazy-loaded component implementation\n // passing the hostRef is very important during\n // construction in order to directly wire together the\n // host element and the lazy-loaded instance\n try {\n new Cstr(hostRef);\n } catch (e) {\n consoleError(e);\n }\n {\n hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;\n }\n\n endNewInstance();\n }\n if (Cstr.style) {\n // this component has styles but we haven't registered them yet\n let style = Cstr.style;\n const scopeId = getScopeId(cmpMeta);\n if (!styles.has(scopeId)) {\n const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);\n registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n // we've successfully created a lazy instance\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent['s-rc']) {\n // this is the initial load and this component it has an ancestor component\n // but the ancestor component has NOT fired its will update lifecycle yet\n // so let's just cool our jets and wait for the ancestor to continue first\n // this will get fired off when the ancestor component\n // finally gets around to rendering its lazy self\n // fire off the initial update\n ancestorComponent['s-rc'].push(schedule);\n } else {\n schedule();\n }\n};\nconst connectedCallback = elm => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {\n // first time this component has connected\n hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;\n {\n // find the first ancestor component (if there is one) and register\n // this component as one of the actively loading child components for its ancestor\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n // climb up the ancestors looking for the first\n // component that hasn't finished its lifecycle update yet\n if (ancestorComponent['s-p']) {\n // we found this components first ancestor component\n // keep a reference to this component's ancestor component\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n // Lazy properties\n // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(_ref5 => {\n let [memberName, [memberFlags]] = _ref5;\n if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n } else {\n // not the first time this has connected\n // reattach any event listeners to the host\n // since they would have been removed when disconnected\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n }\n endConnected();\n }\n};\nconst disconnectedCallback = elm => {\n if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n {\n if (hostRef.$rmListeners$) {\n hostRef.$rmListeners$.map(rmListener => rmListener());\n hostRef.$rmListeners$ = undefined;\n }\n }\n }\n};\nconst bootstrapLazy = function (lazyBundles) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _a;\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements = win.customElements;\n const head = doc.head;\n const metaCharset = /*@__PURE__*/head.querySelector('meta[charset]');\n const visibilityStyle = /*@__PURE__*/doc.createElement('style');\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;\n lazyBundles.map(lazyBundle => {\n lazyBundle[1].map(compactMeta => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3]\n };\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n {\n cmpMeta.$listeners$ = compactMeta[3];\n }\n const tagName = cmpMeta.$tagName$;\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n // @ts-ignore\n super(self);\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) {\n // this component is using shadow dom\n // and this browser supports shadow dom\n // add the read-only property \"shadowRoot\" to the host element\n // adding the shadow root build conditionals to minimize runtime\n {\n {\n self.attachShadow({\n mode: 'open'\n });\n }\n }\n }\n }\n connectedCallback() {\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n // connectedCallback will be processed once all components have been registered\n deferredConnectedCallbacks.push(this);\n } else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n }\n componentOnReady() {\n return getHostRef(this).$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements.get(tagName)) {\n cmpTags.push(tagName);\n customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));\n }\n });\n });\n\n {\n visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;\n visibilityStyle.setAttribute('data-styles', '');\n // Apply CSP nonce to the style tag if it exists\n const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);\n if (nonce != null) {\n visibilityStyle.setAttribute('nonce', nonce);\n }\n head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n // Process deferred connectedCallbacks now all components have been registered\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map(host => host.connectedCallback());\n } else {\n {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30));\n }\n }\n // Fallback appLoad event\n endBootstrap();\n};\nconst addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {\n if (listeners) {\n listeners.map(_ref6 => {\n let [flags, name, method] = _ref6;\n const target = getHostListenerTarget(elm, flags);\n const handler = hostListenerProxy(hostRef, method);\n const opts = hostListenerOpts(flags);\n plt.ael(target, name, handler, opts);\n (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));\n });\n }\n};\nconst hostListenerProxy = (hostRef, methodName) => ev => {\n try {\n {\n if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {\n // instance is ready, let's call it's member method for this event\n hostRef.$lazyInstance$[methodName](ev);\n } else {\n (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);\n }\n }\n } catch (e) {\n consoleError(e);\n }\n};\nconst getHostListenerTarget = (elm, flags) => {\n if (flags & 4 /* LISTENER_FLAGS.TargetDocument */) return doc;\n return elm;\n};\n// prettier-ignore\nconst hostListenerOpts = flags => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;\n/**\n * Assigns the given value to the nonce property on the runtime platform object.\n * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.\n * @param nonce The value to be assigned to the platform nonce property.\n * @returns void\n */\nconst setNonce = nonce => plt.$nonce$ = nonce;\nconst hostRefs = /*@__PURE__*/new WeakMap();\nconst getHostRef = ref => hostRefs.get(ref);\nconst registerInstance = (lazyInstance, hostRef) => hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);\nconst registerHost = (elm, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: elm,\n $cmpMeta$: cmpMeta,\n $instanceValues$: new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise(r => hostRef.$onReadyResolve$ = r);\n elm['s-p'] = [];\n elm['s-rc'] = [];\n }\n addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);\n return hostRefs.set(elm, hostRef);\n};\nconst isMemberInElement = (elm, memberName) => memberName in elm;\nconst consoleError = (e, el) => (0, console.error)(e, el);\nconst cmpModules = /*@__PURE__*/new Map();\nconst loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n // loadModuleImport\n const exportName = cmpMeta.$tagName$.replace(/-/g, '_');\n const bundleId = cmpMeta.$lazyBundleId$;\n const module = cmpModules.get(bundleId);\n if (module) {\n return module[exportName];\n }\n if (!hmrVersionId || !BUILD.hotModuleReplacement) {\n const processMod = importedModule => {\n cmpModules.set(bundleId, importedModule);\n return importedModule[exportName];\n };\n switch (bundleId) {\n case 'cookie-consent-banner':\n return import( /* webpackMode: \"lazy\" */\n './cookie-consent-banner.entry.js').then(processMod, consoleError);\n }\n }\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n \"./\".concat(bundleId, \".entry.js\")).then(importedModule => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n }, consoleError);\n};\nconst styles = /*@__PURE__*/new Map();\nconst win = typeof window !== 'undefined' ? window : {};\nconst doc = win.document || {\n head: {}\n};\nconst plt = {\n $flags$: 0,\n $resourcesUrl$: '',\n jmp: h => h(),\n raf: h => requestAnimationFrame(h),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nconst promiseResolve = v => Promise.resolve(v);\nconst supportsConstructableStylesheets = /*@__PURE__*/(() => {\n try {\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === 'function';\n } catch (e) {}\n return false;\n})();\nconst queueDomReads = [];\nconst queueDomWrites = [];\nconst queueTask = (queue, write) => cb => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nconst consume = queue => {\n for (let i = 0; i < queue.length; i++) {\n try {\n queue[i](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nconst flush = () => {\n // always force a bunch of medium callbacks to run, but still have\n // a throttle on how many can run in a certain time\n // DOM READS!!!\n consume(queueDomReads);\n // DOM WRITES!!!\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n // still more to do yet, but we've run out of time\n // let's let this thing cool off and try again in the next tick\n plt.raf(flush);\n }\n }\n};\nconst nextTick = /*@__PURE__*/cb => promiseResolve().then(cb);\nconst writeTask = /*@__PURE__*/queueTask(queueDomWrites, true);\nexport { bootstrapLazy as b, createEvent as c, h, promiseResolve as p, registerInstance as r, setNonce as s };","'use strict';\n\nconst preserveCamelCase = string => {\n let isLastCharLower = false;\n let isLastCharUpper = false;\n let isLastLastCharUpper = false;\n for (let i = 0; i < string.length; i++) {\n const character = string[i];\n if (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n string = string.slice(0, i) + '-' + string.slice(i);\n isLastCharLower = false;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = true;\n i++;\n } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n string = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = false;\n isLastCharLower = true;\n } else {\n isLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n isLastLastCharUpper = isLastCharUpper;\n isLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n }\n }\n return string;\n};\nconst camelCase = (input, options) => {\n if (!(typeof input === 'string' || Array.isArray(input))) {\n throw new TypeError('Expected the input to be `string | string[]`');\n }\n options = Object.assign({\n pascalCase: false\n }, options);\n const postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n if (Array.isArray(input)) {\n input = input.map(x => x.trim()).filter(x => x.length).join('-');\n } else {\n input = input.trim();\n }\n if (input.length === 0) {\n return '';\n }\n if (input.length === 1) {\n return options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n }\n const hasUpperCase = input !== input.toLowerCase();\n if (hasUpperCase) {\n input = preserveCamelCase(input);\n }\n input = input.replace(/^[_.\\- ]+/, '').toLowerCase().replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase()).replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n return postProcess(input);\n};\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\nimport copy from 'fast-copy';\nvar UNRESOLVED_LINK = {}; // unique object to avoid polyfill bloat using Symbol()\n\n/**\n * isLink Function\n * Checks if the object has sys.type \"Link\"\n * @param object\n */\nvar isLink = function isLink(object) {\n return object && object.sys && object.sys.type === 'Link';\n};\n\n/**\n * isResourceLink Function\n * Checks if the object has sys.type \"ResourceLink\"\n * @param object\n */\nvar isResourceLink = function isResourceLink(object) {\n return object && object.sys && object.sys.type === 'ResourceLink';\n};\n\n/**\n * Creates a key with spaceId and a key without for entityMap\n *\n * @param {*} sys\n * @param {String} sys.type\n * @param {String} sys.id\n * @param {*} sys.space\n * @param {*} sys.space.sys\n * @param {String} sys.space.id\n * @return {string[]}\n */\nvar makeEntityMapKeys = function makeEntityMapKeys(sys) {\n return sys.space ? [sys.type + '!' + sys.id, sys.space.sys.id + '!' + sys.type + '!' + sys.id] : [sys.type + '!' + sys.id];\n};\n\n/**\n * Looks up in entityMap\n *\n * @param entityMap\n * @param {*} linkData\n * @param {String} linkData.type\n * @param {String} linkData.linkType\n * @param {String} linkData.id\n * @param {String} linkData.urn\n * @return {String}\n */\nvar lookupInEntityMap = function lookupInEntityMap(entityMap, linkData) {\n var entryId = linkData.entryId,\n linkType = linkData.linkType,\n spaceId = linkData.spaceId;\n if (spaceId) {\n return entityMap.get(spaceId + '!' + linkType + '!' + entryId);\n }\n return entityMap.get(linkType + '!' + entryId);\n};\n\n/**\n * getResolvedLink Function\n *\n * @param entityMap\n * @param link\n * @return {undefined}\n */\nvar getResolvedLink = function getResolvedLink(entityMap, link) {\n var _link$sys = link.sys,\n type = _link$sys.type,\n linkType = _link$sys.linkType;\n if (type === 'ResourceLink') {\n var urn = link.sys.urn;\n var regExp = /.*:spaces\\/([A-Za-z0-9]*)\\/entries\\/([A-Za-z0-9]*)/;\n if (!regExp.test(urn)) {\n return UNRESOLVED_LINK;\n }\n var _urn$match = urn.match(regExp),\n _urn$match2 = _slicedToArray(_urn$match, 3),\n _ = _urn$match2[0],\n spaceId = _urn$match2[1],\n _entryId = _urn$match2[2];\n var extractedLinkType = linkType.split(':')[1];\n return lookupInEntityMap(entityMap, {\n linkType: extractedLinkType,\n entryId: _entryId,\n spaceId: spaceId\n }) || UNRESOLVED_LINK;\n }\n var entryId = link.sys.id;\n return lookupInEntityMap(entityMap, {\n linkType: linkType,\n entryId: entryId\n }) || UNRESOLVED_LINK;\n};\n\n/**\n * cleanUpLinks Function\n * - Removes unresolvable links from Arrays and Objects\n *\n * @param {Object[]|Object} input\n */\nvar cleanUpLinks = function cleanUpLinks(input) {\n if (Array.isArray(input)) {\n return input.filter(function (val) {\n return val !== UNRESOLVED_LINK;\n });\n }\n for (var key in input) {\n if (input[key] === UNRESOLVED_LINK) {\n delete input[key];\n }\n }\n return input;\n};\n\n/**\n * walkMutate Function\n * @param input\n * @param predicate\n * @param mutator\n * @param removeUnresolved\n * @return {*}\n */\nvar walkMutate = function walkMutate(input, predicate, mutator, removeUnresolved) {\n if (predicate(input)) {\n return mutator(input);\n }\n if (input && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object') {\n for (var key in input) {\n // eslint-disable-next-line no-prototype-builtins\n if (input.hasOwnProperty(key)) {\n input[key] = walkMutate(input[key], predicate, mutator, removeUnresolved);\n }\n }\n if (removeUnresolved) {\n input = cleanUpLinks(input);\n }\n }\n return input;\n};\nvar normalizeLink = function normalizeLink(entityMap, link, removeUnresolved) {\n var resolvedLink = getResolvedLink(entityMap, link);\n if (resolvedLink === UNRESOLVED_LINK) {\n return removeUnresolved ? resolvedLink : link;\n }\n return resolvedLink;\n};\nvar makeEntryObject = function makeEntryObject(item, itemEntryPoints) {\n if (!Array.isArray(itemEntryPoints)) {\n return item;\n }\n var entryPoints = Object.keys(item).filter(function (ownKey) {\n return itemEntryPoints.indexOf(ownKey) !== -1;\n });\n return entryPoints.reduce(function (entryObj, entryPoint) {\n entryObj[entryPoint] = item[entryPoint];\n return entryObj;\n }, {});\n};\n\n/**\n * resolveResponse Function\n * Resolves contentful response to normalized form.\n * @param {Object} response Contentful response\n * @param {{removeUnresolved: Boolean, itemEntryPoints: Array}|{}} options\n * @param {Boolean} options.removeUnresolved - Remove unresolved links default:false\n * @param {Array} options.itemEntryPoints - Resolve links only in those item properties\n * @return {Object}\n */\nvar resolveResponse = function resolveResponse(response, options) {\n options = options || {};\n if (!response.items) {\n return [];\n }\n var responseClone = copy(response);\n var allIncludes = Object.keys(responseClone.includes || {}).reduce(function (all, type) {\n return [].concat(_toConsumableArray(all), _toConsumableArray(response.includes[type]));\n }, []);\n var allEntries = [].concat(_toConsumableArray(responseClone.items), _toConsumableArray(allIncludes)).filter(function (entity) {\n return Boolean(entity.sys);\n });\n var entityMap = new Map(allEntries.reduce(function (acc, entity) {\n var entries = makeEntityMapKeys(entity.sys).map(function (key) {\n return [key, entity];\n });\n acc.push.apply(acc, _toConsumableArray(entries));\n return acc;\n }, []));\n allEntries.forEach(function (item) {\n var entryObject = makeEntryObject(item, options.itemEntryPoints);\n Object.assign(item, walkMutate(entryObject, function (x) {\n return isLink(x) || isResourceLink(x);\n }, function (link) {\n return normalizeLink(entityMap, link, options.removeUnresolved);\n }, options.removeUnresolved));\n });\n return responseClone.items;\n};\nexport default resolveResponse;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global[\"fast-copy\"] = factory());\n})(this, function () {\n 'use strict';\n\n var toStringFunction = Function.prototype.toString;\n var create = Object.create,\n defineProperty = Object.defineProperty,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor,\n getOwnPropertyNames = Object.getOwnPropertyNames,\n getOwnPropertySymbols = Object.getOwnPropertySymbols,\n getPrototypeOf$1 = Object.getPrototypeOf;\n var _a = Object.prototype,\n hasOwnProperty = _a.hasOwnProperty,\n propertyIsEnumerable = _a.propertyIsEnumerable;\n var SYMBOL_PROPERTIES = typeof getOwnPropertySymbols === 'function';\n var WEAK_MAP = typeof WeakMap === 'function';\n /**\n * @function createCache\n *\n * @description\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\n var createCache = function () {\n if (WEAK_MAP) {\n return function () {\n return new WeakMap();\n };\n }\n var Cache = /** @class */function () {\n function Cache() {\n this._keys = [];\n this._values = [];\n }\n Cache.prototype.has = function (key) {\n return !!~this._keys.indexOf(key);\n };\n Cache.prototype.get = function (key) {\n return this._values[this._keys.indexOf(key)];\n };\n Cache.prototype.set = function (key, value) {\n this._keys.push(key);\n this._values.push(value);\n };\n return Cache;\n }();\n return function () {\n return new Cache();\n };\n }();\n /**\n * @function getCleanClone\n *\n * @description\n * get an empty version of the object with the same prototype it has\n *\n * @param object the object to build a clean clone from\n * @param realm the realm the object resides in\n * @returns the empty cloned object\n */\n var getCleanClone = function (object, realm) {\n var prototype = object.__proto__ || getPrototypeOf$1(object);\n if (!prototype) {\n return create(null);\n }\n var Constructor = prototype.constructor;\n if (Constructor === realm.Object) {\n return prototype === realm.Object.prototype ? {} : create(prototype);\n }\n if (~toStringFunction.call(Constructor).indexOf('[native code]')) {\n try {\n return new Constructor();\n } catch (_a) {}\n }\n return create(prototype);\n };\n /**\n * @function getObjectCloneLoose\n *\n * @description\n * get a copy of the object based on loose rules, meaning all enumerable keys\n * and symbols are copied, but property descriptors are not considered\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneLoose = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n clone[key] = handleCopy(object[key], cache);\n }\n }\n if (SYMBOL_PROPERTIES) {\n var symbols = getOwnPropertySymbols(object);\n for (var index = 0, length_1 = symbols.length, symbol = void 0; index < length_1; ++index) {\n symbol = symbols[index];\n if (propertyIsEnumerable.call(object, symbol)) {\n clone[symbol] = handleCopy(object[symbol], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getObjectCloneStrict\n *\n * @description\n * get a copy of the object based on strict rules, meaning all keys and symbols\n * are copied based on the original property descriptors\n *\n * @param object the object to clone\n * @param realm the realm the object resides in\n * @param handleCopy the function that handles copying the object\n * @returns the copied object\n */\n var getObjectCloneStrict = function (object, realm, handleCopy, cache) {\n var clone = getCleanClone(object, realm);\n // set in the cache immediately to be able to reuse the object recursively\n cache.set(object, clone);\n var properties = SYMBOL_PROPERTIES ? getOwnPropertyNames(object).concat(getOwnPropertySymbols(object)) : getOwnPropertyNames(object);\n for (var index = 0, length_2 = properties.length, property = void 0, descriptor = void 0; index < length_2; ++index) {\n property = properties[index];\n if (property !== 'callee' && property !== 'caller') {\n descriptor = getOwnPropertyDescriptor(object, property);\n if (descriptor) {\n // Only clone the value if actually a value, not a getter / setter.\n if (!descriptor.get && !descriptor.set) {\n descriptor.value = handleCopy(object[property], cache);\n }\n try {\n defineProperty(clone, property, descriptor);\n } catch (error) {\n // Tee above can fail on node in edge cases, so fall back to the loose assignment.\n clone[property] = descriptor.value;\n }\n } else {\n // In extra edge cases where the property descriptor cannot be retrived, fall back to\n // the loose assignment.\n clone[property] = handleCopy(object[property], cache);\n }\n }\n }\n return clone;\n };\n /**\n * @function getRegExpFlags\n *\n * @description\n * get the flags to apply to the copied regexp\n *\n * @param regExp the regexp to get the flags of\n * @returns the flags for the regexp\n */\n var getRegExpFlags = function (regExp) {\n var flags = '';\n if (regExp.global) {\n flags += 'g';\n }\n if (regExp.ignoreCase) {\n flags += 'i';\n }\n if (regExp.multiline) {\n flags += 'm';\n }\n if (regExp.unicode) {\n flags += 'u';\n }\n if (regExp.sticky) {\n flags += 'y';\n }\n return flags;\n };\n\n // utils\n var isArray = Array.isArray;\n var getPrototypeOf = Object.getPrototypeOf;\n var GLOBAL_THIS = function () {\n if (typeof globalThis !== 'undefined') {\n return globalThis;\n }\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n if (console && console.error) {\n console.error('Unable to locate global object, returning \"this\".');\n }\n return this;\n }();\n /**\n * @function copy\n *\n * @description\n * copy an value deeply as much as possible\n *\n * If `strict` is applied, then all properties (including non-enumerable ones)\n * are copied with their original property descriptors on both objects and arrays.\n *\n * The value is compared to the global constructors in the `realm` provided,\n * and the native constructor is always used to ensure that extensions of native\n * objects (allows in ES2015+) are maintained.\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.isStrict] should the copy be strict\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n function copy(value, options) {\n // manually coalesced instead of default parameters for performance\n var isStrict = !!(options && options.isStrict);\n var realm = options && options.realm || GLOBAL_THIS;\n var getObjectClone = isStrict ? getObjectCloneStrict : getObjectCloneLoose;\n /**\n * @function handleCopy\n *\n * @description\n * copy the value recursively based on its type\n *\n * @param value the value to copy\n * @returns the copied value\n */\n var handleCopy = function (value, cache) {\n if (!value || typeof value !== 'object') {\n return value;\n }\n if (cache.has(value)) {\n return cache.get(value);\n }\n var prototype = value.__proto__ || getPrototypeOf(value);\n var Constructor = prototype && prototype.constructor;\n // plain objects\n if (!Constructor || Constructor === realm.Object) {\n return getObjectClone(value, realm, handleCopy, cache);\n }\n var clone;\n // arrays\n if (isArray(value)) {\n // if strict, include non-standard properties\n if (isStrict) {\n return getObjectCloneStrict(value, realm, handleCopy, cache);\n }\n clone = new Constructor();\n cache.set(value, clone);\n for (var index = 0, length_1 = value.length; index < length_1; ++index) {\n clone[index] = handleCopy(value[index], cache);\n }\n return clone;\n }\n // dates\n if (value instanceof realm.Date) {\n return new Constructor(value.getTime());\n }\n // regexps\n if (value instanceof realm.RegExp) {\n clone = new Constructor(value.source, value.flags || getRegExpFlags(value));\n clone.lastIndex = value.lastIndex;\n return clone;\n }\n // maps\n if (realm.Map && value instanceof realm.Map) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value, key) {\n clone.set(key, handleCopy(value, cache));\n });\n return clone;\n }\n // sets\n if (realm.Set && value instanceof realm.Set) {\n clone = new Constructor();\n cache.set(value, clone);\n value.forEach(function (value) {\n clone.add(handleCopy(value, cache));\n });\n return clone;\n }\n // blobs\n if (realm.Blob && value instanceof realm.Blob) {\n return value.slice(0, value.size, value.type);\n }\n // buffers (node-only)\n if (realm.Buffer && realm.Buffer.isBuffer(value)) {\n clone = realm.Buffer.allocUnsafe ? realm.Buffer.allocUnsafe(value.length) : new Constructor(value.length);\n cache.set(value, clone);\n value.copy(clone);\n return clone;\n }\n // arraybuffers / dataviews\n if (realm.ArrayBuffer) {\n // dataviews\n if (realm.ArrayBuffer.isView(value)) {\n clone = new Constructor(value.buffer.slice(0));\n cache.set(value, clone);\n return clone;\n }\n // arraybuffers\n if (value instanceof realm.ArrayBuffer) {\n clone = value.slice(0);\n cache.set(value, clone);\n return clone;\n }\n }\n // if the value cannot / should not be cloned, don't\n if (\n // promise-like\n typeof value.then === 'function' ||\n // errors\n value instanceof Error ||\n // weakmaps\n realm.WeakMap && value instanceof realm.WeakMap ||\n // weaksets\n realm.WeakSet && value instanceof realm.WeakSet) {\n return value;\n }\n // assume anything left is a custom constructor\n return getObjectClone(value, realm, handleCopy, cache);\n };\n return handleCopy(value, createCache());\n }\n // Adding reference to allow usage in CommonJS libraries compiled using TSC, which\n // expects there to be a default property on the exported value. See\n // [#37](https://github.com/planttheidea/fast-copy/issues/37) for details.\n copy.default = copy;\n /**\n * @function strictCopy\n *\n * @description\n * copy the value with `strict` option pre-applied\n *\n * @param value the value to copy\n * @param [options] the options for copying with\n * @param [options.realm] the realm (this) value the value is copied from\n * @returns the copied value\n */\n copy.strict = function strictCopy(value, options) {\n return copy(value, {\n isStrict: true,\n realm: options ? options.realm : void 0\n });\n };\n return copy;\n});","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nfunction CookieBot(_ref) {\n var domainGroupId = _ref.domainGroupId,\n language = _ref.language;\n if (typeof window === 'undefined') {\n return null;\n }\n if (!domainGroupId || !document) {\n return null;\n }\n if (domainGroupId.length !== 36) {\n console.warn(\"The cookie bot domain group id is \".concat(domainGroupId.length, \" characters, instead it should be 36 characters!\"));\n }\n var script = document.createElement('script');\n script.setAttribute('id', 'CookieBot');\n script.setAttribute('src', 'https://consent.cookiebot.com/uc.js');\n script.setAttribute('data-cbid', domainGroupId);\n script.setAttribute('data-blockingmode', 'auto');\n script.setAttribute('type', 'text/javascript');\n if (language) {\n script.setAttribute('data-culture', language);\n }\n var head = document.querySelector('html > head');\n head.insertBefore(script, head.firstChild);\n return _react.default.createElement(\"script\", {\n id: \"CookieDeclaration\",\n src: \"https://consent.cookiebot.com/\".concat(domainGroupId, \"/cd.js\"),\n type: \"text/javascript\",\n \"data-culture\": language,\n async: true\n });\n}\nCookieBot.defaultProps = {\n domainGroupId: undefined,\n language: undefined\n};\nCookieBot.propTypes = {\n domainGroupId: _propTypes.default.string,\n language: _propTypes.default.string\n};\nvar _default = CookieBot;\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _CookieBot.default;\n }\n});\nvar _CookieBot = _interopRequireDefault(require(\"./CookieBot\"));\nmodule.exports = exports.default;","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done) if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;) if (a[i] !== b[i]) return false;\n return true;\n }\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n};\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n return target;\n};\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (encode === false) {\n return String(str);\n }\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n return innermostBaseTag;\n }, []);\n};\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n var value = tag[primaryAttributeKey].toLowerCase();\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n return approvedTags;\n }, []).reverse();\n};\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n return null;\n};\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\nvar _helmetCallback = null;\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n if (!elementTag) {\n return;\n }\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n return true;\n };\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n _this2.warnOnInvalidChildren(child, nestedChildren);\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n var newProps = _extends({}, props);\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n return React.createElement(Component, newProps);\n };\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n return mappedState;\n }, _temp;\n};\nvar NullComponent = function NullComponent() {\n return null;\n};\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\nvar React = require('react');\nvar React__default = _interopDefault(React);\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n var mountedInstances = [];\n var state;\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n var SideEffect = /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n var _proto = SideEffect.prototype;\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n return SideEffect;\n }(React.PureComponent);\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n return SideEffect;\n };\n}\nmodule.exports = withSideEffect;","// this method was added to unscopables after implementation\n// in popular engines, so it's moved to a separate module\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('flat');\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent =\n function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n }\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.renderRichText = renderRichText;\n\nvar _richTextReactRenderer = require(\"@contentful/rich-text-react-renderer\");\n\nvar _contentfulResolveResponse = _interopRequireDefault(require(\"contentful-resolve-response\"));\n\n// @ts-check\nfunction renderRichText({\n raw,\n references\n}, options = {}) {\n const richText = JSON.parse(raw); // If no references are given, there is no need to resolve them\n\n if (!references || !references.length) {\n return (0, _richTextReactRenderer.documentToReactComponents)(richText, options);\n } // Create dummy response so we can use official libraries for resolving the entries\n\n\n const dummyResponse = {\n items: [{\n sys: {\n type: `Entry`\n },\n richText\n }],\n includes: {\n Entry: references.filter(({\n __typename\n }) => __typename !== `ContentfulAsset`).map(reference => {\n return { ...reference,\n sys: {\n type: `Entry`,\n id: reference.contentful_id\n }\n };\n }),\n Asset: references.filter(({\n __typename\n }) => __typename === `ContentfulAsset`).map(reference => {\n return { ...reference,\n sys: {\n type: `Asset`,\n id: reference.contentful_id\n }\n };\n })\n }\n };\n const resolved = (0, _contentfulResolveResponse.default)(dummyResponse, {\n removeUnresolved: true\n });\n return (0, _richTextReactRenderer.documentToReactComponents)(resolved[0].richText, options);\n}","/* Global imports */\nimport pt from 'prop-types';\nimport React, { useContext, useEffect, useRef, useState } from 'react';\nimport { MicrocopyContext } from '../../../context/microcopy.context';\nimport { getCopy } from '../../../helpers/copy';\nimport { combine } from '../../../helpers/styles';\nimport Button from '../../ui/button';\nimport Icon from '../../ui/icon';\nimport * as styles from './form.module.scss';\nimport Text from '/src/components/ui/text';\n\nconst CMSForm = ({\n inputLabel,\n inputPlaceholder,\n btnLabel,\n type,\n action,\n inputClassName,\n btnClassName,\n className,\n onFooter,\n gaTrackingKeyword,\n}) => {\n const [success, setSuccess] = useState(false);\n const [loading, setLoading] = useState(false);\n const form = useRef();\n const formInput = useRef();\n const microcopy = useContext(MicrocopyContext);\n\n const [value, setValue] = useState('');\n const handleSubmit = (e) => {\n e.preventDefault();\n setLoading(true);\n fetch(action, {\n method: 'post',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({ [type]: value }),\n }).then((res) => setSuccess(res.status === 200));\n };\n\n return !success ? (\n \n {inputLabel && (\n \n {inputLabel}\n \n )}\n
\n setValue(e.target.value)}\n required\n value={value}\n />\n\n \n
\n \n ) : (\n
\n
\n \n
\n {getCopy('newsletterSignup.success', microcopy)}\n
\n );\n};\n\nexport const proptypes = {\n inputLabel: pt.string,\n inputPlaceholder: pt.string,\n type: pt.string,\n btnLabel: pt.string.isRequired,\n action: pt.string.isRequired,\n inputClassName: pt.string,\n btnClassName: pt.string,\n className: pt.string,\n onFooter: pt.bool,\n};\nCMSForm.propTypes = proptypes;\nCMSForm.defaultProps = {\n inputLabel: '',\n inputPlaceholder: '',\n type: 'text',\n btnLabel: '',\n inputClassName: '',\n btnClassName: '',\n className: '',\n onFooter: false,\n};\n\nexport default CMSForm;\n","// extracted by mini-css-extract-plugin\nexport var avoid = \"form-module--avoid--55681\";\nexport var form = \"form-module--form--17749\";\nexport var formButton = \"form-module--formButton--e259f\";\nexport var formInput = \"form-module--formInput--4980e\";\nexport var iconWrapper = \"form-module--iconWrapper--20e1d\";\nexport var inputContainer = \"form-module--inputContainer--2456d\";\nexport var inputLabel = \"form-module--inputLabel--7b57e\";\nexport var onFooter = \"form-module--onFooter--7a8d4\";\nexport var successWrapper = \"form-module--successWrapper--b56f8\";","// extracted by mini-css-extract-plugin\nexport var bigHeadline = \"heroTeaser-module--bigHeadline--a1af9\";\nexport var contentContainer = \"heroTeaser-module--contentContainer--22637\";\nexport var ctasContainer = \"heroTeaser-module--ctasContainer--e4fe5\";\nexport var halfHalf = \"heroTeaser-module--halfHalf--c2e3c\";\nexport var heroTeaser = \"heroTeaser-module--heroTeaser--55260\";\nexport var hl = \"heroTeaser-module--hl--70e21\";\nexport var isBlue = \"heroTeaser-module--isBlue--acb4e\";\nexport var isEditorial = \"heroTeaser-module--isEditorial--10809\";\nexport var leftAlign = \"heroTeaser-module--leftAlign--c31c8\";\nexport var leftTopMargins = \"heroTeaser-module--leftTopMargins--c23b8\";\nexport var link = \"heroTeaser-module--link--62040\";\nexport var secondCta = \"heroTeaser-module--secondCta--88b61\";\nexport var text = \"heroTeaser-module--text--64de4\";","import React from 'react';\nimport pt from 'prop-types';\nimport Text from '../../../../ui/text';\nimport { combine } from '/src/helpers/styles';\nimport Link, { linkProptypes } from '../../../../ui/link';\nimport * as styles from './heroTeaser.module.scss';\n\nconst HeroTeaser = ({\n headline,\n text,\n cta,\n ctas,\n position,\n isRed,\n isEditorial,\n bigHeadline,\n className,\n}) => (\n \n {bigHeadline ? (\n \n {bigHeadline}\n \n ) : (\n <>\n
\n {headline && (\n \n {headline}\n \n )}\n {text && (\n \n {text}\n \n )}\n
\n {ctas?.length > 0 && (\n
\n {ctas.map((cta, idx) => (\n \n {cta.text}\n \n ))}\n
\n )}\n {/* Leave it as fallback for old design */}\n {!ctas?.length && cta && (\n
\n \n {cta.text}\n \n
\n )}\n \n )}\n
\n);\n\nexport const proptypes = {\n headline: pt.string,\n bigHeadline: pt.string,\n text: pt.string,\n cta: pt.shape(linkProptypes),\n ctas: pt.arrayOf(pt.shape(linkProptypes)),\n position: pt.string,\n isRed: pt.bool,\n className: pt.string,\n};\nHeroTeaser.propTypes = proptypes;\n\nHeroTeaser.defaultProps = {\n headline: '',\n bigHeadline: '',\n position: 'right',\n isRed: true,\n className: '',\n ctas: [],\n};\n\nHeroTeaser.propTypes = proptypes;\n\nexport default HeroTeaser;\n","// extracted by mini-css-extract-plugin\nexport var backgroundImage = \"hero-module--backgroundImage--f9272\";\nexport var backgroundVideo = \"hero-module--backgroundVideo--c7235\";\nexport var carousel = \"hero-module--carousel--97486\";\nexport var fullHeightSm = \"hero-module--fullHeightSm--27c2b\";\nexport var hero = \"hero-module--hero--d01e1\";\nexport var heroImageLink = \"hero-module--heroImageLink--c4f2e\";\nexport var teaserContainer = \"hero-module--teaserContainer--e3294\";\nexport var videoContainer = \"hero-module--videoContainer--c2788\";","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\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 Object.keys(src).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}\nexport { getWindow as a, getDocument as g };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\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 return [...element.children].filter(el => el.matches(selector));\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 : [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}\nexport { elementParents as a, elementOffset as b, createElement as c, now as d, elementChildren as e, elementOuterSize as f, elementIndex as g, getTranslate as h, elementTransitionEnd as i, isObject as j, getSlideTransformEl as k, elementStyle as l, elementNextAll as m, nextTick as n, elementPrevAll as o, animateCSSModeScroll as p, extend as q, deleteProps as r, setCSSProperty as s };","import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { a as elementParents, l as elementStyle, e as elementChildren, s as setCSSProperty, f as elementOuterSize, m as elementNextAll, o as elementPrevAll, h as getTranslate, p as animateCSSModeScroll, n as nextTick, d as now, q as extend, g as elementIndex, c as createElement, r as deleteProps } from './utils.mjs';\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}\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(\"\".concat(screenWidth, \"x\").concat(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}\nlet browser;\nfunction calcBrowser() {\n const window = getWindow();\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 return {\n isSafari: needPerspectiveFix || isSafari(),\n needPerspectiveFix,\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n return browser;\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}\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: 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};\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}\nfunction updateSlides() {\n const swiper = this;\n function getDirectionLabel(property) {\n if (swiper.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 function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(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, \".\".concat(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(slidesLength);\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, slidesLength, getDirectionLabel);\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[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[getDirectionLabel('width')] = \"\".concat(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 = \"\".concat(swiper.virtualSize + spaceBetween, \"px\");\n }\n if (params.setWrapperSize) {\n wrapperEl.style[getDirectionLabel('width')] = \"\".concat(swiper.virtualSize + spaceBetween, \"px\");\n }\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\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' : 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] = \"\".concat(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;\n snapGrid = snapGrid.map(snap => {\n if (snap <= 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (spaceBetween || 0);\n });\n allSlidesSize -= spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n setCSSProperty(wrapperEl, '--swiper-centered-offset-after', \"\".concat(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 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = \"\".concat(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}\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 = \"\".concat(newHeight, \"px\");\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}\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\n // Visible Slides\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass);\n });\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 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 slides[i].classList.add(params.slideVisibleClass);\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\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}\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 getFilteredSlide = selector => {\n return elementChildren(slidesEl, \".\".concat(params.slideClass).concat(selector, \", swiper-slide\").concat(selector))[0];\n };\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n });\n let activeSlide;\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=\\\"\".concat(slideIndex, \"\\\"]\"));\n } else {\n activeSlide = getFilteredSlide(\"[data-swiper-slide-index=\\\"\".concat(activeIndex, \"\\\"]\"));\n }\n } else {\n activeSlide = slides[activeIndex];\n }\n if (activeSlide) {\n // Active classes\n activeSlide.classList.add(params.slideActiveClass);\n\n // Next Slide\n let nextSlide = elementNextAll(activeSlide, \".\".concat(params.slideClass, \", swiper-slide\"))[0];\n if (params.loop && !nextSlide) {\n nextSlide = slides[0];\n }\n if (nextSlide) {\n nextSlide.classList.add(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = elementPrevAll(activeSlide, \".\".concat(params.slideClass, \", swiper-slide\"))[0];\n if (params.loop && !prevSlide === 0) {\n prevSlide = slides[slides.length - 1];\n }\n if (prevSlide) {\n prevSlide.classList.add(params.slidePrevClass);\n }\n }\n swiper.emitSlidesClasses();\n}\nconst processLazyPreloader = (swiper, imageEl) => {\n if (!swiper || swiper.destroyed || !swiper.params) return;\n const slideSelector = () => swiper.isElement ? \"swiper-slide\" : \".\".concat(swiper.params.slideClass);\n const slideEl = imageEl.closest(slideSelector());\n if (slideEl) {\n let lazyEl = slideEl.querySelector(\".\".concat(swiper.params.lazyPreloaderClass));\n if (!lazyEl && swiper.isElement) {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(\".\".concat(swiper.params.lazyPreloaderClass));\n } else {\n // init later\n requestAnimationFrame(() => {\n if (slideEl.shadowRoot) {\n lazyEl = slideEl.shadowRoot.querySelector(\".\".concat(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};\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) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n swiper.realIndex = getVirtualRealIndex(activeIndex);\n }\n return;\n }\n // Get real index\n let realIndex;\n if (swiper.virtual && params.virtual.enabled && params.loop) {\n realIndex = getVirtualRealIndex(activeIndex);\n } else if (swiper.slides[activeIndex]) {\n realIndex = parseInt(swiper.slides[activeIndex].getAttribute('data-swiper-slide-index') || activeIndex, 10);\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}\nfunction updateClickedSlide(el, path) {\n const swiper = this;\n const params = swiper.params;\n let slide = el.closest(\".\".concat(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(\".\".concat(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}\nvar update = {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\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}\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(\".concat(x, \"px, \").concat(y, \"px, \").concat(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}\nfunction minTranslate() {\n return -this.snapGrid[0];\n}\nfunction maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\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 if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n return true;\n}\nvar translate = {\n getTranslate: getSwiperTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};\nfunction setTransition(duration, byController) {\n const swiper = this;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style.transitionDuration = \"\".concat(duration, \"ms\");\n swiper.wrapperEl.style.transitionDelay = duration === 0 ? \"0ms\" : '';\n }\n swiper.emit('setTransition', duration, byController);\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\".concat(step));\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n swiper.emit(\"slideChangeTransition\".concat(step));\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\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}\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}\nvar transition = {\n setTransition,\n transitionStart,\n transitionEnd\n};\nfunction slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\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 (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\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 // Update Index\n if (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 const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\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 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}\nfunction slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n if (speed === void 0) {\n speed = this.params.speed;\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 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 newIndex = swiper.getSlideIndexByData(newIndex);\n }\n }\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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);\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);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\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) return swiper;\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 let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\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 = 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 (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n const swiper = this;\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 (speed === void 0) {\n speed = this.params.speed;\n }\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n if (threshold === void 0) {\n threshold = 0.5;\n }\n const swiper = this;\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}\nfunction slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n const slideSelector = swiper.isElement ? \"swiper-slide\" : \".\".concat(params.slideClass);\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 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, \"\".concat(slideSelector, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\"))[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, \"\".concat(slideSelector, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\"))[0]);\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\nvar slide = {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};\nfunction loopCreate(slideRealIndex) {\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 slides = elementChildren(slidesEl, \".\".concat(params.slideClass, \", swiper-slide\"));\n slides.forEach((el, index) => {\n el.setAttribute('data-swiper-slide-index', index);\n });\n swiper.loopFix({\n slideRealIndex,\n direction: params.centeredSlides ? undefined : 'next'\n });\n}\nfunction loopFix(_temp) {\n let {\n slideRealIndex,\n slideTo = true,\n direction,\n setTranslate,\n activeSlideIndex,\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 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 const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10));\n let loopedSlides = params.loopedSlides || slidesPerView;\n if (loopedSlides % params.slidesPerGroup !== 0) {\n loopedSlides += params.slidesPerGroup - loopedSlides % params.slidesPerGroup;\n }\n swiper.loopedSlides = loopedSlides;\n const prependSlidesIndexes = [];\n const appendSlidesIndexes = [];\n let activeIndex = swiper.activeIndex;\n if (typeof activeSlideIndex === 'undefined') {\n activeSlideIndex = swiper.getSlideIndex(swiper.slides.filter(el => el.classList.contains(params.slideActiveClass))[0]);\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 // prepend last slides before start\n if (activeSlideIndex < loopedSlides) {\n slidesPrepended = Math.max(loopedSlides - activeSlideIndex, params.slidesPerGroup);\n for (let i = 0; i < loopedSlides - activeSlideIndex; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n prependSlidesIndexes.push(slides.length - index - 1);\n }\n } else if (activeSlideIndex /* + slidesPerView */ > swiper.slides.length - loopedSlides * 2) {\n slidesAppended = Math.max(activeSlideIndex - (swiper.slides.length - loopedSlides * 2), params.slidesPerGroup);\n for (let i = 0; i < slidesAppended; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlidesIndexes.push(index);\n }\n }\n if (isPrev) {\n prependSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.prepend(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n if (isNext) {\n appendSlidesIndexes.forEach(index => {\n swiper.slides[index].swiperLoopMoveDOM = true;\n slidesEl.append(swiper.slides[index]);\n swiper.slides[index].swiperLoopMoveDOM = false;\n });\n }\n swiper.recalcSlides();\n if (params.slidesPerView === 'auto') {\n swiper.updateSlides();\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 + slidesPrepended, 0, false, true);\n if (setTranslate) {\n swiper.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n if (setTranslate) {\n swiper.slideToLoop(slideRealIndex, 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.touches[swiper.isHorizontal() ? 'startX' : 'startY'] += diff;\n swiper.touchEventsData.currentTranslate = swiper.translate;\n }\n }\n } else {\n swiper.slideToLoop(slideRealIndex, 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}\nfunction loopDestroy() {\n const swiper = this;\n const {\n params,\n slidesEl\n } = swiper;\n if (!params.loop || 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}\nvar loop = {\n loopCreate,\n loopFix,\n loopDestroy\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}\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}\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 onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n data.evCache.push(event);\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n if (!params.simulateTouch && event.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 e = event;\n if (e.originalEvent) e = e.originalEvent;\n let targetEl = e.target;\n if (params.touchEventsTarget === 'wrapper') {\n if (!swiper.wrapperEl.contains(targetEl)) 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 = event.composedPath ? event.composedPath() : event.path;\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n targetEl = eventPath[0];\n }\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(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 const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\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) {\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}\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 (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === e.pointerId);\n if (pointerIndex >= 0) data.evCache[pointerIndex] = e;\n const targetTouch = data.evCache.length > 1 ? data.evCache[0] : e;\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 prevX: swiper.touches.currentX,\n prevY: swiper.touches.currentY,\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 (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\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 if (e.targetTouches && e.targetTouches.length > 1) return;\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 || swiper.zoom && swiper.params.zoom && swiper.params.zoom.enabled && data.evCache.length > 1) {\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.swipeDirection === 'next' && swiper.allowSlideNext || swiper.swipeDirection === '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 });\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 if (data.isMoved && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n // need another loop fix\n swiper.loopFix({\n direction: swiper.swipeDirection,\n setTranslate: true\n });\n loopFixed = true;\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.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.size / 2 : 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.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.size / 2 : 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}\nfunction onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const pointerIndex = data.evCache.findIndex(cachedEv => cachedEv.pointerId === event.pointerId);\n if (pointerIndex >= 0) {\n data.evCache.splice(pointerIndex, 1);\n }\n if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(event.type)) {\n const proceed = ['pointercancel', 'contextmenu'].includes(event.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n if (!proceed) {\n return;\n }\n }\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\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 (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 // 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.currentTranslate === data.startTranslate) {\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 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 (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (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}\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}\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}\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}\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}\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\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\n // Touch Events\n el[domMethod]('pointerdown', swiper.onTouchStart, {\n passive: false\n });\n document[domMethod]('pointermove', swiper.onTouchMove, {\n passive: false,\n capture\n });\n document[domMethod]('pointerup', swiper.onTouchEnd, {\n passive: true\n });\n document[domMethod]('pointercancel', 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 document = getDocument();\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 if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n swiper.onClick = onClick.bind(swiper);\n swiper.onLoad = onLoad.bind(swiper);\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n events(swiper, 'on');\n}\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\nvar events$1 = {\n attachEvents,\n detachEvents\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\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\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 wasEnabled = params.enabled;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(\"\".concat(params.containerModifierClass, \"grid\"), \"\".concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(\"\".concat(params.containerModifierClass, \"grid\"));\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n el.classList.add(\"\".concat(params.containerModifierClass, \"grid-column\"));\n }\n swiper.emitContainerClasses();\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}\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: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\nvar breakpoints = {\n setBreakpoint,\n getBreakpoint\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}\nfunction removeClasses() {\n const swiper = this;\n const {\n el,\n classNames\n } = swiper;\n el.classList.remove(...classNames);\n swiper.emitContainerClasses();\n}\nvar classes = {\n addClasses,\n removeClasses\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};\nvar defaults = {\n init: true,\n direction: 'horizontal',\n oneWayMovement: false,\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 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 loopedSlides: null,\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 slideActiveClass: 'swiper-slide-active',\n slideVisibleClass: 'swiper-slide-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};\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 evCache: []\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 getSlideIndex(slideEl) {\n const {\n slidesEl,\n params\n } = this;\n const slides = elementChildren(slidesEl, \".\".concat(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.filter(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index)[0]);\n }\n recalcSlides() {\n const swiper = this;\n const {\n slidesEl,\n params\n } = swiper;\n swiper.slides = elementChildren(slidesEl, \".\".concat(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] ? 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 += 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(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection));\n swiper.el.classList.add(\"\".concat(swiper.params.containerModifierClass).concat(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(\"\".concat(swiper.params.containerModifierClass, \"rtl\"));\n swiper.el.dir = 'rtl';\n } else {\n swiper.el.classList.remove(\"\".concat(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-CONTAINER') {\n swiper.isElement = true;\n }\n const getWrapperSelector = () => {\n return \".\".concat((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, \".\".concat(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();\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 el.removeAttribute('style');\n wrapperEl.removeAttribute('style');\n if (slides && slides.length) {\n slides.forEach(slideEl => {\n slideEl.classList.remove(params.slideVisibleClass, 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 swiper.el.swiper = null;\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]);\nexport { Swiper as S, defaults as d };","/* underscore in name -> watch for changes */\nconst paramsList = ['eventsPrefix', 'injectStyles', 'injectStylesUrls', 'modules', 'init', '_direction', 'oneWayMovement', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', 'focusableElements', '_enabled', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', 'breakpointsBase', '_spaceBetween', '_slidesPerView', 'maxBackfaceHiddenSlides', '_grid', '_slidesPerGroup', '_slidesPerGroupSkip', '_slidesPerGroupAuto', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_loop', 'loopedSlides', 'loopPreventsSliding', '_rewind', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideActiveClass', 'slideVisibleClass', 'slideNextClass', 'slidePrevClass', 'wrapperClass', 'lazyPreloaderClass', 'lazyPreloadPrevNext', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren',\n// modules\n'a11y', '_autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'creativeEffect', 'cardsEffect', 'hashNavigation', 'history', 'keyboard', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom', 'control'];\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object' && !o.__swiper__;\n}\nfunction extend(target, src) {\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\nfunction needsNavigation(params) {\n if (params === void 0) {\n params = {};\n }\n return params.navigation && typeof params.navigation.nextEl === 'undefined' && typeof params.navigation.prevEl === 'undefined';\n}\nfunction needsPagination(params) {\n if (params === void 0) {\n params = {};\n }\n return params.pagination && typeof params.pagination.el === 'undefined';\n}\nfunction needsScrollbar(params) {\n if (params === void 0) {\n params = {};\n }\n return params.scrollbar && typeof params.scrollbar.el === 'undefined';\n}\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n const classes = classNames.split(' ').map(c => c.trim()).filter(c => !!c);\n const unique = [];\n classes.forEach(c => {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\nfunction attrToProp(attrName) {\n if (attrName === void 0) {\n attrName = '';\n }\n return attrName.replace(/-[a-z]/g, l => l.toUpperCase().replace('-', ''));\n}\nfunction wrapperClass(className) {\n if (className === void 0) {\n className = '';\n }\n if (!className) return 'swiper-wrapper';\n if (!className.includes('swiper-wrapper')) return \"swiper-wrapper \".concat(className);\n return className;\n}\nfunction updateSwiper(_ref) {\n let {\n swiper,\n slides,\n passedParams,\n changedParams,\n nextEl,\n prevEl,\n scrollbarEl,\n paginationEl\n } = _ref;\n const updateParams = changedParams.filter(key => key !== 'children' && key !== 'direction' && key !== 'wrapperClass');\n const {\n params: currentParams,\n pagination,\n navigation,\n scrollbar,\n virtual,\n thumbs\n } = swiper;\n let needThumbsInit;\n let needControllerInit;\n let needPaginationInit;\n let needScrollbarInit;\n let needNavigationInit;\n let loopNeedDestroy;\n let loopNeedEnable;\n let loopNeedReloop;\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n if (changedParams.includes('pagination') && passedParams.pagination && (passedParams.pagination.el || paginationEl) && (currentParams.pagination || currentParams.pagination === false) && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && (passedParams.scrollbar.el || scrollbarEl) && (currentParams.scrollbar || currentParams.scrollbar === false) && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n if (changedParams.includes('navigation') && passedParams.navigation && (passedParams.navigation.prevEl || prevEl) && (passedParams.navigation.nextEl || nextEl) && (currentParams.navigation || currentParams.navigation === false) && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n const destroyModule = mod => {\n if (!swiper[mod]) return;\n swiper[mod].destroy();\n if (mod === 'navigation') {\n if (swiper.isElement) {\n swiper[mod].prevEl.remove();\n swiper[mod].nextEl.remove();\n }\n currentParams[mod].prevEl = undefined;\n currentParams[mod].nextEl = undefined;\n swiper[mod].prevEl = undefined;\n swiper[mod].nextEl = undefined;\n } else {\n if (swiper.isElement) {\n swiper[mod].el.remove();\n }\n currentParams[mod].el = undefined;\n swiper[mod].el = undefined;\n }\n };\n if (changedParams.includes('loop') && swiper.isElement) {\n if (currentParams.loop && !passedParams.loop) {\n loopNeedDestroy = true;\n } else if (!currentParams.loop && passedParams.loop) {\n loopNeedEnable = true;\n } else {\n loopNeedReloop = true;\n }\n }\n updateParams.forEach(key => {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n if ((key === 'navigation' || key === 'pagination' || key === 'scrollbar') && 'enabled' in passedParams[key] && !passedParams[key].enabled) {\n destroyModule(key);\n }\n } else {\n const newValue = passedParams[key];\n if ((newValue === true || newValue === false) && (key === 'navigation' || key === 'pagination' || key === 'scrollbar')) {\n if (newValue === false) {\n destroyModule(key);\n }\n } else {\n currentParams[key] = passedParams[key];\n }\n }\n });\n if (updateParams.includes('controller') && !needControllerInit && swiper.controller && swiper.controller.control && currentParams.controller && currentParams.controller.control) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (changedParams.includes('children') && slides && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n if (changedParams.includes('children') && slides && currentParams.loop) {\n loopNeedReloop = true;\n }\n if (needThumbsInit) {\n const initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n if (needPaginationInit) {\n if (swiper.isElement && (!paginationEl || typeof paginationEl === 'string')) {\n paginationEl = document.createElement('div');\n paginationEl.classList.add('swiper-pagination');\n paginationEl.part.add('pagination');\n swiper.el.appendChild(paginationEl);\n }\n if (paginationEl) currentParams.pagination.el = paginationEl;\n pagination.init();\n pagination.render();\n pagination.update();\n }\n if (needScrollbarInit) {\n if (swiper.isElement && (!scrollbarEl || typeof scrollbarEl === 'string')) {\n scrollbarEl = document.createElement('div');\n scrollbarEl.classList.add('swiper-scrollbar');\n scrollbarEl.part.add('scrollbar');\n swiper.el.appendChild(scrollbarEl);\n }\n if (scrollbarEl) currentParams.scrollbar.el = scrollbarEl;\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n if (needNavigationInit) {\n if (swiper.isElement) {\n if (!nextEl || typeof nextEl === 'string') {\n nextEl = document.createElement('div');\n nextEl.classList.add('swiper-button-next');\n nextEl.innerHTML = swiper.hostEl.constructor.nextButtonSvg;\n nextEl.part.add('button-next');\n swiper.el.appendChild(nextEl);\n }\n if (!prevEl || typeof prevEl === 'string') {\n prevEl = document.createElement('div');\n prevEl.classList.add('swiper-button-prev');\n prevEl.innerHTML = swiper.hostEl.constructor.prevButtonSvg;\n prevEl.part.add('button-prev');\n swiper.el.appendChild(prevEl);\n }\n }\n if (nextEl) currentParams.navigation.nextEl = nextEl;\n if (prevEl) currentParams.navigation.prevEl = prevEl;\n navigation.init();\n navigation.update();\n }\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n if (loopNeedDestroy || loopNeedReloop) {\n swiper.loopDestroy();\n }\n if (loopNeedEnable || loopNeedReloop) {\n swiper.loopCreate();\n }\n swiper.update();\n}\nexport { needsPagination as a, needsScrollbar as b, attrToProp as c, uniqueClasses as d, extend as e, isObject as i, needsNavigation as n, paramsList as p, updateSwiper as u, wrapperClass as w };","/**\n * Swiper React 10.3.0\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2023 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: September 21, 2023\n */\n\nimport React, { useEffect, useLayoutEffect, useContext, createContext, forwardRef, useState, useRef } from 'react';\nimport { S as Swiper$1 } from './shared/swiper-core.mjs';\nimport { g as getParams, m as mountSwiper, a as getChangedParams, u as updateOnVirtualData } from './shared/update-on-virtual-data.mjs';\nimport { d as uniqueClasses, w as wrapperClass, n as needsNavigation, b as needsScrollbar, a as needsPagination, e as extend, u as updateSwiper } from './shared/update-swiper.mjs';\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction isChildSwiperSlide(child) {\n return child.type && child.type.displayName && child.type.displayName.includes('SwiperSlide');\n}\nfunction processChildren(c) {\n const slides = [];\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.children) {\n processChildren(child.props.children).forEach(slide => slides.push(slide));\n }\n });\n return slides;\n}\nfunction getChildren(c) {\n const slides = [];\n const slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n React.Children.toArray(c).forEach(child => {\n if (isChildSwiperSlide(child)) {\n slides.push(child);\n } else if (child.props && child.props.slot && slots[child.props.slot]) {\n slots[child.props.slot].push(child);\n } else if (child.props && child.props.children) {\n const foundSlides = processChildren(child.props.children);\n if (foundSlides.length > 0) {\n foundSlides.forEach(slide => slides.push(slide));\n } else {\n slots['container-end'].push(child);\n }\n } else {\n slots['container-end'].push(child);\n }\n });\n return {\n slides,\n slots\n };\n}\nfunction renderVirtual(swiper, slides, virtualData) {\n if (!virtualData) return null;\n const getSlideIndex = index => {\n let slideIndex = index;\n if (index < 0) {\n slideIndex = slides.length + index;\n } else if (slideIndex >= slides.length) {\n // eslint-disable-next-line\n slideIndex = slideIndex - slides.length;\n }\n return slideIndex;\n };\n const style = swiper.isHorizontal() ? {\n [swiper.rtlTranslate ? 'right' : 'left']: \"\".concat(virtualData.offset, \"px\")\n } : {\n top: \"\".concat(virtualData.offset, \"px\")\n };\n const {\n from,\n to\n } = virtualData;\n const loopFrom = swiper.params.loop ? -slides.length : 0;\n const loopTo = swiper.params.loop ? slides.length * 2 : slides.length;\n const slidesToRender = [];\n for (let i = loopFrom; i < loopTo; i += 1) {\n if (i >= from && i <= to) {\n slidesToRender.push(slides[getSlideIndex(i)]);\n }\n }\n return slidesToRender.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper,\n style,\n key: \"slide-\".concat(index)\n });\n });\n}\nfunction useIsomorphicLayoutEffect(callback, deps) {\n // eslint-disable-next-line\n if (typeof window === 'undefined') return useEffect(callback, deps);\n return useLayoutEffect(callback, deps);\n}\nconst SwiperSlideContext = /*#__PURE__*/createContext(null);\nconst useSwiperSlide = () => {\n return useContext(SwiperSlideContext);\n};\nconst SwiperContext = /*#__PURE__*/createContext(null);\nconst useSwiper = () => {\n return useContext(SwiperContext);\n};\nconst Swiper = /*#__PURE__*/forwardRef(function (_temp, externalElRef) {\n let {\n className,\n tag: Tag = 'div',\n wrapperTag: WrapperTag = 'div',\n children,\n onSwiper,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n let eventsAssigned = false;\n const [containerClasses, setContainerClasses] = useState('swiper');\n const [virtualData, setVirtualData] = useState(null);\n const [breakpointChanged, setBreakpointChanged] = useState(false);\n const initializedRef = useRef(false);\n const swiperElRef = useRef(null);\n const swiperRef = useRef(null);\n const oldPassedParamsRef = useRef(null);\n const oldSlides = useRef(null);\n const nextElRef = useRef(null);\n const prevElRef = useRef(null);\n const paginationElRef = useRef(null);\n const scrollbarElRef = useRef(null);\n const {\n params: swiperParams,\n passedParams,\n rest: restProps,\n events\n } = getParams(rest);\n const {\n slides,\n slots\n } = getChildren(children);\n const onBeforeBreakpoint = () => {\n setBreakpointChanged(!breakpointChanged);\n };\n Object.assign(swiperParams.on, {\n _containerClasses(swiper, classes) {\n setContainerClasses(classes);\n }\n });\n const initSwiper = () => {\n // init swiper\n Object.assign(swiperParams.on, events);\n eventsAssigned = true;\n const passParams = {\n ...swiperParams\n };\n delete passParams.wrapperClass;\n swiperRef.current = new Swiper$1(passParams);\n if (swiperRef.current.virtual && swiperRef.current.params.virtual.enabled) {\n swiperRef.current.virtual.slides = slides;\n const extendWith = {\n cache: false,\n slides,\n renderExternal: setVirtualData,\n renderExternalUpdate: false\n };\n extend(swiperRef.current.params.virtual, extendWith);\n extend(swiperRef.current.originalParams.virtual, extendWith);\n }\n };\n if (!swiperElRef.current) {\n initSwiper();\n }\n\n // Listen for breakpoints change\n if (swiperRef.current) {\n swiperRef.current.on('_beforeBreakpoint', onBeforeBreakpoint);\n }\n const attachEvents = () => {\n if (eventsAssigned || !events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.on(eventName, events[eventName]);\n });\n };\n const detachEvents = () => {\n if (!events || !swiperRef.current) return;\n Object.keys(events).forEach(eventName => {\n swiperRef.current.off(eventName, events[eventName]);\n });\n };\n useEffect(() => {\n return () => {\n if (swiperRef.current) swiperRef.current.off('_beforeBreakpoint', onBeforeBreakpoint);\n };\n });\n\n // set initialized flag\n useEffect(() => {\n if (!initializedRef.current && swiperRef.current) {\n swiperRef.current.emitSlidesClasses();\n initializedRef.current = true;\n }\n });\n\n // mount swiper\n useIsomorphicLayoutEffect(() => {\n if (externalElRef) {\n externalElRef.current = swiperElRef.current;\n }\n if (!swiperElRef.current) return;\n if (swiperRef.current.destroyed) {\n initSwiper();\n }\n mountSwiper({\n el: swiperElRef.current,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n paginationEl: paginationElRef.current,\n scrollbarEl: scrollbarElRef.current,\n swiper: swiperRef.current\n }, swiperParams);\n if (onSwiper) onSwiper(swiperRef.current);\n // eslint-disable-next-line\n return () => {\n if (swiperRef.current && !swiperRef.current.destroyed) {\n swiperRef.current.destroy(true, false);\n }\n };\n }, []);\n\n // watch for params change\n useIsomorphicLayoutEffect(() => {\n attachEvents();\n const changedParams = getChangedParams(passedParams, oldPassedParamsRef.current, slides, oldSlides.current, c => c.key);\n oldPassedParamsRef.current = passedParams;\n oldSlides.current = slides;\n if (changedParams.length && swiperRef.current && !swiperRef.current.destroyed) {\n updateSwiper({\n swiper: swiperRef.current,\n slides,\n passedParams,\n changedParams,\n nextEl: nextElRef.current,\n prevEl: prevElRef.current,\n scrollbarEl: scrollbarElRef.current,\n paginationEl: paginationElRef.current\n });\n }\n return () => {\n detachEvents();\n };\n });\n\n // update on virtual update\n useIsomorphicLayoutEffect(() => {\n updateOnVirtualData(swiperRef.current);\n }, [virtualData]);\n\n // bypass swiper instance to slides\n function renderSlides() {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef.current, slides, virtualData);\n }\n return slides.map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n swiper: swiperRef.current,\n swiperSlideIndex: index\n });\n });\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: swiperElRef,\n className: uniqueClasses(\"\".concat(containerClasses).concat(className ? \" \".concat(className) : ''))\n }, restProps), /*#__PURE__*/React.createElement(SwiperContext.Provider, {\n value: swiperRef.current\n }, slots['container-start'], /*#__PURE__*/React.createElement(WrapperTag, {\n className: wrapperClass(swiperParams.wrapperClass)\n }, slots['wrapper-start'], renderSlides(), slots['wrapper-end']), needsNavigation(swiperParams) && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n ref: prevElRef,\n className: \"swiper-button-prev\"\n }), /*#__PURE__*/React.createElement(\"div\", {\n ref: nextElRef,\n className: \"swiper-button-next\"\n })), needsScrollbar(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: scrollbarElRef,\n className: \"swiper-scrollbar\"\n }), needsPagination(swiperParams) && /*#__PURE__*/React.createElement(\"div\", {\n ref: paginationElRef,\n className: \"swiper-pagination\"\n }), slots['container-end']));\n});\nSwiper.displayName = 'Swiper';\nconst SwiperSlide = /*#__PURE__*/forwardRef(function (_temp, externalRef) {\n let {\n tag: Tag = 'div',\n children,\n className = '',\n swiper,\n zoom,\n lazy,\n virtualIndex,\n swiperSlideIndex,\n ...rest\n } = _temp === void 0 ? {} : _temp;\n const slideElRef = useRef(null);\n const [slideClasses, setSlideClasses] = useState('swiper-slide');\n const [lazyLoaded, setLazyLoaded] = useState(false);\n function updateClasses(_s, el, classNames) {\n if (el === slideElRef.current) {\n setSlideClasses(classNames);\n }\n }\n useIsomorphicLayoutEffect(() => {\n if (typeof swiperSlideIndex !== 'undefined') {\n slideElRef.current.swiperSlideIndex = swiperSlideIndex;\n }\n if (externalRef) {\n externalRef.current = slideElRef.current;\n }\n if (!slideElRef.current || !swiper) {\n return;\n }\n if (swiper.destroyed) {\n if (slideClasses !== 'swiper-slide') {\n setSlideClasses('swiper-slide');\n }\n return;\n }\n swiper.on('_slideClass', updateClasses);\n // eslint-disable-next-line\n return () => {\n if (!swiper) return;\n swiper.off('_slideClass', updateClasses);\n };\n });\n useIsomorphicLayoutEffect(() => {\n if (swiper && slideElRef.current && !swiper.destroyed) {\n setSlideClasses(swiper.getSlideClasses(slideElRef.current));\n }\n }, [swiper]);\n const slideData = {\n isActive: slideClasses.indexOf('swiper-slide-active') >= 0,\n isVisible: slideClasses.indexOf('swiper-slide-visible') >= 0,\n isPrev: slideClasses.indexOf('swiper-slide-prev') >= 0,\n isNext: slideClasses.indexOf('swiper-slide-next') >= 0\n };\n const renderChildren = () => {\n return typeof children === 'function' ? children(slideData) : children;\n };\n const onLoad = () => {\n setLazyLoaded(true);\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: slideElRef,\n className: uniqueClasses(\"\".concat(slideClasses).concat(className ? \" \".concat(className) : '')),\n \"data-swiper-slide-index\": virtualIndex,\n onLoad: onLoad\n }, rest), zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-zoom-container\",\n \"data-swiper-zoom\": typeof zoom === 'number' ? zoom : undefined\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n }))), !zoom && /*#__PURE__*/React.createElement(SwiperSlideContext.Provider, {\n value: slideData\n }, renderChildren(), lazy && !lazyLoaded && /*#__PURE__*/React.createElement(\"div\", {\n className: \"swiper-lazy-preloader\"\n })));\n});\nSwiperSlide.displayName = 'SwiperSlide';\nexport { Swiper, SwiperSlide, useSwiper, useSwiperSlide };","import { e as extend, p as paramsList, i as isObject, n as needsNavigation, a as needsPagination, b as needsScrollbar } from './update-swiper.mjs';\nimport { d as defaults } from './swiper-core.mjs';\nfunction getParams(obj, splitEvents) {\n if (obj === void 0) {\n obj = {};\n }\n if (splitEvents === void 0) {\n splitEvents = true;\n }\n const params = {\n on: {}\n };\n const events = {};\n const passedParams = {};\n extend(params, defaults);\n params._emitClasses = true;\n params.init = false;\n const rest = {};\n const allowedParams = paramsList.map(key => key.replace(/_/, ''));\n const plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(key => {\n if (typeof obj[key] === 'undefined') return;\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n if (splitEvents) {\n events[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n } else {\n params.on[\"\".concat(key[2].toLowerCase()).concat(key.substr(3))] = obj[key];\n }\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(key => {\n if (params[key] === true) params[key] = {};\n if (params[key] === false) delete params[key];\n });\n return {\n params,\n passedParams,\n rest,\n events\n };\n}\nfunction mountSwiper(_ref, swiperParams) {\n let {\n el,\n nextEl,\n prevEl,\n paginationEl,\n scrollbarEl,\n swiper\n } = _ref;\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n swiper.init(el);\n}\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren, getKey) {\n const keys = [];\n if (!oldParams) return keys;\n const addKey = key => {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n if (children && oldChildren) {\n const oldChildrenKeys = oldChildren.map(getKey);\n const childrenKeys = children.map(getKey);\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) addKey('children');\n if (oldChildren.length !== children.length) addKey('children');\n }\n const watchParams = paramsList.filter(key => key[0] === '_').map(key => key.replace(/_/, ''));\n watchParams.forEach(key => {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n const newKeys = Object.keys(swiperParams[key]);\n const oldKeys = Object.keys(oldParams[key]);\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(newKey => {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(oldKey => {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\nconst updateOnVirtualData = swiper => {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n if (swiper.parallax && swiper.params.parallax && swiper.params.parallax.enabled) {\n swiper.parallax.setTranslate();\n }\n};\nexport { getChangedParams as a, getParams as g, mountSwiper as m, updateOnVirtualData as u };","import { e as elementChildren, c as createElement } from './utils.mjs';\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, \".\".concat(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}\nexport { createElementIfNotDefined as c };","import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\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 const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\n function getEl(el) {\n let res;\n if (el && typeof el === 'string' && swiper.isElement) {\n res = swiper.el.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.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n res = swiper.el.querySelector(el);\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 if (swiper.params.navigation.hideOnClick && !prevEl.includes(targetEl) && !nextEl.includes(targetEl)) {\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}\nexport { Navigation as default };","function classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n return \".\".concat(classes.trim().replace(/([\\.:!+\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n}\nexport { classesToSelector as c };","import \"core-js/modules/es.array.unscopables.flat.js\";\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { f as elementOuterSize, g as elementIndex, a as elementParents } from '../shared/utils.mjs';\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: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\"),\n paginationDisabledClass: \"\".concat(pfx, \"-disabled\")\n }\n });\n swiper.pagination = {\n el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n const makeElementsArray = el => (Array.isArray(el) ? el : [el]).filter(e => !!e);\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[\"\".concat(position === 'prev' ? 'previous' : 'next', \"ElementSibling\")];\n if (bulletEl) {\n bulletEl.classList.add(\"\".concat(bulletActiveClass, \"-\").concat(position));\n bulletEl = bulletEl[\"\".concat(position === 'prev' ? 'previous' : 'next', \"ElementSibling\")];\n if (bulletEl) {\n bulletEl.classList.add(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n }\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 realIndex = swiper.realIndex;\n const newSlideIndex = swiper.getSlideIndexByData(index);\n const currentSlideIndex = swiper.getSlideIndexByData(swiper.realIndex);\n const loopFix = dir => {\n const indexBeforeLoopFix = swiper.activeIndex;\n swiper.loopFix({\n direction: dir,\n activeSlideIndex: newSlideIndex,\n slideTo: false\n });\n const indexAfterFix = swiper.activeIndex;\n if (indexBeforeLoopFix === indexAfterFix) {\n swiper.slideToLoop(realIndex, 0, false, true);\n }\n };\n if (newSlideIndex > swiper.slides.length - swiper.loopedSlides) {\n loopFix(newSlideIndex > currentSlideIndex ? 'next' : 'prev');\n } else if (swiper.params.centeredSlides) {\n const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n if (newSlideIndex < Math.floor(slidesPerView / 2)) {\n loopFix('prev');\n }\n }\n swiper.slideToLoop(index);\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'] = \"\".concat(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 => \"\".concat(params.bulletActiveClass).concat(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(...\"\".concat(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(...\"\".concat(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'] = \"\".concat(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(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\");\n progressEl.style.transitionDuration = \"\".concat(swiper.params.speed, \"ms\");\n });\n }\n if (params.type === 'custom' && params.renderCustom) {\n subEl.innerHTML = 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.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 += \"<\".concat(params.bulletElement, \" \").concat(swiper.isElement ? 'part=\"bullet\"' : '', \" class=\\\"\").concat(params.bulletClass, \"\\\">\");\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 = \"\") + ' / ' + \"\");\n }\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\");\n }\n }\n swiper.pagination.bullets = [];\n el.forEach(subEl => {\n if (params.type !== 'custom') {\n subEl.innerHTML = 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.filter(subEl => {\n if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n return true;\n })[0];\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(\"\".concat(params.modifierClass).concat(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}\nexport { Pagination as default };","// extracted by mini-css-extract-plugin\nexport var carousel = \"styles-module--carousel--6d565\";","import React from 'react';\nimport { Swiper } from 'swiper/react';\nimport { Navigation, Pagination } from 'swiper/modules';\nimport 'swiper/scss';\nimport 'swiper/scss/navigation';\nimport 'swiper/scss/pagination';\nimport * as styles from './styles.module.scss';\nimport Icon from '../icon';\n\nconst Carousel = ({ children }) => {\n return (\n <>\n
\n \n
\n \n {children}\n \n
\n \n
\n \n );\n};\n\nexport default Carousel;\n","import React from 'react';\nimport pt from 'prop-types';\nimport HeroTeaser, {\n proptypes as heroTeaserProptypes,\n} from './components/heroTeaser';\nimport Link from '/src/components/ui/link';\nimport { combine } from '/src/helpers/styles';\nimport Image, { imageProptypes } from '../../ui/image';\nimport * as styles from './hero.module.scss';\nimport { linkProptypes } from '../../ui/link';\nimport Video from '../../ui/video';\nimport { SwiperSlide } from 'swiper/react';\nimport Carousel from '../../ui/carousel';\nimport Container from '../../../modules/container';\n\nconst CMSHero = ({\n background,\n backgroundImageLink,\n heroTeaser,\n disableGatsbyImage,\n items,\n carouselTeaser,\n}) => {\n const renderImage = (background, heroTeaser) => (\n \n );\n const renderVideo = () => (\n \n );\n\n const renderContent = (background, backgroundImageLink, heroTeaser) => {\n return (\n <>\n {backgroundImageLink ? (\n \n {background.image\n ? renderImage(background, heroTeaser)\n : renderVideo()}\n \n ) : (\n \n {background.image\n ? renderImage(background, heroTeaser)\n : renderVideo()}\n
\n )}\n {heroTeaser && (\n \n \n \n )}\n \n );\n };\n\n return items?.length > 0 ? (\n
\n \n {items.map(({ background, backgroundImageLink }, idx) => {\n return (\n \n {renderContent(background, backgroundImageLink)}\n \n );\n })}\n \n {carouselTeaser && (\n \n \n \n )}\n
\n ) : (\n
\n {renderContent(background, backgroundImageLink, heroTeaser)}\n
\n );\n};\n\nCMSHero.propTypes = {\n background: pt.shape(imageProptypes).isRequired,\n backgroundImageLink: pt.shape(linkProptypes),\n heroTeaser: pt.shape(heroTeaserProptypes),\n carouselTeaser: pt.shape(heroTeaserProptypes),\n disableGatsbyImage: pt.bool,\n items: pt.array,\n};\n\nCMSHero.defaultProps = {\n backgroundImageLink: null,\n heroTeaser: {\n isEditorial: false,\n bigHeadline: '',\n },\n disableGatsbyImage: false,\n items: [],\n};\n\nexport default CMSHero;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst DesignAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n ${year}\n `,\n }}\n />\n );\n};\n\nDesignAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nDesignAward.defaultProps = {\n className: '',\n};\n\nexport default DesignAward;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst GoldAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n ${year}\n \n `,\n }}\n />\n );\n};\n\nGoldAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nGoldAward.defaultProps = {\n className: '',\n};\n\nexport default GoldAward;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst SocialImpact = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${year}\n \n `,\n }}\n />\n );\n};\n\nSocialImpact.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nSocialImpact.defaultProps = {\n className: '',\n};\n\nexport default SocialImpact;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst TalentAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n // If year is equal or greater than 2023, use student award logo\n return year >= 2023 ? (\n \n .st0{fill:#FFFFFF;}\n .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#EC1D26;}\n .cls-34{font-size:27px;font-family:Frutiger;font-weight:400;fill:white}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ${year}\n \n `,\n }}\n >\n ) : (\n \n \n \n \n \n \n \n \n ${year}\n `,\n }}\n />\n );\n};\n\nTalentAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nTalentAward.defaultProps = {\n className: '',\n};\n\nexport default TalentAward;\n","import pt from 'prop-types';\nimport React from 'react';\n\nconst TaipeiCycleAward = ({ year, className, trackingId }) => {\n if (!year) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n TPCdiA2024_logo\n \n \n \n \n \n \n \n \n d&i a\n w\n a\n r\n ds ${year}\n T\n AIPEI \n C\n Y\n CLE\n \n \n \n \n \n \n \n `,\n }}\n />\n );\n};\n\nTaipeiCycleAward.propTypes = {\n year: pt.number.isRequired,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nTaipeiCycleAward.defaultProps = {\n className: '',\n};\n\nexport default TaipeiCycleAward;\n","import pt from 'prop-types';\nimport React from 'react';\nimport { combine } from '../../../helpers/styles';\nimport ifDesignAwardGold from './badges/if-designaward-gold.svg';\nimport ifDesignAward from './badges/if-designaward.svg';\nimport ifTopLabel from './badges/if-top-label.svg';\nimport taipeiCycleAwards2023 from './badges/taipeiCycleAwards2023.svg';\nimport DesignAward from './components/designAward';\nimport GoldAward from './components/goldAward';\nimport SocialImpact from './components/socialImpact';\nimport TalentAward from './components/talentAward';\nimport TaipeiCycleAward from './components/taipeiCycleAward';\nimport * as styles from './styles.module.scss';\n\nconst AwardBadge = ({ name, year, className, trackingId }) => {\n if (!name) {\n return null;\n }\n\n const staticBadges = {\n ifDesignAward,\n ifDesignAwardGold,\n ifTopLabel,\n taipeiCycleAwards2023,\n };\n\n const StaticBadge = staticBadges[name];\n\n if (StaticBadge)\n return (\n \n );\n\n const dynamicBadges = {\n ifDesignRed2021: (\n \n ),\n ifDesignGold2021: (\n \n ),\n ifSocialImpactPrize2021: (\n \n ),\n ifTalentAward2021: (\n \n ),\n taipeiCycleAward: ,\n };\n\n if (dynamicBadges[name]) return dynamicBadges[name];\n\n return null;\n};\n\nAwardBadge.propTypes = {\n name: pt.string.isRequired,\n year: pt.number,\n className: pt.string,\n trackingId: pt.bool,\n};\n\nAwardBadge.defaultProps = {\n name: 'taipeiCycleAwards2023',\n className: '',\n year: new Date().getFullYear(),\n trackingId: false,\n};\n\nexport default AwardBadge;\n","// extracted by mini-css-extract-plugin\nexport var staticBadge = \"styles-module--staticBadge--e69b2\";","// extracted by mini-css-extract-plugin\nexport var button = \"styles-module--button--e5d02\";\nexport var disabled = \"styles-module--disabled--ea2c1\";\nexport var hidden = \"styles-module--hidden--69ce2\";\nexport var noPointerEvents = \"styles-module--noPointerEvents--897fd\";\nexport var quaternary = \"styles-module--quaternary--fdae1\";\nexport var secondary = \"styles-module--secondary--11623\";\nexport var spinner = \"styles-module--spinner--43bf4\";\nexport var tertiary = \"styles-module--tertiary--8ec8e\";\nexport var transparent = \"styles-module--transparent--cb149\";","import React from 'react';\nimport * as styles from './styles.module.scss';\nimport { combine } from '../../../helpers/styles';\n\nexport const LoadingSpinner = ({ className }) => {\n return ;\n};\n\nexport default LoadingSpinner;\n","// extracted by mini-css-extract-plugin\nexport var loader = \"styles-module--loader--ba7f3\";\nexport var rotation = \"styles-module--rotation--e0f2d\";","import pt from 'prop-types';\nimport React from 'react';\nimport { ifWordLetterLowercase } from '../../../helpers/copy';\nimport Text from '../text';\nimport * as styles from './styles.module.scss';\nimport { combine } from '/src/helpers/styles';\nimport LoadingSpinner from '../spinner';\n\nconst Button = ({\n text,\n type,\n transparent,\n className,\n textClassName,\n onClick,\n withoutTransform,\n htmlId,\n disabled,\n loading,\n}) => (\n \n <>\n \n {withoutTransform ? text : ifWordLetterLowercase(text)}\n \n {loading && }\n \n \n);\n\nButton.propTypes = {\n text: pt.string.isRequired,\n onClick: pt.func.isRequired,\n type: pt.oneOf(['primary', 'secondary', 'tertiary', 'quaternary']).isRequired,\n className: pt.string,\n textClassName: pt.string,\n transparent: pt.bool,\n withoutTransform: pt.bool,\n htmlId: pt.string,\n disabled: pt.bool,\n loading: pt.bool,\n};\n\nButton.defaultProps = {\n className: '',\n textClassName: '',\n transparent: false,\n htmlId: '',\n disabled: false,\n loading: false,\n};\n\nexport default Button;\n","import React, { useContext } from 'react';\nimport pt from 'prop-types';\nimport Text from '../text';\nimport { combine } from '../../../helpers/styles';\nimport * as styles from './dropdown.module.scss';\nimport { MicrocopyContext } from '../../../context/microcopy.context';\nimport { getCopy } from '../../../helpers/copy';\n\nconst Dropdown = ({\n name,\n defaultValue,\n className,\n onSelect,\n options,\n withoutLabel,\n}) => {\n const microcopy = useContext(MicrocopyContext);\n return (\n \n {!withoutLabel && (\n \n )}\n \n {options.map((item, index) => (\n \n ))}\n \n \n );\n};\n\nDropdown.propTypes = {\n name: pt.string,\n defaultValue: pt.string,\n className: pt.string,\n onSelect: pt.func,\n options: pt.arrayOf(\n pt.shape({\n label: pt.string,\n value: pt.string,\n })\n ),\n withoutLabel: pt.bool,\n};\nDropdown.defaultProps = {\n className: '',\n defaultValue: '',\n options: [],\n};\n\nexport default Dropdown;\n","// extracted by mini-css-extract-plugin\nexport var dropdown = \"dropdown-module--dropdown--17fc7\";\nexport var select = \"dropdown-module--select--ce2d1\";\nexport var withoutLabel = \"dropdown-module--withoutLabel--3aae9\";","// extracted by mini-css-extract-plugin\nexport var autoSuggestion = \"styles-module--autoSuggestion--71656\";\nexport var autoSuggestionContent = \"styles-module--autoSuggestionContent--1bb99\";\nexport var autoSuggestionTitle = \"styles-module--autoSuggestionTitle--551e6\";\nexport var backdrop = \"styles-module--backdrop--0a720\";\nexport var closeBtn = \"styles-module--closeBtn--ffff3\";\nexport var closeIcon = \"styles-module--closeIcon--baef2\";\nexport var isActive = \"styles-module--isActive--25bd5\";\nexport var search = \"styles-module--search--096d5\";\nexport var searchBtn = \"styles-module--searchBtn--a3728\";\nexport var searchField = \"styles-module--searchField--4c390\";\nexport var searchIcon = \"styles-module--searchIcon--b495f\";\nexport var searchInput = \"styles-module--searchInput--fdc53\";\nexport var small = \"styles-module--small--ae849\";","import React, { useContext, useEffect, useRef, useState } from 'react';\nimport pt from 'prop-types';\nimport Text from '../../../text';\nimport { combine } from '../../../../../helpers/styles';\nimport Icon from '../../../icon';\nimport useDebounce from '../../../../../hooks/useDebounce';\nimport { MicrocopyContext } from '../../../../../context/microcopy.context';\nimport { getCopy } from '../../../../../helpers/copy';\nimport * as styles from './styles.module.scss';\n\nimport { getAPIRoot } from '../../../../../helpers/fetch';\nimport Link from '../../../link';\nimport { API_ROUTES } from '../../../../../utils/constants';\n\nconst SearchField = ({\n initSearchTerm,\n placeholder,\n onSubmit,\n onReset,\n className,\n type,\n autoFocus,\n onBackdropClick,\n disableActiveBackdropStyles,\n small,\n}) => {\n const inputRef = useRef();\n const microcopy = useContext(MicrocopyContext);\n const [isActive, setIsActive] = useState(false);\n const [autoSuggestion, setAutoSuggestion] = useState([]);\n const [searchTerm, setSearchTerm] = useState('');\n const debouncedSearchTerm = useDebounce(searchTerm, 500);\n\n const getUrl = async () => {\n let apiRoot = await getAPIRoot();\n\n switch (type) {\n case 'Companies':\n return apiRoot + API_ROUTES.FIND_COMPANY_SUGGESTION;\n case 'Talent':\n return apiRoot + API_ROUTES.FIND_SUGGESTION;\n case 'SIP':\n return apiRoot + API_ROUTES.FIND_SUGGESTION;\n case 'Jury':\n return apiRoot + API_ROUTES.FIND_JUROR_SUGGESTION;\n //TODO: correct ranking url\n case 'Ranking':\n return apiRoot + API_ROUTES.FIND_SUGGESTION;\n case 'Projects':\n return apiRoot + API_ROUTES.FIND_SUGGESTION;\n case 'Global':\n return apiRoot + API_ROUTES.SEARCH_SUGGESTION;\n default:\n return apiRoot + API_ROUTES.FIND_SUGGESTION;\n }\n };\n\n const getAutoSuggestion = async (searchTerm) => {\n const url = await getUrl();\n return fetch(`${url}/${searchTerm}`).then((res) => res.json());\n };\n\n useEffect(() => {\n if (searchTerm?.length >= 3 && debouncedSearchTerm) {\n getAutoSuggestion(debouncedSearchTerm.toLowerCase()).then((res) => {\n setAutoSuggestion(res);\n });\n } else {\n setAutoSuggestion([]);\n }\n }, [debouncedSearchTerm]);\n\n useEffect(() => {\n setSearchTerm(initSearchTerm);\n }, [initSearchTerm]);\n\n const reset = () => {\n setIsActive(false);\n setSearchTerm('');\n onReset();\n };\n\n const cleanInput = () => {\n setSearchTerm('');\n inputRef.current.focus();\n };\n\n const change = (e) => {\n setSearchTerm(e.target.value);\n };\n\n const submit = (text) => {\n setIsActive(false);\n onSubmit(`${text.replace(/ \\| (Company|Creatives)/, '')}`);\n };\n\n const keyPressHandler = (e) => {\n if (e.code === 'Enter') {\n submit(searchTerm);\n inputRef.current.blur();\n }\n };\n\n const handleLinkClick = (e) => {\n sessionStorage.clear();\n };\n\n const getFormattedSuggestion = (text, term) => {\n const re = new RegExp(decodeURIComponent(term), 'gi');\n return text.replace(re, (match) => `${match}`);\n };\n\n const handleBackDropClick = () => {\n setIsActive(false);\n if (onBackdropClick) {\n onBackdropClick();\n }\n };\n\n return (\n <>\n \n
\n setIsActive(true)}\n onKeyPress={keyPressHandler}\n value={searchTerm}\n autoComplete=\"off\"\n ref={inputRef}\n autoFocus={autoFocus}\n data-test=\"search-input\"\n />\n {searchTerm && (\n \n \n \n )}\n {(isActive || !searchTerm) && (\n submit(searchTerm)}\n data-test=\"search-search-btn\"\n >\n \n \n )}\n {!isActive && searchTerm && (\n \n \n \n )}\n
\n\n {autoSuggestion && autoSuggestion.length > 0 && (\n
\n \n {getCopy('label.quickLink', microcopy)}\n \n {autoSuggestion.map((item, index) => (\n \n \n \n ))}\n
\n )}\n \n \n \n );\n};\n\nSearchField.propTypes = {\n searchTerm: pt.string,\n placeholder: pt.string,\n onReset: pt.func.isRequired,\n onSubmit: pt.func.isRequired,\n onBackdropClick: pt.func,\n className: pt.string,\n type: pt.oneOf([\n 'Companies',\n 'Projects',\n 'Talent',\n 'SIP',\n 'Jury',\n 'Ranking',\n 'Global',\n ]),\n autoFocus: pt.bool,\n disableActiveBackdropStyles: pt.bool,\n small: pt.bool,\n};\n\nSearchField.defaultProps = {\n searchTerm: '',\n className: '',\n placeholder: 'What do you want to explore?',\n type: 'Projects',\n autoFocus: false,\n onBackdropClick: () => {},\n disableActiveBackdropStyles: false,\n small: false,\n};\n\nexport default SearchField;\n","import { useState, useEffect } from 'react';\n\nexport default function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n\n return debouncedValue;\n}\n","// extracted by mini-css-extract-plugin\nexport var background = \"styles-module--background--8062a\";\nexport var badge = \"styles-module--badge--5c280\";\nexport var badgeIcon = \"styles-module--badgeIcon--afad8\";\nexport var caption = \"styles-module--caption--4e2b3\";\nexport var centerAligned = \"styles-module--centerAligned--d59eb\";\nexport var closeBtn = \"styles-module--closeBtn--bde1b\";\nexport var fallbackContainer = \"styles-module--fallbackContainer--103bc\";\nexport var format11 = \"styles-module--format11--11cc3\";\nexport var format169 = \"styles-module--format169--59734\";\nexport var format34 = \"styles-module--format34--c6421\";\nexport var format43 = \"styles-module--format43--6b19d\";\nexport var formatWrapper = \"styles-module--formatWrapper--b2f11\";\nexport var img = \"styles-module--img--054e4\";\nexport var leftAligned = \"styles-module--leftAligned--dfc9b\";\nexport var rightAligned = \"styles-module--rightAligned--48ff6\";\nexport var showing = \"styles-module--showing--f07e4\";\nexport var svgImg = \"styles-module--svgImg--52f36\";\nexport var zoomedImg = \"styles-module--zoomedImg--25e2b\";","import { GatsbyImage } from 'gatsby-plugin-image';\nimport pt from 'prop-types';\nimport React, { useEffect, useRef, useState } from 'react';\nimport { combine } from '../../../helpers/styles';\nimport placeholderImage from '../../../images/placeholder-image.png';\nimport AwardBadge from '../awardBadge';\nimport Icon from '../icon';\nimport RichText from '../richText';\nimport * as styles from './styles.module.scss';\n\nconst Image = ({\n image,\n imageCaption,\n disableGatsbyImage,\n disableImageCaption,\n className,\n imgClassName,\n captionClass,\n badgeIcon,\n badgeYear,\n isZoomable,\n focusPoint,\n format,\n loading,\n onlyClient,\n}) => {\n const [error, setError] = useState(false);\n const [isClient, setIsClient] = useState(false);\n const imageElement1 = useRef();\n const imageElement2 = useRef();\n\n useEffect(() => {\n let img = null;\n\n if (imageElement1?.current) img = imageElement1.current;\n if (imageElement2?.current) img = imageElement2.current;\n\n if (img) {\n setError(img.complete && !img.naturalHeight && !img.naturalWidth);\n }\n }, []);\n\n if ((image && image.url) || disableGatsbyImage) {\n return (\n \n <>\n {isZoomable && (\n \n )}\n {\n currentTarget.onerror = null;\n currentTarget.src = placeholderImage;\n }}\n ref={imageElement1}\n />\n {badgeIcon && (\n \n )}\n \n \n );\n }\n\n if (image && image.file && image?.file?.contentType?.indexOf('svg') >= 0) {\n return (\n
\n {\n currentTarget.onerror = null;\n currentTarget.src = placeholderImage;\n }}\n ref={imageElement2}\n />\n {badgeIcon && (\n \n )}\n
\n );\n }\n\n useEffect(() => {\n setIsClient(true);\n }, []);\n\n // workaround for image dissappearing on hydration\n // https://dev.azure.com/iF-Design/iF-Website/_sprints/taskboard/iF-Website%20Team/iF-Website/2024/Mai?workitem=9614\n // TODO: look for actual root cause\n return !onlyClient || (onlyClient && isClient) ? (\n <>\n \n {imageCaption && !disableImageCaption && (\n \n )}\n {badgeIcon && (\n \n )}\n \n ) : null;\n};\n\nexport const imageProptypes = {\n url: pt.string,\n file: pt.shape({\n url: pt.string,\n }),\n description: pt.string,\n gatsbyImageData: pt.object,\n};\n\nImage.propTypes = {\n image: pt.shape(imageProptypes).isRequired,\n imageCaption: pt.object,\n disableGatsbyImage: pt.bool,\n disableImageCaption: pt.bool,\n className: pt.string,\n captionClass: pt.string,\n imgClassName: pt.string,\n badgeIcon: pt.string,\n badgeYear: pt.number,\n isZoomable: pt.bool,\n focusPoint: pt.oneOf(['left', 'center', 'right']),\n format: pt.oneOf(['original', '4:3', '3:4', '16:9']),\n closeFn: pt.func,\n loading: pt.string,\n onlyClient: pt.bool,\n};\n\nImage.defaultProps = {\n className: '',\n imageCaption: null,\n disableGatsbyImage: false,\n disableImageCaption: false,\n captionClass: '',\n imgClassName: '',\n badgeYear: 2021,\n badgeIcon: '',\n isZoomable: false,\n focusPoint: 'center',\n format: 'original',\n closeFn: () => {},\n loading: 'eager',\n onlyClient: true,\n};\n\nexport default Image;\n","// extracted by mini-css-extract-plugin\nexport var button = \"styles-module--button--494f9\";\nexport var h2 = \"styles-module--h2--1258d\";\nexport var h3 = \"styles-module--h3--bc9ed\";\nexport var heading = \"styles-module--heading--c4061\";\nexport var hl = \"styles-module--hl--90232\";\nexport var link = \"styles-module--link--9a09e\";\nexport var ol = \"styles-module--ol--0520d\";\nexport var spacing = \"styles-module--spacing--341fe\";\nexport var ul = \"styles-module--ul--196b4\";","import { BLOCKS, INLINES } from '@contentful/rich-text-types';\nimport { graphql, useStaticQuery } from 'gatsby';\nimport { renderRichText } from 'gatsby-source-contentful/rich-text';\nimport pt from 'prop-types';\nimport React, { useState } from 'react';\nimport { useHeadlineContext } from '../../../context/HeadlineProvider/HeadlineProvider';\nimport { combine } from '../../../helpers/styles';\nimport Link from '../link';\nimport Text from '../text';\nimport * as styles from './styles.module.scss';\nimport {\n extractTelOrMailFromLink,\n isTelLink,\n isMailLink,\n} from '../../../helpers/link';\n\nconst extractText = (val) => {\n if (typeof val === 'string' || typeof val === 'number') {\n return val;\n }\n\n if (Array.isArray(val)) {\n return val.map((child) => extractText(child)).join('');\n }\n\n if (val?.props?.children) {\n if (Array.isArray(val.props.children)) {\n return val.props.children.map((child) => extractText(child)).join('');\n } else {\n return extractText(val.props.children);\n }\n }\n\n return '';\n};\n\nconst RichText = ({\n content,\n paragraphAs,\n paragraphType,\n paragraphVariant,\n className,\n textClassName,\n}) => {\n const [, isHeadlineSet] = useHeadlineContext(true);\n const [headline] = useState(!isHeadlineSet);\n\n const options = {\n renderNode: {\n [BLOCKS.TABLE_HEADER_CELL]: function renderTableHeaderCell(\n _node,\n children\n ) {\n const emptyHeader = !children?.[0]?.props?.children?.[0][1];\n return (\n \n \n {children}\n \n \n );\n },\n [BLOCKS.PARAGRAPH]: function renderCopyText(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_1]: function renderHeading1(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_2]: function renderHeading2(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HEADING_3]: function renderHeading3(_node, children) {\n return (\n \n {children}\n \n );\n },\n [BLOCKS.HR]: function renderEmbeddedHR(_node, children) {\n return children;\n },\n [BLOCKS.OL_LIST]: function renderEmbeddedUL(_node, children) {\n return
    {children}
;\n },\n [BLOCKS.UL_LIST]: function renderEmbeddedUL(_node, children) {\n return
    {children}
;\n },\n [BLOCKS.LIST_ITEM]: function renderEmbeddedLI(_node, children) {\n return
  • {children}
  • ;\n },\n [INLINES.HYPERLINK]: function renderHyperlink(node, children) {\n // link texts can have the following format:\n // justthetext\n // BUTTON::justthetext (where BUTTON is a flag to render the link as a button)\n // id::BUTTON::justthetext (where id is whatever you want to use as a GA id)\n // id::justthetext (where id is whatever you want to use as a GA id)\n // The display text will always be the last part of the string\n\n const value = extractText(children);\n const textParts = value.split('::');\n const text = textParts.pop();\n const asTransparentButton = !!textParts.find(\n (item) => item === 'BUTTON'\n );\n const asFilledButton = !!textParts.find(\n (item) => item === 'BUTTON_FILLED'\n );\n const id = textParts.find(\n (item) => item !== 'BUTTON' && item !== 'BUTTON_FILLED'\n );\n const asButton = asTransparentButton || asFilledButton;\n\n return (\n \n {text}\n \n );\n },\n [INLINES.ENTRY_HYPERLINK]: function renderEntryHyperlink(node, children) {\n const link = content.references.find(\n (ref) =>\n (ref.contentful_id || 'unsupported') === node.data.target?.sys.id,\n () => null\n );\n if (!link) return {children};\n return (\n \n {children}\n \n );\n },\n },\n renderText: (text) => {\n return text.split('\\n').reduce((children, textSegment, index) => {\n return [...children, index > 0 &&
    , textSegment];\n }, []);\n },\n };\n return
    {renderRichText(content, options)}
    ;\n};\n\nexport const richTextPropTypes = {\n raw: pt.string,\n};\n\nRichText.propTypes = {\n content: pt.shape(richTextPropTypes).isRequired,\n paragraphType: pt.string,\n paragraphVariant: pt.string,\n paragraphAs: pt.string,\n className: pt.string,\n textClassName: pt.string,\n};\n\nRichText.defaultProps = {\n paragraphType: 'p1',\n paragraphVariant: '',\n paragraphAs: 'p',\n className: '',\n textClassName: '',\n};\n\nexport default RichText;\n","import React from 'react';\nimport pt from 'prop-types';\n\nconst Iframe = ({ width, src, title, className }) => {\n return (\n \n );\n};\n\nIframe.propTypes = {\n width: pt.string,\n src: pt.string,\n title: pt.string,\n className: pt.string,\n};\n\nIframe.defaultProps = {\n width: '',\n src: '',\n title: '',\n className: '',\n};\n\nexport default Iframe;\n","// extracted by mini-css-extract-plugin\nexport var badge = \"styles-module--badge--8ac63\";\nexport var badgeIcon = \"styles-module--badgeIcon--af5b1\";\nexport var iframeContainer = \"styles-module--iframeContainer--da94a\";\nexport var payBtnInner = \"styles-module--payBtnInner--f5649\";\nexport var playBtn = \"styles-module--playBtn--1ce89\";\nexport var playIcon = \"styles-module--playIcon--2e32e\";\nexport var portraitVideo = \"styles-module--portraitVideo--ce67d\";\nexport var video = \"styles-module--video--b5b13\";\nexport var videoContainer = \"styles-module--video-container--c38d7\";","import React, { useState } from 'react';\nimport pt from 'prop-types';\nimport Iframe from '../iframe';\nimport Image, { imageProptypes } from '../image';\nimport { combine } from '../../../helpers/styles';\nimport Icon from '../icon';\nimport AwardBadge from '../awardBadge';\nimport * as styles from './styles.module.scss';\nimport {\n generateEmbedUrl,\n getVideoProviderFromURL,\n isYoutubeShortsUrl,\n VideoProvider,\n} from '@cuisine/video-helper';\n\nconst Video = ({\n video,\n poster,\n width,\n height,\n className,\n badgeIcon,\n badgeYear,\n autoplay,\n controls,\n loop,\n muted,\n playBtnClassname,\n ...props\n}) => {\n const [videoIsPlaying, playVideo] = useState(false);\n let portraitVideo = false;\n let videoUrl;\n let videoProvider;\n\n try {\n const url = typeof video === 'string' ? video : video.youtubeUrl;\n videoUrl = generateEmbedUrl(url);\n videoProvider = getVideoProviderFromURL(url);\n\n if (isYoutubeShortsUrl(url)) {\n portraitVideo = true;\n }\n } catch (e) {\n console.error(e);\n videoUrl = video.localVideo?.file?.url;\n }\n\n if (!videoUrl) {\n return null;\n }\n\n if (poster && !videoIsPlaying) {\n return (\n playVideo(true)}\n className={combine(\n styles.playBtn,\n playBtnClassname && playBtnClassname\n )}\n >\n \n
    \n \n
    \n {badgeIcon && (\n \n )}\n \n );\n }\n\n if (videoProvider === VideoProvider.YOUTUBE) {\n return (\n \n \n \n );\n } else if (videoProvider === VideoProvider.VIMEO) {\n return (\n
    \n